白盒测试的条件覆盖标准强于判定覆盖(错)
条件覆盖:每个复合判定表达式的每个简单判定条件的取真和取假情况至少执行一次;
判定覆盖:又称为分支覆盖,其含义是保证程序中每个判定节点的取真和取假分支至少执行一次 。
条件覆盖不一定强于判定覆盖。条件覆盖在通常情况下是强于判定覆盖的,因为条件覆盖使判定表达式中每个条件都取到了两个不同的结果,判定覆盖却只关心整个判定表达似的值。但是,也有可能有相反的情况,条件覆盖虽然把每个简单判定条件都取到了真假两个结果,但是可能判定表达式始终只取了一个值。
举个栗子~比如,一个复合条件为A==2 || B > 1
如果条件覆盖中我们选取了两个测试用例:
A=2,B=0(A为真,B为假,总的结果为真)A=0,B=2(A为假,B为真,总的结果为真)
在上述两组测试用例下:虽然满足了条件覆盖(每个简单判定条件的真假都取到了),但是因为最终整个判定表达是都是真,导致条件覆盖下永远只取到了真值,而如果是判定覆盖将会真值假值都取到。这两组测试用例就只满足了条件覆盖标准并不满足判定覆盖标准。