求问一下,VCS做的覆盖率报告中,COND和BRANCH的区别是什么呢?
时间:10-02
整理:3721RD
点击:
COND是表示条件覆盖率,BRANCH表示分支覆盖率。看报告中,COND会在比如if(A==1)这样的条件下表明是否满足条件;而BRANCH会在assign A = (b==0)?1:0这句话的问号下表明是否覆盖。那么这样说的话实质上两个覆盖率检测的是同一个东西咯?那有什么区别呢?
如果含义一样,为什么出来的覆盖率结果不一样呢?》
类似下面的代码
int foo(int a, int b)
{
if (a < 10 || b < 10) // 判定
{
return 0; // 分支一
}
else
{
return 1; // 分支二
}
}
满足分支覆盖率
TestCaes1: a = 5, b = 任意数字覆盖了分支一
TestCaes2: a = 15, b = 15覆盖了分支二
满足条件覆盖率只要每个子表达式都满足过true和false即可
TestCase1: a = 5, b = 15true,false分支一
TestCase1: a = 15, b = 5false, true分支一
恩,很对,谢谢。