判定覆盖法
一、什么是判定覆盖
判定覆盖(分支覆盖):判定覆盖是指设计若干个测试用例,运行被测程序,使得程序中每个判定条件的取真分支和取假分支至少被执行一次。即:每个分支被执行一次。
判定覆盖率= 被执行的判定(真假)分支总数 可执行的判定(真假)分支总数 \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
执行结果为真就为下表就填T为假就填F。
设计测试用例:
2.执行测试用例
这里我们看到我们每个判定(真假)分支都执行了一遍,达到了判定覆盖的要求
判定覆盖率=
被执行的判定(真假)分支总数
可执行的判定(真假)分支总数
\frac{被执行的判定(真假)分支总数}{可执行的判定(真假)分支总数}
可执行的判定(真假)分支总数被执行的判定(真假)分支总数x100%=
4
4
\frac{4}{4}
44x100%=100%
四、判定覆盖法的总结
判定覆盖比语句覆盖强,只要满足了判定覆盖就一定满足语句覆盖,但是它与语句覆盖一样难以发现运算中的逻辑错误关系。