判定覆盖只关心判定表达式的值(真/假),而条件覆盖涉及到判定表达式的每个条件的值(真/假)。
举个最简单的例子,方便理解:
判定表达式:a>1 or b>1
用判定覆盖设计的测试数据:
a=5 (判定表达式的值为“真”)
a=0 (判定表达式的值为“假”)
这里不需要管b的取值,就已经满足判定覆盖的条件了。
用条件覆盖设计的测试数据:
a=5 (条件a>1的值为“真”)
a=0(条件a>1的值为“假”)
b=5 (条件b>1的值为“真”)
b=0 (条件b>1的值为“假”)
这里不考虑 a>1 or b>1 这个表达式的取值的情况,但必须把a>1 和 b>1 这两个条件的取值考虑全。