一、定义
所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。
二、划分等价类
(1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。
(2)无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。
三、常用的等价类划分原则
(1)按区间划分:可以确定一个有效等价类、两个无效等价类。
例:学生允许选修4到7门课程.
划分:
有效:4到7;
无效:不足4门;超过7门
(2)按数值划分:如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。
(3)按数值集合划分:规格说明中规定了输入值的集合,则可以确定一个有效等价类,并划分一个无效等价类。
例:程序要求输入为TOM,DICK,HARRY的名字之一。
划分:
有效:三个有效名字之一
无效:有效名之外的名字,如:JOE
(4)按限制条件或规则划分:规格说明中规定了输入数据必须遵守的规则和限制条件,则可以确立一个有效等价类(符合规则)和若干个(≥ 1)无效等价类(不同角度的 违反规则)。
(5)细分等价类:如果我们确知,已划分的某等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。
四、等价类测试用例设计
(1)在确立了等价类之后,可列出所有划分出的等价类表。
(2)为每一个等价类规定一个唯一的编号。
(3)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到测试用例覆盖了所有的有效等价类。
(4)设计一个新的测试用例,使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类。
五、等价类划分方法的应用
测试用例
编号 | 有效等价类 | 编号 | 无效等价类 |
1 | 字符长度在1~6之间 | 3 | 字符长度小于1或大于6 |
2 | 字符为a~z,A~Z,0~9 | 4 | 字符为英文/数字以外字符,控制字符,标点符号 |
编号 | 输入 | 覆盖等价类 | 期望输出 |
1 | 123456 | 1 | true |
2 | abcde | 2 | true |
3 | 23DBc6 | 1,2 | true |
4 | 1234567 | 2,3 | false |
5 | abc32efg | 2,3 | false |
6 | 3 | false | |
7 | a;,.34 | 1,2,4 | false |
8 | 1dv? | 1,2,4 | false |
9 | 234fgs;/ | 2,3,4 | false |