一、定义
某类事物(具有相同的属性或方法)的集合,这个集合中某个个体所表现的特征与其他个体完全一致。测试上:对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体所在集合中的任意个体都应该被接受或拒绝。
二、等价类划分
- 有效等价类:针对被测对象而言,合理的、有意义的、系统接受的输入。(如:用户名长度在6-18的)
- 无效等价类:针对被测对象而言,不合理的、无意义的、系统不能接受的输入。(如:用户名长度大于18位,或小于6位)
三、等价类划分规则
1、如果需求规定了输入域的取值个数或确定了某个范围时,则可确定一个有效等价类及两个无效等价类。如:
- 有效等价类 :用户名长度在6-18位之间。
- 无效等价类:①用户名长度大于18位;②用户名长度小于6位。
2、如果需求规定了某个输入域的集合,或者必须如何的情况下,可确定一个有效等价类及一个无效等价类。如:
- 有效等价类:以字母开头。
- 无效等价类:以非字母开头。
3、如果需求规定了某个输入域是真假值时,可确定一个有效等价类和一个无效等价类。
4、如果用户需求规定了输入域是一组值,则可确定若干个有效等价类及一个无效等价类。如:
京东商城:
- 钻石会员
- 金牌会员
- 铜牌会员
- 普通注册用户
5、用户需求规定必须遵守某种规则时,可确定一个有效等价类及若干个从不同角度违反规则的无效等价类。如,以字母开头:
- 有效等价类:以字母开头。测试
- 无效等价类:①以特殊字母开头;②以汉字开头。
四、用等价类进行测试用例设计步骤
- 根据需求,划分有效及无效等价类,有效等价类统一编号,无效等价类统一编号。
- 设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖有效等价类,直到所有有效等价类都覆盖。
- 设计一个新的测试用例,使其反覆盖一个无效等价类,直到所有无效等价类都被覆盖。
五、等价类四则运算法(加、减、乘、除)
- 加法:不考虑需求其他子项,细致分解当前测试点及详细需求,做累加。
- 减法:根据业务规则减少,排除相关不可能出现的规则,减少不可能出现的组合。
- 乘法:如果有效等价类中具有互斥条件的需求时,可进行相乘得到用例个数。
- 除法:排除所有具有重复性的等价类,尽可能做到有效等价类之间交集为空,无效等价类之间交集也为空,有效及无效等价类的并集为整个输入域。