条件覆盖是指,设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。
第一个判断应考虑到:A>1,取真值,记为T1
A >1,取假值,即A≤1,记为F1
B = 0,取真值,记为T2
B = 0,取假值,即B≠0,记为F2
第2个判断应考虑到:A = 2,取真值,记为T3
A = 2,取假值,即A≠2,记为F3
X>1,取真值,记为T4
X>1,取假值,即X≤1,记为F4
我们给出3个测试用例:CASE6,CASE7,CASE8,执行该程序段所走路径及覆盖条件是:
从这个表中可以看到,3个测试用例把4个条件的8种情况均作了覆盖。
进一步分析上表,覆盖了4个条件的8种情况的同时,把两个判断的4个分支b、c、d和e似乎也被覆盖。这样我们是否可以说,做到了条件覆盖,也就必然实现了判定覆盖呢?让我们来分析另一情况,假定选用两组测试用例是CASE 9和CASE 8,执行程序段的覆盖情况是:
这一覆盖情况表明,覆盖了条件的测试用例不一定覆盖了分支。
事实上,它只覆盖了4个分支中的两个。
为解决这一矛盾,需要对条件和分支兼顾。