用一个例子区别语句覆盖、判定覆盖、分支覆盖、条件覆盖、路径覆盖
时间: 2023-07-04 21:17:47 浏览: 237
浅析白盒测试中的逻辑覆盖测试
假设有以下代码段:
```
public void calculate(int a, int b) {
if (a > 0 && b > 0) {
System.out.println("a和b都大于0");
} else if (a > 0) {
System.out.println("a大于0");
} else if (b > 0) {
System.out.println("b大于0");
} else {
System.out.println("a和b都不大于0");
}
}
```
我们可以用以下几种覆盖准则来测试这个方法:
1. 语句覆盖:至少需要两个测试用例,分别覆盖第1和第2个if语句块。
2. 判定覆盖:至少需要三个测试用例,分别覆盖a>0和b>0、a>0和b<=0以及a<=0和b>0的情况。
3. 分支覆盖:至少需要四个测试用例,分别覆盖第1、2、3和4个if语句块。
4. 条件覆盖:至少需要三个测试用例,分别覆盖a>0、a<=0和b<=0、a<=0和b>0的情况。
5. 路径覆盖:至少需要四个测试用例,分别覆盖a>0和b>0、a>0和b<=0、a<=0和b>0以及a<=0和b<=0的情况。
举个例子,用以下4个测试用例可以覆盖所有的路径:
1. calculate(1, 1);
2. calculate(1, 0);
3. calculate(0, 1);
4. calculate(-1, -1);
第一个测试用例覆盖a>0和b>0的情况,第二个测试用例覆盖a>0和b<=0的情况,第三个测试用例覆盖a<=0和b>0的情况,第四个测试用例覆盖a<=0和b<=0的情况。
阅读全文