2
    public int f(int i) {
    int j = i+1;
      if(i % 2 == 0) {
        j = doit(i);
      }
      if (i % 3 == 0) {
        j = doit(i+1);
      }
    return j;
    }

要实现此方法的全路径覆盖测试,需要多少个不同的参数 i 值?

写下这么多不同的值,这将实现该方法的全路径覆盖测试?

全路径覆盖测试到底是什么?你怎么做呢?(请详细解释,我有一个测试即将到来,我仍然对此感到困惑)TIA

4

2 回答 2

2

如果您以测试逻辑的所有可能路径的方式测试代码,则称为全路径测试。

在您的示例中,您有两个备用路径,它们导致以下 4 种组合:

  1. 如果仅阻止,则控制首先进入(例如i = 2
  2. 如果仅阻塞(例如i = 3),则控制进入第二个
  3. 控制进入两个 if 块(例如i = 6
  4. 控制不会进入两个 if 块(例如i = 5

如果您使用上述 4 个场景测试您的代码,这将是您的代码的全路径测试。

于 2012-12-10T03:21:49.370 回答
1

完整路径覆盖是指在测试期间执行通过代码的每条可能路径(在不同的迭代中。不必全部都在一个测试期间)。在上面的代码的情况下,它需要四个不同的值i来触发:

  • 第一个如果,不是第二个
  • 第二如果,不是第一
  • 两个如果
  • 如果

由于这似乎是家庭作业,因此我将发现i需要哪些值由您决定。

于 2012-12-10T03:22:22.733 回答