在课堂上,我们得到了这个静态方法,我们被要求测试。该方法应该(但并不总是(返回作为输入给出的相同整数值。
static int identity(int x) {
if (20 <= x && x <= 30) {
x /= 2;
}
if (5 <= x && x <= 15) {
x *= 2;
}
return x;
}
该问题要求我们创建具有"完整路径覆盖"的最小测试集。由于有两个条件语句,因此您希望生成 2^n 个测试,在本例中为 4。但是,不可能创建第一个条件为真而第二个条件为假的测试。这是否意味着具有"完整路径覆盖"的最小测试数为 3?
从测试人员的 POV 中,我会查看您范围的边缘以确定您的测试覆盖率。您不想只确保执行 if 语句 - 您希望检查范围的边界以及范围内的一个输入。
鉴于此,我将测试以下输入并期望以下输出:
| input | output |
| 19 | 19 | (just outside first boundary minimum)
| 20 | 20 | (just inside first boundary minimum)
| 24 | 24 | (value within the range)
| 30 | 30 | (just inside first boundary maximum)
| 31 | 31 | (just outside first boundary maximum)
| 4 | 4 | (just outside second boundary minimum)
| 5 | 10 | (just inside second boundary minimum)
| 10 | 20 | (value within the range)
| 15 | 30 | (just inside second boundary maximum)
| 16 | 16 | (just outside second boundary maximum)
如果你想阅读更多,谷歌边界测试。