一、概念
等价类划分法是将输入域分为几个集合,如数字集合,字符集合等【某个参数输入域的子集,且互不想干】,它把单个输入参数的输入域分为有效等价类和无效等价类。
有效等价类:合理的、有意义的数据构成的集合。
无效等价类:不合理的、无意义的数据构成的集合
二、设计测试用例原则
根据输入域的特点,划分等价类,如下:
1、在输入条件规定了取值范围或值的个数,分1个有效等价类,2个无效等价类;
2、在输入条件规则了输入值的集合,或规定必须如何时,有1个有效等价类和2个无效等价类;
3、输入条件是一个布尔类型时,有1个有效等价类,1个无效等价类;
4、输入条件有n个取值(一组值)时,有n个有效等价类,1个无效等价类;
5、输入条件必须遵守规则时,有1个有效等价类,若干个效等价类(从不同角度违反规则);
6、在已划分的等价类中,各元素在程序处理中的方式不同,则应将该等价类再进一步划分更小的等价类。
三、设计测试用例步骤
第1步,在程序规格说明书中找出各个输入条件
第2步,为每个输入条件划分等价类,形成若干个互不相交的子集
第3步,列出等价类表
输入条件 |
有效等价类 |
无效等价类 |
四、示例1
姓名: |
2-5个字符串,汉字或字母,1个有效,2个无效 |
|
年龄: |
3个字符口串,0-130,1个有效,1个无效 |
|
性别: |
1人字符串,即男,女;2个有效,1个无效 |
- 有效等价类数据:
姓名:小明,年龄:0,性别:男
姓名:小明发文,年龄:130,性别:女
- 无效等价类数据:
姓名:小,年龄:200,性别:男
姓名:克,年龄:13,性别:男
姓名:小明发文助手,年龄:13,性别:男
姓名:@@,年龄:135,性别:男
姓名:小明,年龄:134,性别:男
姓名:小明,年龄:13,性别:中
五、示例2
输入以年月日表示的日期,日期的输入范围限定在2000年1月至2100年12月之间,且日期由6位数字字符组成,前4位表示年,后2位表示月,那么对应的【日期输入格式检查】这一功能的等价类。
输入条件 |
有效等价类 |
无效等价类 |
日期范围的类型及长度 |
1、6位数字字符 |
4、6位非数字 |
5、小于6位数字字符 |
||
6、大于6位数字字符 |
||
年份范围 |
2、在2000至2100之间 |
7、小于2000 |
8、大于2100 |
||
月份范围 |
3、在01至12之间 |
9、等于00 |
10、大于12 |
测试数据 |
期望结果 |
覆盖有效等价类 |
200001 |
输入有效 |
1,2,3 |
205506 |
输入有效 |
1,2,3 |
210012 |
输入有效 |
1,2,3 |
测试数据 |
期望结果 |
覆盖有效等价类 |
20a734 |
输入无效 |
4 |
20207 |
输入无效 |
5 |
20200624 |
输入无效 |
6 |
199912 |
输入无效 |
7 |
210101 |
输入无效 |
8 |
202000 |
输入无效 |
9 |
202020 |
输入无效 |
19 |
注意:一条用例只能覆盖一个无效等价类