《软件测试》第七章
上一篇 / 下一篇 2007-08-19 22:59:11 / 个人分类:读书笔记
Z(}"Du)u^0这个星期事情比较多,所以现在才到第七章~挺慢的~第七章:Testing the Software with X-Ray Glasses。长期在放射性环境下工作有害身体,大家工作之余保重身体哦~~
5]+v9P0~/a2c:{Pj08^
vvTVzB0p0Dynamic White-Box Testing(动态白盒测试)-动态~软件在运行;白盒,我们能看见里面怎么运行。所以就好像是带了X-光眼镜一样。它还有另外一个名字,就是结构测试(Structural Testing)。动态白盒测试通常包含了四个方面。
4A$tmL
MEH;Y5k
w;R{01.直接对底层的函数,过程,库~等进行测试。也就是对API的测试51Testing软件测试网9MX9tc2y7g9?
L
2.站在一个比较高的层次来测试软件,而且是根据你对软件行为的认知的情况下进行,根据code具体的情况设计有针对性的case进行测试51Testing软件测试网&{7``DxNt;j-A
3.验证已经设计好的case是否真的符合了当初设计的初衷。还有就是强行改变一些通过正常途径很难达到的软件的状态。这个例如说,一般软件都有很多错误的提示信息,但是要把全部错误信息通过正常渠道(用这个软件)得到,是比较困难的。不过在白盒测试里面,我们可以直接在debug器里面改相应的flag变量来达到目的
3?Tm)DW+?%]04.根据各种code coverage的结果来对已有test case的增加和修改,以达到更好的测试效果。
}7D+Yb1ck'X0个人的一些体会,其实测试就是一个动态的过程,test case需要动态的维护、更新和增加,以达到好的效果。呵呵,动态可不单只是指软件运行~一语双关啊~或者说这个词被重载(Overload)了。呵呵~~
动态白盒测试和调试(Debugging)的区别
z_D^(M(Q%^0可以抓住一个要点,他们的目的分别是什么。白盒测试是一种测试手段,测试的目的是为了找到bug,所以白盒测试的目的是找bug。而Debug的目的是什么?是修复bug。之所会让人分不清,是因为他们有一些重叠。就是在分离并确定(Isolating)发生bug的原因。
#a}ey
W(QwHl0单元测试(Unit Testing)和集成测试(Integration Testing)
$ko z2B$QU~0单元测试通常是由程序员来执行的,集成测试也是。不过有些公司是Tester来完成集成测试的,我比较怀疑这个是否应该由Tester来完成~对于集成测试通常有3种。
|0X~Nx!R h6d01.大爆炸形式。就是一次把所有东西搞到一次然后测,虽然都觉得这个模式比较扯淡,但是实际上很多公司都是这样的方式来工作,呵呵~
@2E\d\v2{i-D z9tls02.Bottom-up(自底向上)。就是现在有了底层的模块,然后需要一步一步做集成测试,通常会让测试的人员编写驱动模块(Test Drives)。驱动模块能模拟上层模块对下层模块的调用,从而实现了测试的目的。51Testing软件测试网x"qP cZ4\R,^
3.Top-Down(自上向下)。就是有了上层的模块然后需要编写桩模块(Stub)来模拟对底层的调用。51Testing软件测试网O-cjR
d(R
其实后面的两种方法就跟单元测试里面用的一种技术(mock)是很相似的。都是模拟一个东西出来,不需要实现内部的功能,只需要把接口定义好,然后设计一些输入输出就好了。
6b3XL&O8E;qq:amRgBy0一个软件,其实是由数据+程序实现。所以也就有以下两种覆盖。
*HF,T+s Dg0N
@|c#{3\P,o#A0数据覆盖(Data Coverage)51Testing软件测试网Gcz9D%w/oES
1.数据流(Data Flow)- 对于黑盒测试,我们只知道输入数据和输出数据,我们对这一对数据的中间处理是一无所知的,但是在运用白盒测试的技术以后,我们可以对中间的变量转换还有变化会有一个清晰的了解。正是基于对这些的了解,所以我们可以修改或者增加一些Test Case来对那些风险比较高的地方进行充分的测试,不要忽略了白盒测试的优势--对内部的了解。51Testing软件测试网&v'YY s:W&A