dannizixin 发表于 2009-11-6 09:59:53

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

关于逻辑覆盖的知识有点迷惑,希望大家帮忙解答下!
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.路径覆盖
如果某条路径是无法通过的,那算路径覆盖率是总路径数要把这条不可能的路径算在内吗?

VisualUnit 发表于 2009-11-6 12:09:01

如果画出程序流程图的话,求语句覆盖时语句总数是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条。
http://www.kailesoft.cn/opic/wb.jpg

[ 本帖最后由 VisualUnit 于 2009-11-6 12:11 编辑 ]

wmt1122 发表于 2009-11-6 21:26:21

大大大大大大大大大大大大的

wmt1122 发表于 2009-11-6 21:26:52

很好 学习了 学习 谢谢
页: [1]
查看完整版本: 逻辑覆盖率到底怎么计算?