说明:在所有测试数据中,具有某种共同特征的数据集合进行划分。
分类:
- 有效等价类:满足需求的数据集合
- 无效等价类:不满足需求的数据集合
步骤:
- 明确需求
- 设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖
- 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖
等价类划分原理:
- 把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例
- 每一类的代表性数据在测试中的作用等价于这一类的其他值,如果某一类中的一个例子发现了错误,这一等价类中的其他列子也能发现同样的错误
- 反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误
确定等价类的原则:
- 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类
- 例如:一个文本框规定,输入字符个数为 6 ~ 18 位
- 一个有效等价类:范围内个数
- 两个无效等价类:小于6、大于18位
- 在输入条件规定了输入值的集合或者规定了“必须如何”条件的情况下,可以确立一个有效等价类和一个无效等价类
- 例如:请输入 11 位的手机号
- 有效等价类:11位
- 无效等价类:非11位
- 在输入条件是一个布尔量的情况下可以确定一个有效等价类和一个无效等价类
- 例子: 布尔量:表示“真”或者“假”
- 有效等价类:真
- 无效等价类:假
- 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立一个有效等价类和n个无效等价类
- 例子:输入用户名和密码并且都正确后可以登录
- 一个有效等价类:账号和密码都对正常登录
- n个无效等价类:账号和密码不匹配
- 在规定了输入数据必须遵守的规则情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
- 例子:用户名要求 6 ~ 18 位、由字母、数字、下划线组成;字母区分大小写; 以大写字母开头
- 有效等价类:符合规则的用户名
- 若干个无效等价类:有多少个规则,就违反多少个规则
- 在已划分的等价类中,各元素再程序处理中的方式不同的情况下,则应将该等价类进一步的划分为更小的等价类,根据需求合理的再扩展一些等价类用例
以百度的注册页面为例:
用户名:设置后不可更改,中英文均可,最长14个英文或7个汉字;(用户名不可重复;不可为空;)
将等价类划分组成表格分析:
测试用例: