请问“满足路径覆盖是否一定满足条件覆盖?”请说明理由。
“满足路径覆盖不一定满足条件组合覆盖。”请举例说明之。
“满足条件组合覆盖不一定满足路径覆盖。”请举例说明之。
(1)否。因为条件覆盖是取每个断定条件的真值或假值,而路径覆盖只是把每条路径都走一遍就可以,所以满足了路径覆盖不一定是包含了条件覆盖的所有情况,有时候并不一定把所有的条件的值都取到。
(2)if ((A > 1)&&( B == 0))
{
X = X / A;
}
if ((A == 2) || ( X > 1))
{
X = X + 1;
}
对于路径覆盖,测试用例可以为:
A=2,B=0,X=4
A=3,B=0,X=3
A=1,B=0,X=2
A=1,B=1,X=1
但是A>1,B≠0,A=2,X≤1条件下的情况没有,无法满足条件组合覆盖。
对于条件组合覆盖,需要两个if中的条件每种组合都出现的话,测试用例可以如下:
A=2,B=0,X=4
A=2, B=1,X=1
A=1,B=0,X=2
A=1,B=1,X=1
但是第一个if为真,第二个if为假的情况没有出现,无法满足路径覆盖。