软件测试的案例分析-1

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

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

#q-_5fPF0

C3xVaJ+Q)x_0  软件公司在产品开发中,通常存在三大不合理现象,它们严重影响了产品质量的提升:51Testing软件测试网so1^S @j%~

51Testing软件测试网 PE [ |iRO

  1)为了保证产品的工期和进度,文档、质量管理、测试、评审等一系列工作统统可以忽略;51Testing软件测试网@:n:U I,C

U Q9k E$@0  2)为了早日推出产品,不进行正规的缺陷管理,导致缺陷反复出现,缺陷较多的问题不能从“源头”进行控制;51Testing软件测试网l5}AlsL*U G

l_IGH0  3)发生质量问题不好好反思自己产品开发管理方面的不足,进而从最根本处入手解决问题;而是掩盖真实原因,追查个人责任。

h\E(S5Al*c+}f0

'AB9WA g%\0  本文将针对这三大现象,以真实的案例为蓝本,逐个进行剖析。51Testing软件测试网A5~4a?U[o rt

zw!?.b,In{e0  1、进度 VS 质量51Testing软件测试网8I;l"x pv|i3G

51Testing软件测试网&CHjrm,c t&?/A$PR+A |

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

51Testing软件测试网(b*G8E!a%l4S

  下面是案例的一些基本信息:

2ER h:hY Y'I(x3}:i0

51Testing软件测试网6LL$ELFf.@

;mR u^/g Qr+Q n0

产品信息

~0`3c xHkfG n0

5~,E6\6[?051Testing软件测试网2A3eZs#h0S i]y~

内容

^k.M;M+WS e051Testing软件测试网O/FT:gj ii

*a3ub'z`^0

产品名称51Testing软件测试网 pV!x|g

*D_"y}Zh0

Ho$RQ.\RJ xFE0

系统为J2EE结构的某行业的ERP系统。本产品是一个来源于项目的产品,原有客户和新的客户已经投入使用部分功能。51Testing软件测试网3L"H.U%m'|i

51Testing软件测试网2n&P!`-?@jZS

;t fe%mj0

开发人员51Testing软件测试网;I b0Z r)D:e

9lf,s ] l*m0

`V&?j)P!E6uz0

产品开发人员10人。51Testing软件测试网q:gB_g9z#^:AI

a:z%S#BU_8vUN051Testing软件测试网%P3SMU0P0i:u4T4X

功能模块51Testing软件测试网#\){2|ghD

51Testing软件测试网/RZM V g$U'WPgj

51Testing软件测试网A,p;]#?i{qY

含有工作流流程的模块有30个,不含工作流流程的普通功能模块20个左右。

;}fU K2q-j$_Z0

