White-Box Testing
白盒测试是关注测试用例覆盖程序逻辑(源代码)的程度。最终的白盒测试是执行程序中的每个路径。但对于大多数的程序(例如带有循环的程序),完全意义上的全路径覆盖是不现实的。
Logic Coverage Testing
你可能会觉得一个值得追求的目标是至少执行程序中的每一条语句。不幸的是,这是一个很弱的标准。假设下面这个图表示一个要测试的小程序。相应的Java代码片段如下:


你可以通过编写一条单独的测试用例来执行到路径ace。也就是说,在a点设置A=2,B=0和X=3,每个语句将被执行一次。
不幸的是,这个标准相当差。
第一个条件可能是或而不是与。如果是这样,这个bug将不会被检测到。
第二个条件如果是是X>0,这个bug也不会被检测到。
此外,程序中有一条路径,X没有改变(路径abd)。如果