每日构建和冒烟测试

上一篇 / 下一篇  2012-07-06 11:37:30 / 个人分类:测试经验

 谈每日构建都会连带谈冒烟测试这个词。每日构建不是简单的指每日编译,编译和构建完成后必须对增加的新功能点进行系统测试,对已经测试过的功能点进行冒烟测试。每日构建是微软比较推荐的最佳实践,强调测试的早期介入和持续的版本集成。

3st'al9G.OY2E;\,C1g0  每日构建和冒烟测试的优点主要有:51Testing软件测试网 t.d^9hM5k9OTQ%X

51Testing软件测试网 \,l2c_ ]k'`!aO

  1、进度可见并可以控制到1-2天的细粒度,很容易看到进度的偏差51Testing软件测试网 n:AqNTm

P_h3de&R0  2、及早的发现开发BUG和缺陷并分析解决,对开发人员的一种监督和促进,提高软件质量51Testing软件测试网E!l^}8V'P

bND L iFF Zm0  3、由于将大集成分解到每日构建中的小集成,避免了传统产品集成或集成测试时候出现的严重问题的可能。

sx wc-e1c0

#R4yq+ZP0@%X&S*ric0  4、在项目中宣灌质量意识,强调第一次就把事情做好,而不是等测试来帮你发现问题51Testing软件测试网l&t!j+O,R~

3IF,m,mjYH!|"S0  每日构建和冒烟测试也存在一些风险和缺陷,具体主要有:51Testing软件测试网:A,F9x\{TG

51Testing软件测试网vhU1fH+_

  1、给开发人员太大压力,开发每天都在较紧张环境中工作

$u1S3S2zP9~s$reO3y0

0o F#L1A*K\ {7Z d0  2、需要额外的测试人力资源和每日构建硬件环境的投入51Testing软件测试网1q9B_W ~wk8z1~

e3G8c%IU?0  3、开发人员不能专注,既要分心去修改BUG,又要开发新的功能点51Testing软件测试网0R^o{-Y2Z

51Testing软件测试网 SwBK*^'tg6wr

  4、对开发负责人要求更好,需要将功能细化到1-2天的有明确输出的功能点51Testing软件测试网E5k9EId&[a2x

51Testing软件测试网(w!uD-R&k(W7Bv

  5、开发需要投入额外的精力来保证每日构建顺畅51Testing软件测试网1e7rObn9GU9\

51Testing软件测试网:? _ k4W E#Tq&~G wv

  适用场景:

eH W~@dW U.L4_051Testing软件测试网qD"~.{.x2c Drf

  1、对进度偏差控制和要求很高的项目

$[4oUb b ^8w0

L |n.]}?+F1[e0  2、开发检查点和里程碑制定的很细致的项目

:h |2fB,S0

WZ*c Iwm0  3、采用增量和迭代开发的项目,快速和敏捷开发的项目51Testing软件测试网1u:zR@E5L:x?Z,v$a!Z

S7TZN-r#apZK0  每日构建提前需要进行的准备工作:51Testing软件测试网+d*C3E day0\'W)U

51Testing软件测试网&` S!yt2nba

  1、对开发进度计划的要求,需要细化出每1-2天的开发进度计划,可以到一个很小的功能点。51Testing软件测试网J l*z'o'Fp]6H

51Testing软件测试网fF*q%Qs l&H;G\1JAq

  2、对每日构建测试计划的要求,需要根据开发进度计划来安排冒烟测试和系统测试进度计划。

$te8S.?y1[,xb{D(L Q-V0

rdps {S0  3、需要提前准备好每日构建的环境(每日构建必须是独立的环境)

iU d3|1m051Testing软件测试网@0Q ^*a.S%KDA

   每日构建和冒烟测试工作的实现可以人工来实现,但更多的需要借助些自动化的工具来完成。对于每日构建一般要提前编写好每日够建的脚本,可以借助Ant或 NAnt构建工具来完成。每日构建脚本的复杂性跟项目或系统本身复杂性相关,对于简单的只有一个项目的解决方案,可能构建脚本会很简单,而对于较复杂的系 统或项目构建脚本将会教复杂。NAnt是一个强大的通过构建脚本自动编译的工具,像我现在的项目在NAnt里面会做如下事情,而这个即使打开解决方案来编 译也无法做到。51Testing软件测试网:g O YH/hvVx

51Testing软件测试网8FX+b1e"M;?:Fa

  1、调用批文件重新自动生成数据访问层组件

P2k0D.m9G9n9[-o F l)I051Testing软件测试网1lDW*D?5J)@)b-pX

  2、创建相关的部署需要的cs_client,bs_client,server,service相关目录并拷贝公用文件

i0Yb x$qj4m0

I*q5Eg`q-vY2o-z]0  3、按照公用项目->逻辑层->界面层顺序和项目间依赖关系对各个项目逐一编译

[2_ R*ps051Testing软件测试网aM,vw9U

  4、调用外部工具soapsuds生成数据访问dll的代理类文件,逻辑层重新引用代理类进行编译(分布式部署需要)51Testing软件测试网uMt9v$w.?

Xln)Kv E!N e.f0  5、引用3,4步需要的dll对Web项目进行编译

$pZ#? L%S9P]051Testing软件测试网T!G H;}Es*|!u)z

  6、拷贝编译结果到相关的输出目录51Testing软件测试网 EM7l$~;U*RX2F$u

I%nzWo!iYi0  每日构建和每日编译的最大区别就在于是否进行了冒烟测试,系统必须通过了冒烟测试才能够算每日构建成功。而测试人员人工介入的测试是基于冒烟测 试通过的基础上面的。这里很简单一个例子,如我们NAnt配置文件忘记拷贝一个公共文件到server目录了,这个时候每日编译可能是通过的,但如果把这 个版本部署出去测试无法进行测试的。或者说冒烟测试的一个重要作用就是要彻底解决由于构建自身原因引起的各种缺陷或Bug。

Tv U h$dF_051Testing软件测试网 QNX B-\K:hP5dd

  冒烟测试由于要验证整个编译的正确性,因此冒烟测试必须是针对整个系统进行冒烟测试。但冒烟测试只需要关注系统的主体功能即可,通过冒烟测试并 不是说系统没有BUG,只是说通过了冒烟测试后可以说系统是一个稳定的版本,说系统的每日构建是成功了,代表系统可以转交专门的测试人员进行测试了。冒烟 测试工作一般要采用自动化来进行,可以借助如LoadRunner等工具来录制自动化测试脚本,冒烟测试的脚本应该由专门的测试人员来维护,而且随着测试 的进展冒烟测试脚本也应该是不断增加和补充的。51Testing软件测试网 LO1n,I2ON9}

3v(E)}wE_D K)~e A0  对于每日构建失败,直接责任的开发人员需要程度责任并付出代价。微软顾问经常爱举的一个例子就是凌晨2,3点开发人员被叫到公司解决每日构建失败的问题的案例。实际操作可能很难,但对构建造成影响的必须要承担应有的责任。

