往期关联文章回顾:
白盒测试 | 用例设计方法之条件覆盖
白盒测试 | 用例设计方法之判定覆盖
白盒测试 | 用例设计方法之语句覆盖
? ? ? 条件组合覆盖:列出所有判定条件中可能的取值组合,使得每个判定条件结果的所有可能组合至少出现一次
程序流程图:
源码:
#encoding:utf-8
A = int(input('请输入A的值'))
B = int(input('请输入B的值'))
X = int(input('请输入X的值'))
if A > 1 and B == 0:
X = X / A
if?A?==?2?or?X?>?1:
X = X + 1print('结束')
print('结束')
第一个判定A>1 and B==0,所有取值如下:
1、A>1 ,B=0
2、A>1,B!=0
3、?A<=1,B=0
4、A<=1,B!=0
第二个判定A=2 or x>1, 所有取值如下:
1、A=2,X>1?
2、A=2,X<=1
3、A!=2,X>1
4、A!=2,X<=1
生成的测试用例,以及它们遍历的路径和覆盖的组合如下:
用例编号 | 测试用例 | 覆盖条件 | 覆盖路径 | 预期结果 |
---|
1 | A=2,B=0,X=4 | A>1?and B=0, A=2?or X>1 | a-c-e | X = 3 |
2 | A=2,B=1,X=1 | A>1?and B!=0, A==2?or X<=1 | a-b-e | X = 2 |
3 | A=1,B=0,X=2 | A<=1?and B==0, A!=2?or X>1 | a-b-e | X = 3 |
4 | A=1,B=1,X=1 | A<=1?and B!=0, A!=2?or X<=1 | a-b-d | X = 1 |
条件组合覆盖满足判定覆盖、条件覆盖和判定/条件覆盖,不一定覆盖每条路径,从用例中可以看出a-c-d被遗漏了