什么是java中的完整路径覆盖测试?

时间:2012-12-10 03:18:01

标签: java testing path

    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

2 个答案:

答案 0 :(得分:2)

如果您测试代码的方式是测试逻辑的所有可能路径,则将其称为完整路径测试。

在您的示例中,您有两个备用路径,分为以下4种组合:

  1. 如果仅阻止(例如 i = 2
  2. ,则控制首先进入
  3. 如果仅阻止(例如 i = 3
  4. ,则控制进入第二位
  5. 如果阻止(例如 i = 6
  6. ,则控制进入
  7. 控制不会同时进入if块(例如 i = 5
  8. 如果您使用上述4种方案测试代码,则会对代码进行完整路径测试。

答案 1 :(得分:1)

完整路径覆盖是指在测试期间执行代码的每条可能路径(在不同的迭代中。并非所有路径都必须在一次测试中)。对于上面的代码,它需要四个不同的i值来触发:

  • 首先是if,而不是第二个
  • 第二个,不是第一个
  • 两个ifs
  • 不是

由于这似乎是家庭作业,我会发现需要i的价值取决于你。