判定条件覆盖法
一、什么是判定条件覆盖
判定条件覆盖:判定条件覆盖是指设计若干个测试用例,运行被测程序,使得程序中每个判定本身的判定(真假)分支执行一次,然后,程序中每个判定条件中的逻辑条件至少取一次真值和假值。
假如 if(x>0 && y>0) 就要 if表达式的真假值各取一次并且x和y各取一次真值和假值。
判定条件覆盖率= 被执行的条件表达式(真假)和条件(真假)总数 可执行的条件条件表达式(真假)和条件(真假)总数 \frac{被执行的条件表达式(真假)和条件(真假)总数}{可执行的条件条件表达式(真假)和条件(真假)总数} 可执行的条件条件表达式(真假)和条件(真假)总数被执行的条件表达式(真假)和条件(真假)总数x100%
二、要执行的语句代码
代码流程图如下(示例):
代码如下(示例):
public static void main(String[] args) {
// TODO Auto-generated method stub
int x,y,Number;
Scanner sc=new Scanner(System.in);
System.out.println("请输入x,y,Number,用空格隔开");
x=sc.nextInt();
y=sc.nextInt();
Number=sc.nextInt();
if(x>0 && y>0) {
System.out.println("Hello1");
}else{
System.out.println("Hello2");
}
if(Number < 0) {
System.out.println("Hello3");
}
System.out.println("Hello4");
}
三、设计测试用例
1.测试用例数据
根据以上代码定义:
把第一个if语句(x>0 && y>0)定义为test1
把第二个if语句(Number < 0)定义为test2
把x>0定义为p1
把y>0定义为p2
把Number<0定义为p3
结果为真就为下表就填T为假就填F。
设计测试用例:
2.执行测试用例
这里我们看到我们每个判定表达式(真假)和判定表达式条件(真假)都执行了一遍,达到了判定条件覆盖的要求
判定条件覆盖率=
被执行的条件表达式(真假)和条件(真假)总数
可执行的条件条件表达式(真假)和条件(真假)总数
\frac{被执行的条件表达式(真假)和条件(真假)总数}{可执行的条件条件表达式(真假)和条件(真假)总数}
可执行的条件条件表达式(真假)和条件(真假)总数被执行的条件表达式(真假)和条件(真假)总数x100%=
10
10
\frac{10}{10}
1010x100%=100%
四、判定条件覆盖法的总结
判定条件覆盖一定能满足语句覆盖,判定覆盖,和条件覆盖,所以,条件判定覆盖是语句覆盖、条件覆盖、判定覆盖及条件判定覆盖中最全面的覆盖。但是它一样难以发现运算中的逻辑错误关系。