软件质量该如何做?

上一篇 / 下一篇  2012-05-04 09:25:55 / 个人分类:杂谈

程序员可能都认为质量很重要,但是很多项目质量都不是很高,原因可能是51Testing软件测试网w;WL[B'z` X

  ● 程序员是乐观的,觉得自己写的程序没什么问题。51Testing软件测试网6x,R-B Z5D?9r x2~

51Testing软件测试网&wk6s N#H,Q

  ● 程序员不愿意做测试,做测试没有成就感。

*~ W4^Z7p.r9^U-cwsN051Testing软件测试网}4E*G$N/b{']z

  ● 程序员没有时间做测试。51Testing软件测试网ZZXE ~V7HR

51Testing软件测试网:m5B1G$S.IsW5F

  我觉得提高质量,最重要的是提高质量意识,只要你肯花时间,零BUG也是很容易实现的,我所在的团队就成功实现了几次零BUG的项目,零线上故障,冒烟测试都是一次性通过。我们一个迭代的周期是两周,通过几个流程来保证质量:51Testing软件测试网^ |Aj#vY

51Testing软件测试网0s#EA w h

  需求评审(半小时)-设计评审(1小时)-单元测试(1天)-晨会(每日)-代码审查(1天)-冒烟测试(半天)-项目总结(半天)。51Testing软件测试网(dPW,eMu

:To-G~ kF`0  1、Code Review(代码审查)

9xg6i5WNJ"e^%\QV0

:DF Ld8|:H:C0  在一次迭代中会进行四种Code Review:51Testing软件测试网'UEY;q:~C

,x1K w ^5v_w0  1)自我Code Review,自己写完代码,在自测前进行一次Code Review。

*r!`~xQD:n051Testing软件测试网l O'Fm+^ MhO

  2)结对Code Review,结对(本文所描述的结对是指两个人一起设计,分开实现代码)的同学使用Tala工具(由我们团队开发的阿里巴巴内部Code Review工具)搜索出你在这个项目中修改的所有文件,然后一个一个审查。

6?w5f!V/Ev0

g emf:nF,Ds0  3)专家Code Review,可能结对的同学Review存在一定的局限性,所以项目经理会对一些核心功能进行Review。51Testing软件测试网 p |0E2BW]%F2`A

K;_| g P0  4)主动Review,团队中有的同学提前完成功能,主动去Review其他同学的代码,这也是团队合作的一种表现。51Testing软件测试网_%dP+US#I's

51Testing软件测试网ln*@ J)k_"hY c

  代码审查的时间,按照情况有三个时间:每日(有时间的话),提测前2天(主要是这个时间)和提测后(如果项目比较紧,这个很少会出现,有些问题即时测试了也发现不了,必须通过Code Review)。

{k?S} A"b#DNi051Testing软件测试网Kr G*I(l4Wn9s6}p

  2、单元测试

w6?%p2L-TB#@,Jf0

*^ g$@ I&X:o5s0  大家都知道单元测试是非常花时间的,所以我们把单元测试的时间主要花在测试业务逻辑上(Service)。在单元测试的过程中,根据不同的情况我们采用了以下四种方式:

H~h(F*ZO051Testing软件测试网%|/vXmu {9h'LzE

  1)结对单元测试,由结对的人帮助你写单元测试。51Testing软件测试网Wus8~%c M@

As.A V4H0  2)边实现边写单元测试,项目时间比较充裕的时候,自己在实现的过程中写单元测试。51Testing软件测试网$R!v&zk c%R%n

:j R8w2FNK0  3)测试驱动。业务逻辑比较复杂的时候。

,M EFC9]lAL051Testing软件测试网mV\?9Z'L!X@

  4)补写单元测试,这出现在项目比较紧的时候,或者因单元测试没有覆盖的流程所引起的BUG。51Testing软件测试网xCM?&a+W4n k

51Testing软件测试网.r5Dx#}/v [Q

  我们追求的是单元测试的行覆盖率达到70%,目的是希望单元测试能覆盖大部分业务逻辑。51Testing软件测试网't G P%M*]$S

51Testing软件测试网^RW-la3q/[-~^

  3、团队合作

u/a'Bt,ux"KQ051Testing软件测试网opM!ymM(O;M

  很多时候质量低下,源于没有时间,比如团队中有的同学实现某个功能发生了延迟,那么他肯定没时间开写单元测试,帮别人做CodeReview,那么这个问题就应该在晨会的时候知会团队成员,由其他团队成员帮助你去完成这些事项,因为我们是一个团队。51Testing软件测试网.S:h-k1O0g2G3x

51Testing软件测试网|hJ+H"^(Z[ U1w/T

  4、冒烟测试

z.@v7c6Ff7b3l051Testing软件测试网 Ze B\fR3U N `1Uc8vg

  提测前我们会进行一次冒烟测试,目的是测试核心流程是否正常,因为我们要求冒烟测试必须一次性通过,所以在冒烟测试前,程序员必须按照测试的check List做最后一次检查,这样可以调动大家重视质量的积极性。51Testing软件测试网?nb9w1T"P%};\X

51Testing软件测试网C9@$w!kZ ^_

5、项目总结

wA:\*G?&vp&U2Eu051Testing软件测试网 [y`7KV f1]fW

  在项目总结的时候,针对于BUG我们会做如下分析51Testing软件测试网nM1BC`?%P;w:@

`$J.N? U9H:Qh Y0  ● 如果项目BUG比较多,那么大家一起分析原因。一般前端功能比较多的,BUG会多。后端功能,BUG会比较少。有的时候项目比较紧,以上有些流程没有完全走到,会引起很多BUG。51Testing软件测试网fnF M8V

J s7egS0  ● 如果某个成员BUG比较多,那么由他自己先分析下BUG产生的原因,然后加到下次Code Review和自测的check List里。

%_E3YeocI{@051Testing软件测试网,ho5U#Z!Ic

  ● 重复BUG的分析,出现重复BUG是比较严重的问题,这一般都是由于重构引起的。

R"T%|}eqiB P/m(F051Testing软件测试网 G \ D,oX7yQ @O

  ● 单元测试可避免的BUG分析。51Testing软件测试网*X%lU f8B e:l'ro

k:}$rFx0  我们使用一套闭环的方式来保证项目质量:

6j8ur#nCMX-W B0

UqJ7?6@_[q w0  审查(按照checkList进行需求,设计和代码的审查)- 测试(自动化,冒烟和功能测试)-总结(总结出checkList)

8J1c+VWv Hp:G0

]"L9l2g7W?!{\0

  那么再回答下开篇的几个问题

7GX d.\ [0

  ● 问:程序员是乐观的,觉得自己写的程序没什么问题。

E h g~#V(eW7q0

  答:通过以上这些流程提高质量意识。51Testing软件测试网V;J8{D.z!CLl

  ● 问:程序员不愿意做测试,做测试没有成就感。51Testing软件测试网HK f\ Z

  答:通过写自动化测试脚本来增加程序员的成就感。

~ ]c5SCz"F N }.z0

  ● 问:程序员没有时间做测试。

)F%|8mD(A6U0

  答:通过团队合作来弥补某些成员没时间做测试的问题。

dD$A8s k$RjQ0

TAG:

 

评分:0

我来说两句

Open Toolbar