软件测试的案例分析-1

上一篇 / 下一篇  2012-04-12 10:37:19 / 个人分类:杂谈

51Testing软件测试网)y AiSN[3\

国内为数不少软件企业虽然经过多年的发展,但仍处于疲于奔命、停滞不前的局面;另一方面,规模像“作坊”一样的小公司,几乎每天都在诞生、消亡。导致公司兴衰成败的原因是多方面的,笔者以为其中一个最重要的原因是软件产品质量的好坏。(当然,市场策略也是其中一个极为重要的因素。)几乎所有的企业都想对自己已有的技术成果或项目成果进行产品化,然后再把产品市场化、国际化。可是,绝大多数企业的软件产品一旦走向市场就会遭遇重重困难,例如,软件质量不过关,软件可维护性差,软件使用学习周期过长等等问题。本文不打算深入剖析决定软件企业及其产品成败的各个因素,而是侧重于测试角度,以案例的形式,对软件企业中影响产品质量提升的常见错误认识作一些分析并给出解决方案。51Testing软件测试网!Y$Ye M zU"C!|%|T

5KF_'Lc.{{%u0  软件公司在产品开发中,通常存在三大不合理现象,它们严重影响了产品质量的提升:51Testing软件测试网blkG jbN%a

51Testing软件测试网$C/lG2G2Ax

  1)为了保证产品的工期和进度,文档、质量管理、测试、评审等一系列工作统统可以忽略;

'm4P@{m [#H,h0

;r[/uv[0  2)为了早日推出产品,不进行正规的缺陷管理,导致缺陷反复出现,缺陷较多的问题不能从“源头”进行控制;51Testing软件测试网!u&Gy"d2P PCu)Oq

51Testing软件测试网WG8|m1\+\

  3)发生质量问题不好好反思自己产品开发管理方面的不足,进而从最根本处入手解决问题;而是掩盖真实原因,追查个人责任。51Testing软件测试网XI k;~Q8j]:O!P

0}(NMNt0  本文将针对这三大现象,以真实的案例为蓝本,逐个进行剖析。51Testing软件测试网cBXb6?

51Testing软件测试网W{6QQU2|!G2Z

  1、进度 VS 质量51Testing软件测试网\5s;`&O5i7c2p^+q7G0^!Aey

51Testing软件测试网:_^1IsX4@f8^eK

  本案例是非常典型的产品开发案例,几乎是很多中小公司的典型做法——以按时发布产品和进度为理由,不实施任何测试工作,就更不用说质量保证工作了。

&}*n'eUzE6j8u0

#ZG Sl$l.q,Y)}5}:@W0  下面是案例的一些基本信息:51Testing软件测试网:m ~8v^ S#tR4fZ

51Testing软件测试网ty+W*Y v"Ld d

*t.J$}jQ1At-I/y"`0

产品信息

%U1XOqv051Testing软件测试网6d-k(g fH;tc

8N)S3L9W{E0

内容51Testing软件测试网 aL$s,Ksnp0A

51Testing软件测试网q;v5GfdkR

wZs-gD5@3^m9Uf0

产品名称

QWZ'@z+`051Testing软件测试网r.o*P e&N

0E)O p*W{3ZV)U!Th0

系统为J2EE结构的某行业的ERP系统。本产品是一个来源于项目的产品,原有客户和新的客户已经投入使用部分功能。51Testing软件测试网5V%B y V)[M

51Testing软件测试网 D'Lq H-LG_ A#A}2a

BF!w{)\0

开发人员51Testing软件测试网A_e[ U

51Testing软件测试网4qSlxwyCL

0H X2Pu7c `0

产品开发人员10人。51Testing软件测试网1BpwN)A1v NR

51Testing软件测试网(d/a k4x9U\ `

51Testing软件测试网0ag)@ic SO$jl

功能模块

+GV*u9Dp P(T3l051Testing软件测试网1d5^hC9Dhd`'j

51Testing软件测试网RL/A V/L0u/x o1t

含有工作流流程的模块有30个,不含工作流流程的普通功能模块20个左右。51Testing软件测试网"F+o`%UB

hnj8r-h#P[0

/\5@7pbFK9W0

进度要求51Testing软件测试网{0[:EEW:ha*A

R!\u F1Y*P`*H2c051Testing软件测试网0}/j,dVK;RA

当时计划一年内开发完成,实际目前已经耽误进度0.5年。

N(S!PCU1y:x0

X~6y2OB6v'L])_051Testing软件测试网$M/~ puG

产品现状

k A`0]0k z.gW A? R0

]_Tr!tq051Testing软件测试网$I*k2A(Z,Yv4f0b

主要功能基本完成,而且在一些新的客户中投入使用,反馈问题较多。

D.@OZ3Qk0

Q3?)D c(P.b051Testing软件测试网V*L)CjQ9@ Y*^ b

51Testing软件测试网Al9ua6xU

51Testing软件测试网;d'@8W:A%aU

51Testing软件测试网}E yGO*Oh$C4B

  下面是产品开发的过程:

me^WIU0

q0J(dp&~'N$MfC!Q051Testing软件测试网s Qs y3R;L d'}$O

阶段51Testing软件测试网&n)bFT1@0d]5j.v"Ol$n;X$^

