题目
1. 一个程序片段如下,请设计符合条件组合覆盖的测试用例[1]。 if (a >= 4) && (b < 0) c = a + b; else c = a - b; if (c > 3) || (c < 1) printf("c不在计算区域n"); else printf("%dn", c); .....
1. 一个程序片段如下,请设计符合条件组合覆盖的测试用例[1]。
if (a >= 4) && (b < 0)
c = a + b;
else
c = a - b;
if (c > 3) || (c < 1)
printf("c不在计算区域\n");
else
printf("%d\n", c);
.....
题目解答
答案
根据题目要求,需覆盖以下条件组合:
1. `(a >= 4) && (b < 0)`:(T, T), (T, F), (F, T), (F, F)。
2. `(c > 3) || (c < 1)`:(T, T), (T, F), (F, T), (F, F)。
设计如下测试用例:
1. `a = 5, b = -2`:`(T, T)`,`c = 3` → `(F, F)`。
2. `a = 5, b = 2`:`(T, F)`,`c = 3` → `(F, F)`。
3. `a = 2, b = -2`:`(F, T)`,`c = 4` → `(T, F)`。
4. `a = 2, b = 2`:`(F, F)`,`c = 0` → `(F, T)`。
5. `a = 5, b = -5`:`(T, T)`,`c = 0` → `(F, T)`。
6. `a = 5, b = -6`:`(T, T)`,`c = -1` → `(F, T)`。
7. `a = 6, b = -2`:`(T, T)`,`c = 4` → `(T, F)`。
以上测试用例确保所有条件组合均被覆盖,满足条件组合覆盖要求。