由这个流程图可以看出,该程序模块有4条不同的路径:
P1:(a-c-e) P2:(a-c-d)
P3:(a-b-e) P4:(a-b-d)
将里面的判定条件和过程记录如下:
判定条件M={A>1 and B=0}
判定条件N={A=2 or X>1}
1、语句覆盖
| 测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T | T | P1(a-c-e) |
p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。
| 测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T | T | P1:(a-c-e) |
| A=1,B=1,X=1 | A=1,B=1,X=1 | F | F | P4:(a-b-d) |
| 测试用例输入 | 输出 | 判定M的取值 | 判定N的取值 | 覆盖路径 |
| A=2,B=1,X=1 | A=2,B=1,X=2 | F | T | P2:(a-c-d) |
| A=3,B=0,X=3 | A=3,B=1,X=1 | T | F | P3:(a-b-e) |
对于M:A>1取真时T1,取假时F1;
B=0取真时T2,取假时F2;
对于N:A=2取真时T3,取假时F3;
X>1取真时T4,取假时F4。
条件:A>1,A<=1,B=0,B!=0
条件:A=2,A!=2,X>1,X<=1
根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示:
| 测试用例输入 | 输出 | 取值条件 | 具体取值条件 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T1,T2, T3, T4 | A>1,B=0,A=2,X>1 | P1:(a-c-e) |
| A=1,B=1,X=1 | A=1,B=1,X=1 | F1, F2, F3,F4 | A<=1,B!=0,A!=2,X<=1 | P4:(a-b-d) |
| 测试用例输入 | 输出 | 取值条件 | 具体取值条件 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T1,T2, T3, T4 | A>1,B=0,A=2,X>1 | P1:(a-c-e) |
| A=1,B=1,X=1 | A=1,B=1,X=1 | F1, F2, F3,F4 | A<=1,B!=0,A!=2,X<=1 | P4:(a-b-d) |
条件组合
1)A>1, B =0 2) A>1, B≠0
2) A≤1, B =0 4) A≤1, B≠0
5) A=2, X>1 6) A=2, X≤1
7) A≠2, X>1 8)A≠2, X≤1
| 测试用例输入 | 输出 | 覆盖条件取值 | 覆盖条件组合 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T1,T2,T3,T4 | 1,5 | P1:(a-c-e) |
| A=2,B=1,X=1 | A=2,B=1,X=2 | T1, F1,T2,F1 | 2,6 | P3:(a-b-e) |
| A=1,B=0,X=3 | A=1,B=0,X=4 | F1,T2,F3,T4 | 3,7 | P3:(a-b-e) |
| A=1,B=1,X=1 | A=1,B=1,X=1 | F1,F2,F3,F4 | 4,8 | P4:(a-b-d) |
| 测试用例输入 | 输出 | 覆盖条件取值 | 覆盖条件组合 | 覆盖路径 |
| A=2,B=0,X=4 | A=2,B=0,X=3 | T1,T2,T3,T4 | 1,5 | P1:(a-c-e) |
| A=1,B=0,X=1 | A=1,B=0,X=1 | T1, F1,T2,F1 | 2,6 | P4:(a-b-d) |
| A=2,B=1,X=1 | A=2,B=1,X=2 | F1,T2,F3,T4 | 3,7 | P3:(a-b-e) |
| A=3,B=0,X=1 | A=3,B=0,X=2 | F1,F2,F3,F4 | 4,8 | P2:(a-c-d) |