首页 > 解决方案 > 澄清“完整路径覆盖”的含义

问题描述

在课堂上,我们被要求测试这个静态方法。该方法应该(但不总是)返回与输入相同的整数值。

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?

标签: testing

解决方案


从测试人员的 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)

如果你想了解更多,谷歌边界测试。


推荐阅读