白盒测试是相对于黑盒测试而言的,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的逻辑结构实施相关的测试;那么下面来谈谈语句覆盖法、判定覆盖法和条件覆盖法三种白盒测试方法。
1.语句覆盖法
使用语句覆盖法在进行测试时,设计出若干个测试用例,然后运行被测程序,使程序中的每个可执行语句至少执行一次。
有如下图是一个被测试程序的流程图:
设计如下两个用例:
用例1:
A = 2
B = 0
X = 3
用例2:
A = 2
B = 1
X = 3
用例1可以达到100%语句覆盖
用例2不能达到100%语句覆盖
所以要完成语句覆盖就要保证程序中的所有语句都能够被执行,该实例只需要设计一个用例就可以实现。
2.判定覆盖法
使用判定覆盖法在进行测试时,设计出若干个测试用例,然后运行被测程序,使得程序中每个判断结果取真的分支和取假的分支至少经历一次,即判断结果的真假值均曾被满足。
有如下图是一个被测试程序的流程图:
设计如下两个用例:
用例1:
A = 2
B = 0
X = 3
用例2:
A = 1
B = 0
X = 1
用例1覆盖了路径ace,用例2覆盖了路径abd,设计两个用例可以保证所有的路径分支都被覆盖到。