白盒测试学习个人总结

  如同之前的随笔内容所说,常见的软件测试方法中,如果说黑盒测试就像是面对用户使用所设计出来的测试,那么白盒测试,就像是面对程序员和软件设计人员所设计出来的测试了。

  盒子,值得就是程序,白盒,就像其名字一样,程序对测试而言是透明的。在测试过程中,程序的输入输出,结构,运行过程,甚至代码等都是透明的。所以白盒测试又被称为结构测试或者透明盒测试。如果说黑盒测试是在测试程序的使用功能的话,那么白盒测试就是在检测程序的运行机理和过程了。

  所以,在对程序进行白盒测试之前,需要先对程序进行抽象化,将其转化为流程图,以方便测试。常见的白盒测试方法有静态分析测试以及语句覆盖测试等等。

  覆盖测试: 

 语句覆盖是一种常见的测试方法,即度量被测代码中每个可执行语句是否被执行到了。语句覆盖往往只检测与剧中的可执行语句部分,所以其代码覆盖率较低,而测试过程中所以得可执行语句分支都得考虑到,所以其效率并不高,其优点在于对测试不需要做出太多的设计,执行起来简单。

  而为了解决语句覆盖中重复覆盖的问题,就出现了另一种叫做分支覆盖的方法。分支覆盖又称判定覆盖,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假均被满足。 分支覆盖具有比语句覆盖更强的测试能力,而且具有和语句覆盖一样的简单性,无需细分每个判定就可以得到测试用例。然尔程序往往大部分的判定语句是由多个逻辑条件组合而成,但是分支分支覆盖,仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。

  对分支覆盖对应的是条件覆盖。与分支覆盖不同的是,条件覆盖并非以分支的结果划分,而是以分支的条件划分。条件覆盖使得每个判断中的每个条件的可能取值至少满足一次。条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况,要独立衡量每个子表达式的结果,以确保每个子表达式的值为真和假两种情况都被测试到。

 

  白盒测试意义:

  相对于黑盒测试而言,白盒测试往往复杂且效率较低。但是白盒测试依旧十分重要。白盒测试是对软件的彻底检查,就仿佛机器大检修一样,能够正常运行的机器未必内部没有问题,软件也是一样。白盒测试强迫程序员与检测人员去检测程序中最细枝末节的地方,发现隐藏的逻辑漏洞与bug,对高质量软件的产生十分有意义。


  


posted on 2015-04-19 22:30  四班&田晨阳  阅读(8548)  评论(1编辑  收藏  举报

导航