{KWz^0

+D5\(gg*W J"gG;[0

进度要求

9S"d(b&k)PE5`2z051Testing软件测试网r wm'ks x

51Testing软件测试网Qqq$G.x g#L

当时计划一年内开发完成,实际目前已经耽误进度0.5年。51Testing软件测试网jh W@*f!zGO,x

uPhD~-yX0

GLaq5g,uV~2e0

产品现状51Testing软件测试网o2H"m^fe K

YI.x5vR7W U~2y?Y0

#Mr`1R w"P0

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

#SFL5W m,M w051Testing软件测试网r^jrDG oR N

51Testing软件测试网w C_HO{Rf

:_(h8fC)}0

I(gtJ*i!k}0

'P:YCN^cQ:y0

  下面是产品开发的过程:

B#UII"B6}3?#g0

mwq#v{1M&])N r0

1_`8N&W1K,w0

阶段51Testing软件测试网aV-j8T2|%q#_L

51Testing软件测试网lfc j~t

51Testing软件测试网%?h0wbl4|` |J0Rm'^

过程51Testing软件测试网vly1|Ke'X)H#V:p7vk(o

51Testing软件测试网g.c(q@3v1z `(f[

51Testing软件测试网1aMK\9V"k4YIL,S!S [,A

大事记

P|y rI-C)N0

\dn'Ycs;\0

;lvk"S1e"f0

项目立项阶段51Testing软件测试网u4dT cQ&~{

51Testing软件测试网 |8Xcsk/a

51Testing软件测试网/qA9JLEx8}

三家大客户准备采用该产品,公司把三个项目在内部作为一个项目来开发,同时制定要把该项目成果产品化的目标。

/B,|&`{ W7a {1R:@%~;n0

(oC mu y051Testing软件测试网b(h2b5NP2@k

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

m5hzg!~ Q8A(g-i6c*f0

9IDd0T3y0

]$X1t8uJ0

1个月51Testing软件测试网:|^H.x;X!X0R4H

51Testing软件测试网HO)i:^1M

51Testing软件测试网Hf-^0L#{~!z

51Testing软件测试网0U,b-eur;P)b$J-|C"z4N@

 

L'~$d*R ys/n"S051Testing软件测试网+o)QIQ Y]v0f

3^!z]9['l6C"r0

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

#M6]1fHVskW kq0

7hM v;t7Q;Z+m051Testing软件测试网"K1A2jm O ^9A'N3{8S

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

:Q$[ TS#`(Ey,\051Testing软件测试网IWFr;\B

51Testing软件测试网3Z],c4V,e

25个月51Testing软件测试网8H9dhi3h)G ~*M

Pr"_Z4R0

1Yd5~:V{u0

产品正常开发,大多数功能由程序员做主进行开发。同时,开发完成的部分准备安装试用。51Testing软件测试网,n4g1y#N,f

#~ G%|4?3nbB0

HA3D9J9w0

612个月

g0]d&]p y(q;h1X051Testing软件测试网\io4h(e:SH,nS`!s^

51Testing软件测试网2X9pH\WS} s

开发团队进一步开发产品;51Testing软件测试网 K;R;Q!s g@H+g6V

6E_-K6\mVHT0

:l;^ [QO}0

实施人员在现场安装已经完成的部分,同时做缺陷修改工作;

3TJ8~^+P0

,A{/B#bC%VP P I051Testing软件测试网\1B*hB|!o

第六个月时,客户开始对公司施压,要求尽快安装全部产品,同时拒绝使用已经安装好的部分产品;

^5p.},T4ZNaD$j051Testing软件测试网:XC#KO `&O

7r%e|'q{ f0

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

&q9I V#^5dlC0

[U!p i"s+QBKQ0

13个月51Testing软件测试网])a VAO LQs

!n4fq%m'k A0

c}G0[)_7_*N"k[c0

把主要功能提供给客户进行安装;

`1YNj8S:kH4K0

i!c4W(D9K;~ b7LJ9TM0

ZZ"p _%m0

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

m C"A%q D:C3c051Testing软件测试网"N@4f x4f y%H^

51Testing软件测试网wVs A U@3vl9o

1418个月51Testing软件测试网}H%t6Z B9tl"@.e

&d%Q}:bE9g8T%\051Testing软件测试网r[0MWAa

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

%q:{({B4s8Sk051Testing软件测试网E!W^2_!K"r2n]

+O-aMS4[S0

确定在接下来的6个月推出新版本的目标;51Testing软件测试网6hrv0`2r

51Testing软件测试网)I YU P_!oK N U!Y

51Testing软件测试网a[5@.FB/_&Uh9}x

由于缺陷较多,现场用户抱怨不断;51Testing软件测试网 f0y:I:I3xIxRAg

51Testing软件测试网8y8]U3BHbx

;K Y1Q&{/J?&l@P+@0

实施人员忙于现场“救火”。51Testing软件测试网 d&?-n#C@VJ-z$Y,]

51Testing软件测试网tQnj4IXU sh

p\Re7J#i~8~4?0

19个月

+M:bGlE/|0XT |t0

6U*meQS*H9r051Testing软件测试网,]%J,z6p-|)yL/Z