W%_N)r'|*pP#_051Testing软件测试网3I)p&tfwFn*fJ0S"SP

  每日构建一般要配合使用源代码管理工具,而构建时间一般安排在每天下班后或晚上进行。开发人员需要保证每天检入的代码是能够顺利编译通过的,并 保证在本机已经做了相关测试。每日构建并不是一定要要求每天都有新的功能点完成,如果今天开发完成的东西不是一个独立的可以提交测试的功能点,这个时候当 天的源代码最好不要检入。代码的检入周期一般要在2-3天内,如果周期再长基本上就达不到每日构建的作用了。51Testing软件测试网T(@5r!NB!ER

51Testing软件测试网FQ(]9v\'o%xWG

  每日构建必须有独立和专门的构建服务器和构建环境。构建服务器和构建环境与测试环境的最大区别在于构建环境是完全Copy开发环境,单独出构建 环境目的是保证构建过程不和开发环境和过程冲突。如果条件不允许的话可以将构建环境和测试环境合并,但构建环境必须和开发环境分离。51Testing软件测试网$F#Bk5T(C*qGW5I,B

-R!e]f-JhC0  每日构建的成功要素:51Testing软件测试网`Vmb9]u

u{T7o+c.m9ZxM%qE0  1、每天都进行编译和冒烟测试

;R!{3b7F3M051Testing软件测试网x.G6\ dZ

  2、冒烟测试脚本随着测试的进度不断完善和补充51Testing软件测试网2g`Gh1P[

51Testing软件测试网 aB.G#m!iy

  3、构建成功在项目中拥有较高的优先级51Testing软件测试网6S#I b&rJR;L#D c

4c5O^,nb d0  4、通过过程的制定保证构建失败更多的是因为异常因素而非规则不清

Q9R6yEG'lt0

S7qBF}_O0  5、在压力下不要抛弃过程51Testing软件测试网!MkWe Vj


TAG:

 

评分:0

我来说两句

Open Toolbar