v6ei C(O t9G E _051Testing软件测试网9pL]0l6_

过程

1@$|n/OO!A0

,ZpmNIhz0

W4b(t%OQO9B-R.LF{0

大事记51Testing软件测试网9cUE\Q`s"P w

A@eJX p U051Testing软件测试网dC5[M4GX

项目立项阶段51Testing软件测试网LmcUW*{4eT

,W W}bJC051Testing软件测试网 aQ*R%I{w7gB

三家大客户准备采用该产品,公司把三个项目在内部作为一个项目来开发,同时制定要把该项目成果产品化的目标。51Testing软件测试网J O/{ m$?RIU3P9j|

51Testing软件测试网)E\.g:Ec]%{/MQ

51Testing软件测试网+ejB5L1g ZD~

为了赶进度,采取封闭开发的方法,同时决定第一版不进行测试。

r5e3WE;I;NO051Testing软件测试网9|Qc;_8] [ p

51Testing软件测试网-?z4^tv4R,](WzY T

1个月51Testing软件测试网(wTt'r l'k!?} q2U

v FXl+^i;A&G051Testing软件测试网$`7L*_)R1z_rABZ

51Testing软件测试网 u(],Ot$?:[${W

 

h"q1g\ t^0

4P B%\5p`h0

$OwGm-e0

项目在没有文档的情况下进入开发状态,主要参考依据是公司内部基于另外一个平台的同类产品,该平台有些过时是开发这个产品的主要原因。51Testing软件测试网TUH2_dU{&G

]8S'I,[3mTi051Testing软件测试网+| d[OL Qg

产品整个开发过程基本没有进行关键方案、文档的评审工作;没有进行任何测试;没有任何质量保证人员。

+T:ITx8S051Testing软件测试网9Z'?1n A^v&{

51Testing软件测试网b(W!E)kSi#W(cTj2x

25个月

/\!xrs%D%\f-~[,P051Testing软件测试网D(]jMj%c DI

51Testing软件测试网"bD R$Yp+mT

产品正常开发,大多数功能由程序员做主进行开发。同时,开发完成的部分准备安装试用。

3V&ce;q k_tE;Nb051Testing软件测试网2P8_Tw0A0NXu

51Testing软件测试网4M2M)Rsd

612个月51Testing软件测试网(_[ h4F7A3l

tv3p2ep[/[ k051Testing软件测试网 F8`gUa Kg

开发团队进一步开发产品;

)W#R;z`QL)x/LlM0

3B z%^I:M)m.gE;@,Pn051Testing软件测试网/Fx;i!dZV#cP*g

实施人员在现场安装已经完成的部分,同时做缺陷修改工作;51Testing软件测试网C7dJ'P9yz"H$S

51Testing软件测试网Jm:b-{ Tf6t

,vO@9vh0

第六个月时,客户开始对公司施压,要求尽快安装全部产品,同时拒绝使用已经安装好的部分产品;51Testing软件测试网jnt*NZ~(\

51Testing软件测试网$Qw{]lb'x-?4w:W6P

;a3Y j^s.xo:v0

几个实施工程师以超人的“救火”能力,解决了现有缺陷,在几乎没有提供新产品的条件下撑过了半年。

F+UxI^:R051Testing软件测试网w0N ]"r8v8B)T"Q

51Testing软件测试网 cS h g wH-|1O

13个月

m ~Y5p!O{j0

ii$Q \$E051Testing软件测试网,L%I chYTsf

把主要功能提供给客户进行安装;51Testing软件测试网j { _H9i,hf

ah C0S e!x%H L o0

Nr jy PDv'[0

前面的几位实施工程师在季度会议上,被公司评为了“英雄”,给予了一定的奖励,鼓励他们继续坚守阵地。

5@.Xq3mz&k M7{3hR0

]*m.o x7bS+]051Testing软件测试网{)s!u&Q q}

1418个月51Testing软件测试网3n#T/v2V `Q

51Testing软件测试网+h RUV1J

Z^kJt@!G0

公司决定把产品交给现场的实施人员进行维护,专注产品化工作;

I#M.i8S&Q"v ]051Testing软件测试网i5P MOu

]d R;yQW S9ny0

确定在接下来的6个月推出新版本的目标;

p-[@tZ5m0

*m BvE3E'[ Uy0

XLO%I9u#Jp0

由于缺陷较多,现场用户抱怨不断;51Testing软件测试网+D!ma%h;[P fpXS9s%?

51Testing软件测试网V,?VC!O\S0k-v

Z5~0z/p#}XO$YZ0

实施人员忙于现场“救火”。51Testing软件测试网.t&^rW&Z[.Oz#b

? o4V_!`#Y'g0

wj f k1m0

19个月51Testing软件测试网za;jy#hV

;_'BN&x#^[7o0

j2U ?^l0

所有的开发人员不再兼顾项目,加班加点准备按时发布产品。

$JVOJp]!hI0

}4y ^:zc#W h RO051Testing软件测试网f)xVg ^ m-r

51Testing软件测试网+U4J h\k3Q_j w

 

-tVb\f051Testing软件测试网1q(q7T7p"Ba

51Testing软件测试网*q n-iX8k

……

2\0Y~w q051Testing软件测试网'h N CC?l2a

51Testing软件测试网-Te"|L5R^h%@0R+Gg-jwK

……51Testing软件测试网'q+D!tX[0ovFb

51Testing软件测试网'VpX P7Q5Y0R M,}\;K

*z#|L(~.tr0

……51Testing软件测试网:f1}(pi a'Z

T].w!}+C#[&M0

|TH9X4[f&`\0
51Testing软件测试网$q(^!t)i/g/W

51Testing软件测试网*^%y5a-H)DYQ)@0p

51Testing软件测试网5n~mz6I!M

  现实中很多公司目前都是这样进行软件开发的,几乎很少进行测试工作,最多也就是在产品发布后进行最后的“用户测试”和一些功能性测试。当软件系统在用户那里出故障了,现场补救成功的人成了公司的英雄,好心的用户甚至还会因此寄来感谢信。然而这并不是真正合理的做法。如同案例中描述的那样,这会导致现场用户抱怨不断,分配用于“救火”的工程师越来越多,最后导致企业不堪重负,不得不放弃部分现有客户的系统维护工作。要想改变这种现状,应该从以下几个方面入手:51Testing软件测试网k(N'T0o0vL0~;GF0N?

  不但要主观认识到测试对软件质量的重要性,同时还要落实到行动中。

,x;l+@2d\0

  测试的重要性已经逐渐被软件开发团队认可。但是落实到实际工作中,通过测试真正提高软件质量,还有一段很长时间的路要走。因为几乎所有的软件公司都灌输着“进度高于一切”的思想,只要是为了赶进度和发布产品,所有影响进度的工作都可以忽略。

+d!O [C.t){`0

从表面上看,测试、质量检查、评审是在耽误进度,实际上则不然。如果软件缺陷被遗落并流落到客户那里,其结果就是代价高昂的电话费或者现场支持费用,还可能需要修复、重新测试和发布新的产品,更糟糕的情况是产品要被召回甚至被客户起诉。这种成本付出非常高,几乎是在内部修改缺陷时的几何级数倍,一般高达100~1000倍(可以参考PhilipCrosb的相关著作)。51Testing软件测试网 z(j7T+Q.C-X!n]:Z2c

&}h&\R R*v0  案例中的情况,实际上就是为了赶进度而不进行测试,如果第一版进行规范的测试,后面那些“救火”英雄肯定会少些,同时也会得到客户对公司更大的认可。很多公司尽管对这个道理已经耳熟能详,但接下来如何进一步落实到行动中却是不容乐观的问题。

*v q+R$o+MpM F)c051Testing软件测试网 dC7d.?#y"Wh

  树立提高质量就是尊重客户的思想。

6k;o4xY l k'j#uu051Testing软件测试网7lCW#wS8G

  作者注意到目前不少公司存在着“愚弄客户”的嫌疑。不管是有心的还是无意的,很多公司认为只要能拿到“钱”就已经达到目的了,因此也不在乎是否掩盖缺陷和敷衍客户。案例中的做法肯定是不尊重客户的,因为没有产品可以安装时,不说明实情,反而提供一个“满目疮痍”的产品来临时应付客户,甚至最后安排实施人员“硬撑”半年。51Testing软件测试网0w*H9vj R M'U7r"d

51Testing软件测试网o8zWN a1bL:^!wC~

  生活中大家都讨厌假冒伪劣产品,但是软件行业从业者的却很少意识到质量不好的软件也是假冒伪劣产品。对客户负责,就是对公司负责。“树立客户是上帝”的思想,一定要把重视质量落实到行动中,这样我们就不至于拼命的去生产那些“假冒伪劣”软件,最后被市场淘汰。在软件产业发达的今天,已经是客户的买方市场,客户永远会选择质量好的、服务好的产品来满足自己的需求,只有质量好的产品,才可以不断的向前发展。

Xo.J7u-F,Gu*@0

H"O-J/?8q1dzN0  建立规范的测试体系和质量保证体系,逐步使软件开发进入良性循环状态。

~$I z*V5^Bi c0

uL E/lU0  在没有开发规范的前提下,软件团队是很少能开发出高质量的软件。因此软件团队一定要建立规范的测试体系和质量保证体系,同时把规范体系逐步落实到工作中。案例中的公司就是没有“开发法律”的小软件作坊,所以才倒行逆施。不但做了很多浪费人力、物力的无谓工作,还给客户留下了不好的印象,造成了不良后果。类似案例中这样的开发团队在现实中很多,都是处于混乱的开发状态。解决的根本办法就是逐步规范测试体系,进而建立全面管理的质量管理系统,最终形成一个良好的开发体系。在好的开发体系下,片面重视进度的情况是不容易发生的。

V{ Kmt%}0

3IDT0g;B0  2、缺陷反复出现,谁的责任?

DTg/n&f1@$s(R'k0

f A%W'j%]9@[;S0  下面的案例取材自某公司产品开发部开发某网络教育平台软件的工程过程。本产品在历时一年半的研发后开始投入测试。测试工作允许的时间为7个工作日。

} k*w/J _ bdG/t&E S051Testing软件测试网{MTktB X

  测试工作过程记录如下51Testing软件测试网CXb%@*F I%Z0T+Y

c0r3Vh!l+P9Gd0

进度

Rika1qC0

;y'])Od7U YIrn@Gr]051Testing软件测试网:v.{ C ?xN

测试人员51Testing软件测试网K\-n xUo

+Qz#l(_GA7n1rC5gV051Testing软件测试网"b3DV0j;~2qK0A;t8D'O B A

开发人员

m*p%N6t~0

f| tjhZp }E0

O1oW,? bN F*];X0

其他问题

e$m"u p1?5u3Lx"Zl4R051Testing软件测试网:|MP~^{9f&E5@ n(~

"t@m3?t0|0

第一天

+II*BsH9E.H K2N"t051Testing软件测试网 WyQ]_QN ny

l*\W z!i6z0

1)熟悉软件

]Q#Ywl:S;s+Nz051Testing软件测试网i7LgQo4T

51Testing软件测试网 w+s\YJ0V5| w#L-d

2)阅读项目文档

h!^o7eo}0

7u)~nRM051Testing软件测试网rak#FQ

3)制定测试策略(2人)

`]llm%l y7z0

\[(m1D j*XW?2J0

mZQM9H7f_5tr0

4)制作测试跟踪表格(1人)

XKhW1W3Jk051Testing软件测试网sHKH3F

51Testing软件测试网Yk]7U u3L

其它工作51Testing软件测试网3hR]m@M&}C!g

,d)hO*yG:GJ vR051Testing软件测试网"Q Z:mZRIlpO

