逻辑覆盖率到底怎么计算?

来源:互联网 发布:淘打软件下载 编辑:程序博客网 时间:2024/04/28 03:11

问题:

 

关于逻辑覆盖的知识有点迷惑,希望大家帮忙解答下!
1.语句覆盖
如:int example(int x,int y){
        int result=0;
        if(x>0&&y>0){
              result=x+y+5;
        }else{
              result=x+y-5;
        }
        if(result<0){
              result=0;
        }
        return result;
      }
如果画出程序流程图的话,求语句覆盖时语句总数是7条语句,还是其中的 int result=0;和 return result;不算,算5条?

2.条件组合覆盖
是只组合每个判定中的条件,还是判定与判定之间的条件也组合一下?

3.路径覆盖
如果某条路径是无法通过的,那算路径覆盖率是总路径数要把这条不可能的路径算在内吗?
回答:
1.如果画出程序流程图的话,求语句覆盖时语句总数是7条语句,还是其中的 int result=0;和 return result;不算,算5条?
算5条,不是int result=0;和 return result;不算,而是判定中的条件语句不算。条件语句另外算或者算语句都是可以的,不过,如是考虑了条件覆盖的话,条件另外算比较简单。
2.条件组合覆盖
是只组合每个判定中的条件,还是判定与判定之间的条件也组合一下?

只考虑判定内的条件组合,如果所有条件都算的话,太复杂了。
3.路径覆盖
如果某条路径是无法通过的,那算路径覆盖率是总路径数要把这条不可能的路径算在内吗?

无法通过的分支和路径应该排除,不过应该标出来或记录下来。
下面是Visual Unit的测试结果,可以参考一下。路径图中的当前路径是不可覆盖的,因为x>0&&y>0,result肯定>=5。图上已经删除了(入口处打了个X),路径只算3条。
原创粉丝点击