软件测试的案例分析-2

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

测试工作过程记录如下

V@7H8jp(za0

阶段

7l,z3F&Yc!pB}3l Q051Testing软件测试网&E.W$W'p8}2y;w7X_

y&G)PB X V0

测试人员51Testing软件测试网5z%u3PW x4L!IZ {#Q9A

'}])xK:D)D_W J&H4W"F_j051Testing软件测试网8_@pS Gko

开发人员

*p-Q G"A`q0

&XQ)m-sH`p$Ke051Testing软件测试网cz(vm}4A(c

其他问题

P.CPu'meg0

C `q(Yl)kzL051Testing软件测试网4F(F}C&K

单元测试

&c2[ Qi(^(lngw0

-o%Ld7TA h-z7q051Testing软件测试网}5U,D*qI I

!vBI/Ct5wP"YXZI051Testing软件测试网 |9}R2p9R!JtLk

AH7t n9w/b{)e0

build通过,操作均实现

Jr m?g8bl G}+T/M0

n*H7BSB ]s.F~0

o)@5U/N5OGJ |I0

51Testing软件测试网A`6m-^x CBG(@#c

51Testing软件测试网x9|[I l:k

M;X/e u~W/|W0

集成测试

]X4~@~Q t*S051Testing软件测试网b:N"ek&L}*o t

I^XKA+d:niW _T0

C8f*VYR%k051Testing软件测试网yn9@u{

MtG}K9X0

数据流转执行正常

S0q9f#{gVVQ0

q#WH:o z qz0

Ty?3F)qX#a0

系统测试

&\ F/w"r!t N P vO0

3zgU+NNQ(B b051Testing软件测试网iBYF b d|8EO

随着开发过程测试

nu.J6At'C1H"K0

K&D9n2X%Ej+H:P051Testing软件测试网,p [F$d-y8F _i?9f.T

aIGn0o9M0

6b2C$cL H5[6XyY0

\c$Xk9pe\!A@;N;U0

缺陷总数50051Testing软件测试网} h[u{#p%~

Po2}c9K051Testing软件测试网!o:Fcj0?/y

*K3ZD-gw\)n5P0`Pm8A0 

Hc%fD#en1[051Testing软件测试网DdD?xxmD

7t!q#VH Hk&B uP q0

全部开发完成集中测试