所有的开发人员不再兼顾项目,加班加点准备按时发布产品。51Testing软件测试网9F`aM5F|$X

51Testing软件测试网;f){W*w W_

51Testing软件测试网5]Zd;k W+sx+B

'n:a&H.E%M-h!D:lV0 51Testing软件测试网9t(^ T2Z3GV

51Testing软件测试网*H1TL+^z SP/{

51Testing软件测试网Et&|^9w

……

RL.n A8T$O0

%_Igj|/{2GV)g}v7m0

AX0[)d [W J0

……

0LF/lhR c:` z051Testing软件测试网SPO f?a%]&{

51Testing软件测试网O'e8UcDw(m

……51Testing软件测试网$Y8o(Q8n:h6Hg9~

51Testing软件测试网V}:eG0e(X d

'HG g TI?-?a2z0

(q~:bo!fP0

WK JV ]+m&x0

FTI2Q;C_E0

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

  不但要主观认识到测试对软件质量的重要性,同时还要落实到行动中。51Testing软件测试网9U!}&}?;i7t%Gt%u

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

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

/J i+u@!{2S:]&Y0

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

a)Pb%m K#Dp:L-A0  树立提高质量就是尊重客户的思想。51Testing软件测试网QPZP7n{

51Testing软件测试网ZMaB^.[ ]M;`

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

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

eo,d+Shk0m}0  建立规范的测试体系和质量保证体系,逐步使软件开发进入良性循环状态。

ujr%@)s P0

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

n^AzK0  2、缺陷反复出现,谁的责任?51Testing软件测试网 CM2X%U3xLrMD y

[f#rSj ~b0  下面的案例取材自某公司产品开发部开发某网络教育平台软件的工程过程。本产品在历时一年半的研发后开始投入测试。测试工作允许的时间为7个工作日。51Testing软件测试网/i$d${wsD

Y9` \:V_0  测试工作过程记录如下51Testing软件测试网r(^UvP!]%[oF:~

51Testing软件测试网#F'l1T+O Kf v4v3jy

进度51Testing软件测试网(oP${,Yw:QV I

51Testing软件测试网5@X)IQk5H

TVfl"rn;o0[(m|q0

测试人员51Testing软件测试网 O*jH-Vt8`u&c

51Testing软件测试网/F2iN:uQ'S.K&tp

i/Ktn4l*P3U0

开发人员51Testing软件测试网`B-g gq2o

51Testing软件测试网 kt l1NZ

51Testing软件测试网N7QJ1]_8}c s!n

其他问题

.?,N"d d Zr2e+Fz0

{/Wt'U1m0

t_"s3s`KP0

第一天

!S&`ovq.D]#{051Testing软件测试网A7d1~'p/_-o ui1_tE

51Testing软件测试网-cE_&fq8SK

1)熟悉软件51Testing软件测试网X-k PEWl k0vS{

51Testing软件测试网P%clP*BI9m

7Lr5HFS2B[AB"|0

2)阅读项目文档51Testing软件测试网Zga_H8O@OT:T#a

51Testing软件测试网P/a(S{ u0G

N!X&[um"@0

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

P R`w0Wj0

bU"k(N-M+g0{o;v0

y6m8l+~.c A0

4)制作测试跟踪表格(1人)51Testing软件测试网%Nl!?'[W&\"D0b!K

51Testing软件测试网+SbEu#l

Uz}c'A@?o _h8x0

其它工作51Testing软件测试网3H$vT3v*@,U(q/Z7w^*c;lnx

1m+J"|:YDk Lpu+QH0

Z R:\ W3z9nL0

]!d2u T{{]K0

4B|7q#WxC,P4}051Testing软件测试网7}$@,w$e6V,{$S&?

第二天51Testing软件测试网 W N']k]F

l!j e`+kT7l1{051Testing软件测试网m7uo*I)a({-d

1)确定测试策略

C C3`a k6Va0

"x~!ZEC._I_?051Testing软件测试网'T wp3pW vR&{

2)划分测试任务51Testing软件测试网'`6A8T4U1~3IH/a7@

