条件覆盖,程序各判定中的每个条件获得各种可能的取值至少满足一次即可,不考虑路径的覆盖。
上图中有两个判定表达式,每个判定表达式中有两个条件,为了做到条件覆盖,第一个判断的所有条件的可能取值情况是A>1或A≤1,B=0或B!=0。第二个判断的所有条件可能的取值情况是A=2或A!=2,X>1或X≤1。
只需要用下面两组测试数据就可以达到标准:
方法一:
1、A=2,B=0,X=4;满足A>1,B=0,A=2和X>1的条件,执行路径ace
2、A=1,B=1,x=1;满足A<=1,B!=0,A!=2和X<=1的条件,执行路径abd
方法二:
1、A=1,B=0,X=3;满足A≤1,B=0,A!=2和X>1的条件,执行路径 abe
2、A=2,B=1,X=1 ;满足A>1,B!=0,A=2和X≤1的条件,执行路径 abe
缺点:条件覆盖并不一定总能覆盖全部分支。测试用例虽然满足了条件覆盖准则,但是只涵盖了程序的路径abe。但是,条件覆盖还是要比判定覆盖强一些,因为条件覆盖可能会使判断中各个条件的结果都取“真”或着取“假”,而判定覆盖却做不到这一点。