if 语句的语句覆盖率算假吗?

Does statement coverage count false if statements?

检查我的代码的语句覆盖率时:

 double programme(double x, double y)
 {
    double z 
    if(x>=5){
      z = 15;
    }
    else if(x>=3){
      z= 10;
    }
    else {
      z=0;
    }
    if (y>z)
    {
      z=y;
    }

    return z;
}

使用两个测试用例(例如测试 1:x = 6,y = 10 和测试 2:= 3,y = 5)

我不确定语句覆盖率是等于 100% 还是 66%,因为我不确定你是否计算最后一个 if 语句,因为它两次都是假的。

您的方法中有八个语句 - 三个条件语句、四个赋值语句和一个 return:

  1. if (x>=5)
  2. z=15
  3. if (x>=3)
  4. z=10
  5. z=0
  6. if (y>z)
  7. z=y
  8. return

第一个测试用例涵盖陈述1、2、6和8。第二个测试用例涵盖1、3、4、6和8。因此,陈述1、2、3、4、6和8 个被覆盖,8 个中有 6 个或 75% 的覆盖率。