【正确答案】语句覆盖是基本的覆盖,只要能让statement1和statement2都被执行一次就达到语句覆盖的标准。测试用例(a=0,b=0,c=0,d=0)和(a=3,b=1,c=5,d=0)即满足语句覆盖标准的要求。
判定覆盖就是让程序的判定分别为真和假一次,因此上面满足语句覆盖的测试用例(a=0,b=0,c=0,d=0)、(a=3,b=1,c=5,d=0)也满足判定覆盖标准的要求。
条件覆盖需要让判定中的所有条件取一次真和一次假,因此测试用例(a=5,b=0,c=5,d=0)和(a=0,b=5,c=0,d=5)让所有条件都取到了真和假,满足条件判定覆盖要求。
判定/条件覆盖要求判定覆盖和条件覆盖要被同时满足,而恰好测试用例(a=5,b=0,c=5,d=0)和(a=0,b=5,c=0,d=5)就满足判定/条件覆盖要求。
多条件覆盖要取条件真和假的组合,4个条件则有16种可能的组合,因此需要很多的测试用例才能满足。满足多条件覆盖的测试用例如附表所示。
满足多条件覆盖的测试用例
|
用例编号 | a | b | c | d | a>2 | b<3 | c>4 | d<5 |
1 | 0 | 5 | 0 | 5 | F | F | F | F |
2 | 0 | 5 | 0 | 0 | F | F | F | T |
3 | 0 | 5 | 5 | 5 | F | F | T | F |
4 | 0 | 5 | 5 | 0 | F | F | T | T |
5 | 0 | 0 | 0 | 5 | F | T | F | F |
6 | 0 | 0 | 0 | 0 | F | T | F | T |
7 | 0 | 0 | 5 | 5 | F | T | T | F |
8 | 0 | 0 | 5 | 0 | F | T | T | T |
9 | 5 | 5 | 0 | 5 | T | F | F | F |
10 | 5 | 5 | 0 | 0 | T | F | F | T |
11 | 5 | 5 | 5 | 5 | T | F | T | F |
12 | 5 | 5 | 5 | 0 | T | F | T | T |
13 | 5 | 0 | 0 | 5 | T | T | F | F |
14 | 5 | 0 | 0 | 0 | T | T | F | T |
15 | 5 | 0 | 5 | 5 | T | T | T | F |
16 | 5 | 0 | 5 | 0 | T | T | T | T |