51Testing软件测试网0eN F{I)Pw

+?{,q"\p9qbLT%m Y051Testing软件测试网 O[Y ArLm!Si `

第二天

&b*^-D)j0F_$s9ub*Z0

8|CZE6KO$^051Testing软件测试网$h.E&l x*R2N*C

1)确定测试策略

wM3O&l'jG5Dm~0

@1bmt"u:Y051Testing软件测试网w\ ZX{3@y-n

2)划分测试任务

/t_Q;k/] [2w8M:c ]0

js/^*Y4xL;yg_0r0

Xd N_ui8_j0

3)阅读各自测试模块的文档51Testing软件测试网 \/q2v"\1_

51Testing软件测试网2n0U5A)l$xAI(cd

U^ g-Sh|]"y0

下午做整个系统的业务功能串讲(部分开发人员)。

Wq9I*|O0v051Testing软件测试网*Nx7GF b.W\ Hv

51Testing软件测试网2c+H(H!I0o$V/Z`]

第三天51Testing软件测试网| Y%]'_.c)M0V*y

51Testing软件测试网/vz_t G

51Testing软件测试网/_?6^7Kp

开始执行测试51Testing软件测试网 GVk0h9`

F6LK}/f Py!Md0

)` RNE[gE8Lz0

其它工作

-XD[wcr051Testing软件测试网L;X@sdO$v

51Testing软件测试网t&]m|4G+V |%s

缺陷总数70

(Wl2Uk5q:C Sq0

1H1gT!]j;Z4@0

2e [:h,m~7C+j0

第四天

#hV!w [6~9P0

Tv#\e,w1B051Testing软件测试网9v.R0@-L0R*h5s

执行测试51Testing软件测试网KA%v&r \K&GM

u WJ&L7yh0

Ga'H%Jj0

其它工作

];~YD C,S V051Testing软件测试网Z w N.Z1|jW

51Testing软件测试网+EILw5q

缺陷总数20051Testing软件测试网1O6HUe+I"k

j-u:q+Fs-HI051Testing软件测试网:O.PHK'Zq

第五天

Q?z$j1a5D0

9HNL,OjP Y [w0

4e%b2`2HI*oc&DQ4_/`0

执行测试

USM8d"ShG051Testing软件测试网Q&m5G${BZ/N(M

,HD~0d$Kp8d0

其它工作51Testing软件测试网.LI3\\\Z/M$^4A4P

#O(ge+MO0py0

'o{Or/L1Wfm`^0

