逻辑覆盖率到底怎么计算?
关于逻辑覆盖的知识有点迷惑,希望大家帮忙解答下!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.路径覆盖
如果某条路径是无法通过的,那算路径覆盖率是总路径数要把这条不可能的路径算在内吗? 如果画出程序流程图的话,求语句覆盖时语句总数是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 编辑 ] 大大大大大大大大大大大大的 很好 学习了 学习 谢谢
页:
[1]