R&oRb3~ x0

}x{xOS? Qqs0

~\d w(X3Hr0

5w)Hu#SM%c@0

Ye GR;nT?051Testing软件测试网ndi V!qB

缺陷总数4000

{!O eL%PRO!M051Testing软件测试网J9{S&f X mV

q6U$rQ`-\*] [4[r H.|0

#i[ B0j/w^'K0

IV4S1S vq0

  在最后的系统测试结束后,对测试结果进行了分析,发现如下现象:51Testing软件测试网8t5s1b&_*\u!m1]L

  第二版中的4000个多缺陷基本包含了第一版发现的600多个缺陷;51Testing软件测试网'~ [ wr NH gd

  相似缺陷较多,例如:如果一个程序员写的模块中发现某个页面邮件输入格式没有校验,那么他写的所有页面中包含邮件数据项的内容都不会校验;

A(Y5CUx{0

  数据校验遗漏较多:如果在一个系统输入了不合法的数据项,那么,整个系统中就会出现几十个数据项合法校验遗漏;51Testing软件测试网,VfTQv#oQ#{?

  细节错误较多,例如:页面Title不对应的错误在系统中有600多个;51Testing软件测试网 x _8n lF

  程序设计风格不统一。相同的功能点,如分页、翻页处理,做得五花八门,并且以测试人员的理解来判断是否为缺陷,导致某些功能点在不同页面就能发现个3到5个缺陷。

iLpyx)F;L0

通过上面的案例信息,可以看出这个产品的开发过程本身就是不规范的,而且测试工作介入的太晚,同时在软件产品设计、过程管理、文档评审等诸多方面均存在问题。产品开发工作和项目开发工作相比,一般进度压力较小。但是产品要进行商业化最终转化为通用的商品软件,质量方面的要求要比项目成果高很多。缺陷反复出现几乎是软件产品开发的一个常见现象,要想解决这个问题,作者建议整个团队要从下面几个方面入手:51Testing软件测试网'pq%i_] l;c

?;S a!v#z?C'e@x:m0  规范化产品开发流程:产品开发是应该遵循软件工程规范的,开发过程不应该跳过必要的环节。例如这个案例中的产品,无疑就是开始系统设计和评审工作没有做好,才导致二次开发,并且还有一个严重的遗漏就是首次开发忽略了测试工作。测试、质量保证等相关工作应该从立项开始就同步启动。

uT_B\$B051Testing软件测试网 PS!S I1W"d

  需求分析要明确:如果开发人员都不知道完成的内容是否正确,而是由测试人员来判断是否符合要求,那简直是需求分析的的巨大“失误”。用户或者设计者想要达到什么目标一定要清晰的描述出来,模棱两可的需求是没有办法设计测试用例的,更不用说进行测试了。51Testing软件测试网/r Sz2p l"t#I6m

51Testing软件测试网7aH8?2Gb!B7N b

  开发人员的调试一定要到位:开发人员一定要认真调试代码,至少要把自己负责的部分和其它模块的接口部分进行详细的测试。这项由开发人员进行的基础测试是不可缺少的。目标就是把尽可能多的缺陷消灭在开发阶段,这也无疑是最节约成本的。现代软件系统十分复杂,程序员写了程序不仔细检查代码,大多会有很多缺陷存在。如果凭着侥幸心里把所有的测试工作都交给测试工程师来完成,那只能适得其反。这些本来在开发阶段解决的缺陷由测试人员来发现会有如下的后果:

X JRqa-i![f*z0

gy U/@Bx0  耽误进度——首先,缺陷要经过一定的测试流程。例如上面的案例中,网页的Title写错这样的缺陷折腾了两个部门,简直是“劳民伤财”。

vU/CJo8H051Testing软件测试网|W4iskIjR

  转移测试人员注意力——大量的低级缺陷使测试工程师无法进行更加深入的测试。测试工程师的注意力分散在对于开发工程师来说“无关痛痒”的缺陷上,使得更深层次的缺陷隐藏起来。

w|;[S3Wg4Z0

0g0BO#Tn {0  降低开发人员斗志——尽管这些缺陷是开发人员自己“制造”的,但是一看到上百、上千个缺陷,无疑会影响心情,降低效率。

.?9F*}h^'JP} fP051Testing软件测试网J/B)c7kW G#@

  当然,增大开发人员测试力度会带来一定的投入,因此需要在项目初期进行合理的规划,否则开发工程师就会拼命赶进度,自然把测试工作“寄厚望”于测试工程师。51Testing软件测试网.P2~t3W7u~;L

51Testing软件测试网yC\%n*iB DA

  加强缺陷管理缺陷管理在这个案例的前期做的不好。在缺陷管理中,我们不但应该把缺陷修改工作能否一次通过作为考核开发师的标准之一,更应该把一些常见的缺陷是否存在作为考核开发工程师的标准。在经过一定的积累后,开发团队应该形成一些常见的程序缺陷列表,以引起开发组成员注意。在此基础上,还需要做到下面几个要求来提高质量:51Testing软件测试网 G\(v,}Q.H.|0l

51Testing软件测试网 e6KPt'O(E/cm&z

  修改缺陷要彻底——彻底不单单是要修改好测试人员提交的缺陷,还要争取不带来新的缺陷、这就要求开发工程师修改缺陷时要对相关联的部分进行检查。51Testing软件测试网-mY0E8nLRty

WM&SZ%^0  低级缺陷不存在——常见缺陷列表中的错误尽量不应该由测试工程师发现并提出。

h;k)U,]"V2V051Testing软件测试网Vn la8E

  3、产品发布后,缺陷谁来负责?

'l0u/t*L+O vQ OB051Testing软件测试网 }P;L:O pD

  本案例发生在一个正在建设测试团队的组织中,这个研发团队有独立的测试小组,但不是独立的测试部门,产品部经理兼任测试经理。在产品提交给代理商后,代理商发现了一个严重的缺陷,并对其进行了投诉,最终的结果是公司领导层对开发队伍的相关人员进行了一系列惩罚。

uL9fhx0

u_|G:v:Nbq/}HtD0  测试过程简要记录:

x#jK/@@V.E0

51Testing软件测试网:QmVz.F

测试阶段

P;h l*|8t$RAk0

Z9[&SZ6n3n|^0

-ns9V,~3NGb(c-Q,[1y0

测试人员

kKf@-S(@8g0

!S0{s.e sl(cprx Z051Testing软件测试网v1\{"{E5B

备注51Testing软件测试网o}&zY2Jz

51Testing软件测试网(S'A Jy{G#Y]

v wp9Ll8iZ(Q X0

单元测试51Testing软件测试网 X6_Si:G!?a.XXN

51Testing软件测试网)m6Q]'Ae*A i:m

51Testing软件测试网U5Q3u5Qf|T(U~

主要由开发人员负责。51Testing软件测试网 g Q*U-C:wd(?s

51Testing软件测试网Y0b2lF I T

!P6` L&Wj0

开发人员一边开发一边测试。

$N7PW["S*a7pWV051Testing软件测试网*r&K;g9V,_mW

51Testing软件测试网pxE \ vC.P

集成测试

3g?A9j4A6G0

/s.z6A8Q2{9O0

.~Z W:tWPa:T+r:{9q0

开发人员负责,测试人员没有参与。

]"JH]qgh0

~1}5E*T;a.P+t0

8GK(_+AG%]w0

没有作为一个独立的测试阶段进行,在开发过程中进行。

1s7A8v~)hx051Testing软件测试网'X e`i1h]~"K

#w$|j~1c0

系统测试

aD(_e:e%n5Dgo%|/r0

'VJY7Vd U'zs!nI051Testing软件测试网I$i[LR4z?2m Vq5I

由测试小组进行,共5名工程师,测试了进15个工作日。

*eox!L`(e9B,pQ$~051Testing软件测试网]!S#x+qZ&]N/I6h

a7AwHmX%B9o0

测试过程采用了缺陷管理工具。

4f|X2~1v4a dtG`-X051Testing软件测试网:x;B:M+H"H5o

51Testing软件测试网6|-q6i:T?ZM o

回归测试51Testing软件测试网6S$c t_KE X3L+J

51Testing软件测试网Fdo.O3`(o

(B!vZnO2\o&q gY0

测试工程师和开发工程师进行交互的测试、修改。51Testing软件测试网'do'i:a}qkCs

51Testing软件测试网v8djH9Uz{:tK

51Testing软件测试网k~$t5L9Q:ht/IL}`

开发工程师修改完最后的缺陷后,把所有的模块打包,发送给客户。

.B/m Pw TP7W051Testing软件测试网(I)FB ^1n[y:zJ2p

F~ KH&UK:eE i0

验收测试

f"TjO:j0

e ]j kX t:T d7b0

(d8eG'JAP0

由软件代理商的测试队伍自己进行验收测试。

){4UpY z)E0

6[c`-K D0

AJ:@3p3tIy#z0

根据用户手册进行测试。

-kFF\kwTv$\0

QhW R Vt9M N051Testing软件测试网0R @X&LK$~-pz

51Testing软件测试网U,OyW2T f u

51Testing软件测试网v2JLx8{ z/j+l

51Testing软件测试网{^sOu U A/w

在代理商验收测试进行的第三天,测试人员发现了一个严重缺陷——“流转后的文档无法正常归档”。代理商立刻向公司的客户服务部进行了投诉。在此之后的10多天里,代理商的测试人员又陆续发现了近30个缺陷。51Testing软件测试网8ET&[[2nr5x

  公司对产品的质量十分“震怒”,详细调查后,发现了这个问题产生的过程如下:

b$k&O5Vv0

lxY"x(n]6q0  这个缺陷实际发现过一次,开发人员进行修改时,发现难度较大,决定暂停修改,得到了测试人员的认可;

bTZ Tzf`4@)Jh0

j eK ^.D/nP.K]JDl0  接着大家忙于新的测试和修改工作;

g-@ mI NO2]A0

'M}5|'j}Z&P$M;b ~0  产品发布前,开发工程师进行了修改,然后直接发布,在开发环境下问题确实得到了解决;

HvU1y2Nvc Z051Testing软件测试网 m R%gD;m

  最后公司对相关人员进行了连带惩罚:

8A3o9M6{x|G?^o0

@ P[;kH&Sm_V0  产品部经理、项目经理、开发工程师本季度绩效考核降为最低,即下个季度每个月份都要扣除一定比例的工资;51Testing软件测试网iWAo |.I~`;i

51Testing软件测试网'iS.Bmr5J/T1k*?}

  测试工程师绩效考核降为最低,同样扣除了工资。

#l N*}n?)[0[8\G%|2C051Testing软件测试网%] TcO ~ d uNu

  上面案例的执行过程中,有几处显而易见的不合理的地方:51Testing软件测试网NK0z4q:W py

$M^*[5k;[{$g:q$h0  缺少文档,尤其是需求文档。文档是测试的主要依据。如果交给测试组仅仅是一个软件系统,然后告诉他“你们来测试吧,发现缺陷就提交”,我相信提交缺陷后开发与测试双方几乎会陷入喋喋不休的争吵状态。

9BUX$rk6e8pS0

oBcD4m J#Iq0  测试介入太晚。只在系统测试阶段才安排测试人员进行测试,实际上质量已经失控了。尤其是没有文档,测试人员无疑会把一些“缺陷”认为是合理的,而开发人员通常会自信地人为自己的开发工作是正确的。这样,一些问题是否是缺陷就会最终交给客户来完成。质量控制和测试的相关工作没有按照合理的流程进行必然会产生这种结果。要改变这种现状测试工作就应该尽早地介入整个产品的开发流程。51Testing软件测试网x,E'Z GDt8c

51Testing软件测试网.v@.j"@.]1O/c5K

  回归测试做的不合理。案例中在回归测试时,“开发工程师修改完最后的缺陷后,把所有的模块打包,发送给客户”,这里明显还缺少一次测试。所有的缺陷应该经过修改验证后才可以发布产品,最后阶段发现的缺陷也不应例外。必须经过这道工序才可以发布产品,因为修改可能会带来新的缺陷。

1H)Kd-[ ] Ji v1d051Testing软件测试网hv%?B+|1g

  产品发布的出口不对。案例中的产品最后是由开发人员发布的,这是十分不合理的。这些产品来自于开发环境,众所周知,很多缺陷在开发环境下运行时是不出现的。产品在经过最后的回归测试并且确定可以发布后,应该把经过测试的产品而不是来自于开发环境的产品纳入配置管理基线库,最后发布的产品应该从配置管理库中提取的。51Testing软件测试网;xRp/~w5O{

51Testing软件测试网r |/R#m6@Ax4U'Bu

  缺陷流程不合理。这个带来严重后果的缺陷其实就是从不规范的流程“空隙”中逃脱的,原因主要如下:51Testing软件测试网,Uh.p%t Q)T"f7@'|HE

51Testing软件测试网V4M ~u0QB

  缺陷的用户权限控制不严。开发工程师无权决定是否延期或者暂时停止修改某一缺陷。案例中开发工程师自己决定延期修改,测试工程师也进行了认可,这是不合理的做法。51Testing软件测试网6\Z%Natl1B8Z

51Testing软件测试网-t$L1GJ5pBh#E

  没有对每个缺陷进行全程跟踪。测试工程师应该跟踪每一条缺陷,并确定修改后才可以进行关闭操作,而不是发现缺陷就完成了任务。51Testing软件测试网4K/PSvn

K-B*f\.F n0  缺少了缺陷审核步骤。产品发布前,项目经理应该对产品发现的缺陷进行审核,根据修改状况来决定是否可以发布。产品带着缺陷发布也是正常的行为,例如微软的大多数产品都是带着缺陷发布的。重要的是对最后未关闭的缺陷进行合理的处理。这些缺陷要由项目经理甚至是技术总监进行审核签字后确定不进行修改后,才可以转入产品发布。本案例中如果事先对缺陷做过审核并确认,就可以规避风险。

8sc$^9vHQ$v$EN051Testing软件测试网7zCXm2|

  上面的诸多原因,必然导致了产品会遗漏很多缺陷。实际也是如此。开始发现的这个“严重缺陷”只是个开端,后面陆续发现的30多个缺陷才是上面这些原因的“所以”。如果这30多个缺陷都要进行惩罚,公司可以收入一大笔。虽然公司根本目的是想把产品质量做好,并不希望处罚大家,可是找不出提高质量的根本方法,只能出此下策以儆效尤。51Testing软件测试网cLt"wein1U&wE;d

51Testing软件测试网fx4}1Ug a;k{

  产品发布后的责任究竟应该由谁来承担?作者认为,应该根据具体的问题来决定。首先要意识到产品带着一些缺陷是正常现象。如果纯属个人原因造成,个人是应当承担责任的,惩罚永远不是最有效的办法。实际上,本案例中的开发工程师在不到20天就提出了辞职并离开公司,给公司的产品开发带来更大的损失。提高质量必须从提高项目管理水平处入手,同时加强质量控制来避免类似问题发生。51Testing软件测试网'[7e jI0]&DsI'ZN

\1b_zE lK}#`0  4、小结

*oab Pe(}051Testing软件测试网8d*d ^v1Mj:MR

  通过对上面三个案例进行分析,我们应该已经意识到质量、进度、成本是相辅相成、同等重要的,决不可以忽略任何一个方面。尤其是软件质量,决不要因为它是非硬性指标就敷衍了事。此外,软件测试作为质量控制的最重要手段,必须引起足够的重视。本文所讨论的案例,都是直接从实践中来的,且具有相当的代表性。那么,为什么为数不少的软件企业会陷入上述“怪圈”呢?归根结底就是短期利益心理在作怪。希望企业能够通过本文的案例剖析,意识到问题产生的原因的所在,进而提高软件质量管理水平,建立合理的质量管理体系。

-wf)q pg0

TAG:

 

评分:0

我来说两句

Open Toolbar