缺陷总数50051Testing软件测试网#g{;nx IMFS Bm

51Testing软件测试网6w f Ae`3VONp

51Testing软件测试网1C h6~;y*j&\$c5]7`

第六天51Testing软件测试网"I2[/~+[!Sa O2x

D$\2F5e6`VE051Testing软件测试网;Vu3~'Q'` {

1)执行测试

X0~9u]L1ycU0

9XV~V$td6`8~#I051Testing软件测试网 gH}@_3i^1s

2)总结测试

ORi'`4v3u0

Z]$vQX8H M&zn!_051Testing软件测试网5ac pv.k9A!l k

3)撰写测试缺陷报告

udW0Y4A"DY8Uf051Testing软件测试网MA7z:azPv

51Testing软件测试网O4S'B;|wj/W U

其它工作

4q Z1y0o~9L o`0

w%K,K2C[4\7H(P0

6N,K:{h2|0X|1v0

缺陷总数60051Testing软件测试网2N?y#L(O L4z b

(U \0Y sJ{7TR051Testing软件测试网}$u8|-FJ+gp,E

第七天51Testing软件测试网+E%b+}.@Bx(tT4eM

51Testing软件测试网gXv$r6g:q

51Testing软件测试网sM7s`{ D+Lm%A

撰写测试分析报告51Testing软件测试网.Ka*H%S i{ |f,Iy0o

51Testing软件测试网"Pu$E&@4\Y

;u3fJ \F_^mS0

其它工作51Testing软件测试网 jD W7uf1B0rj

51Testing软件测试网@xK6? k X(u

O|$_!_1e;TM.@,G0

&ER4@(g:C]:q051Testing软件测试网&NK,N'VjT%P2v2O]?!z

51Testing软件测试网%O(Kf SHW_Y/h

6L(ikW\}4n051Testing软件测试网/T&POGd(sc'C

K)i e2g4{0

  经过7个工作日的测试,得出结果,此系统不可用,需做重大修改。系统经过重新设计,保留了部分原有业务功能和业务逻辑之后重新开发,并进行了测试。测试工作允许的时间为三个月。

}i,N:||*l0

 51Testing软件测试网wd{"b}:j)Q{h


TAG:

heaven7253的个人空间 引用 删除 heaven7253   /   2012-04-18 11:11:23
悲哀
 

评分:0

我来说两句

Open Toolbar