WS%k j7B@QwTQ0

5y9^AV9cR0C K/@ @3DN?K0

3)阅读各自测试模块的文档

NiOCq(SO k0

/H5r7NO0EN0

J D#ZE1]M$EZ6Uz R r0

下午做整个系统的业务功能串讲(部分开发人员)。51Testing软件测试网$V6i'}mmPJJ

51Testing软件测试网 D.O6{ W Gj

};x&]!h;E-v/jDP0

第三天51Testing软件测试网-^DHPc!Vg

51Testing软件测试网p4vGMKI"h8K

51Testing软件测试网3A_4xT&D"` m f4y?

开始执行测试51Testing软件测试网o T1U${m@#cF

Dm(gPjP&{K0

^r[WD'R N0

其它工作

o8I+~/zy+}*eJl{@0

!y5q%Q6L{y0

q/}xF0Ej0

缺陷总数70

^$` d6rzCs051Testing软件测试网t!Uh(a3R3]

#p Vv&W&||[0

第四天

3K l V\f"U5g051Testing软件测试网tN6V.j

51Testing软件测试网qPs1_ W|+o:~5rc r

执行测试

T6w6P FY:H0

;T8?!L-L#n3i7Pu-wS^O0

!Qr$ytL+c6I _n0

其它工作

Q1sGh-f$Tz+a051Testing软件测试网M"C2r]-@%F

8~1jxd t0

缺陷总数20051Testing软件测试网-[$gZ6M"iC F1Q&f,f

51Testing软件测试网 Z*ISnq _3h2z

51Testing软件测试网H'`^ bw X

第五天51Testing软件测试网 ajG+G5l`

-X;D4U_"H2g051Testing软件测试网3R;`:D9@l(t@

执行测试51Testing软件测试网)L Bl!p h0rE!M0}

51Testing软件测试网;BJ(\3O%Oz%t@

6O4h|j;VG"JC0

其它工作

3Bl#}e3L0p4k0

weqi.E+t|o#pm0

/A$Qfz.S1VKd4|0

缺陷总数50051Testing软件测试网'z7Cx&TMN;Ko!o

51Testing软件测试网A:\ `vS M

&Qdp ]*JW0

第六天

Q2r%P uz051Testing软件测试网9e?$A,R+u8k3G n:Cy

51Testing软件测试网b/[FBB(p@9L

1)执行测试

8K'XRo6w t-n`0

.T'kD$Z#^ NY|0

j8f&Lo Qs4O?0

2)总结测试

Kox%`!vMF0

'{ yh.HJ,n xv6~]2p.B0

_D8|r5rp0

3)撰写测试缺陷报告51Testing软件测试网7N;Y$\*~9Q0m

4n zf f5m Q7H051Testing软件测试网^U-_4iY T9np7A

其它工作

4|-vC.CL4B`051Testing软件测试网J b!eo vI#N/_"V4j,R

"D3z5M xz;w0

缺陷总数600

D f5q(_'m+u3d:IP051Testing软件测试网&D5F'M5gQ(r

51Testing软件测试网!`:EsvB2cAC

第七天

k6_4n.Lgu051Testing软件测试网@,?FMw)z,O:W

s'G ngj w/v_&eL;D0

撰写测试分析报告

&I&Bh4qe"r:p zyk051Testing软件测试网;B:Vce\

51Testing软件测试网MB7Ko"E nC*G~(nb

其它工作51Testing软件测试网~~ e0? s5w+Wo

;fPi#y E1~s\%@H051Testing软件测试网Af'b}hUu+Y"P0^

51Testing软件测试网M%\8nnmh

51Testing软件测试网Cs+}7K3Y!_t(T)e HJ

!k*udB&w|1Q1c0

!f1o"U&A%yt j&in0

5w-_h/k't8q0

o'ri*}r|%AP0

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

 51Testing软件测试网T9n i"c)l3l


TAG:

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

评分:0

我来说两句

Open Toolbar