持续集成:软件质量改进和风险降低之道

上一篇 / 下一篇  2012-08-30 09:55:00 / 个人分类:杂谈

0i]X3v3? `$i0  问题

j];A(p)z(n051Testing软件测试网T%c#h:f z#uoG7s]b1U

  在软件行业发展的初期,软件项目中最棘手、最紧张的时刻就是集成。单独能工作的一些模块被组装在一起,系统整体却常常失败,而且很难找到失败的原因。51Testing软件测试网2IV@_r]:D;L&L

51Testing软件测试网X%y+n pn?G(h

  解决办法51Testing软件测试网-pk9^$G#@g5L

51Testing软件测试网U[Yc9Q9MF;zF

  解决办法的关键在于更为频繁地进行集成。51Testing软件测试网l g:FJ#Q&Bn

51Testing软件测试网l,^^ Hw/wJ"[s

  它给项目带来了完全不同的感觉。项目的可见性变得好了很多,因为问题能够更快地检测出来。引入缺陷和发现缺陷之间的时间间隔变短,就更容易发现缺陷,您可以很容易地看见改变了什么,以方便找到问题的根源。当它与良好的测试程序配合时,可以大大减少缺陷的数量。结果是,开发者在调试上花的时间减少了,在增加功能上花的时间更多了,他们相信自己是在一个坚实的基础上开发软件。51Testing软件测试网0H zOg)D G7r.[Q

B,o'@6V _z6Q j0  持续集成意味着:

u,Q7T3l'p1O7yE051Testing软件测试网%}qU4WPa7W8S%c&^

  ● 所有开发者都先在他们自己的工作站上执行私有构建,然后再将他们的代码提交到版本控制库中,从而确保他们的变更不会导致集成构建失败。51Testing软件测试网&R8p*y A:r0|,w

:~FTpc \C0  ● 开发者每天至少向版本控制库提交一次代码。51Testing软件测试网Oz#@Q/r8THk8b

6nP5bNi$Y0  ● 集成构建每天在一台独立的计算机上进行多次。

6QLrFn0

l;e\S"Kx0  ● 每次构建都必须 100%通过测试。

O2R:@9PF z ?051Testing软件测试网ZGj9m(HR]{O[

  ● 生成可以进行功能测试的产品(如 WA R、配件、可执行程序等)。51Testing软件测试网*j;eI F GB,q{

!nW+G^%p1_wGV0  ● 修复失败的构建是优先级最高的事情。51Testing软件测试网4nH0z$T e

}EDt cNtH;BY0  ● 某些开发者复查构建生成的报告,如编码标准报告和依赖分析报告,寻找可以改进的地方。

g$hq|7Mv!J051Testing软件测试网6{B7MI.]GP hU

  最佳实践51Testing软件测试网)P4Vu eU6z-W*_S

51Testing软件测试网\!dB p oP|Z9l

  为缺陷编写测试51Testing软件测试网5Y)W-QLZ{

51Testing软件测试网?H/cEL6D

  当缺陷被发现时,找出并隔离有问题的代码,为了修复缺陷,我们基本上需要破坏测试,先编写一个会失败的测试用例,然后不断执行这个测试(在修复缺陷的过程中),直到测试不再失败为止。51Testing软件测试网&H-n(\7T_3VI

51Testing软件测试网8Nd6L8t8O

  让组件测试可重复

W2i7|1K@E&V*\0

g[_K{#U0  数据库对于测试来说是相当沉重的依赖关系,所以您有两种选择:要么尽量地进行模拟,在尽可能长的时间内完全避免使用数据库,要么使用数据库并承受其开销。实现这种测试最容易的方法是使用某种xDbUnit 这样的数据库填充框架(如51Testing软件测试网2R-Zv2n4Q{ F

51Testing软件测试网2W5wN!i6O)Q]8}9Qi

  针对.NET 的NDbUnit、针对 Java 的DbUnit 、针对 Python 的PDbSeed )。这些框架将数据库的数据集抽象到 XML 文件中,然后为开发者提供细粒度的控制,即在测试过程中如何将这些数据填充到数据库中。51Testing软件测试网%a'H'AZ,I(Vq Us


TAG:

 

评分:0

我来说两句

Open Toolbar