等价类划分法是常用的黑盒测试用例设计方法,测试用例设计时的唯一依据是产品需求文档。
一、定义
所谓等价类,是把所有可能的输入数据,即程序的输入域划分为若干子集,然后从每一个子集中,选取少数具有代表性的数据作为测试用例。等价类分为有效等价类和无效等价类。有效等价类是对程序有效的输入,无效等价类是其他任何可能的输入。有效等价类和无效等价类是用等价类划分法设计测试用例时必须的,在测试程序时,程序既能接受正确的输入,对无效的输入应该做出相应判断。
二、划分等价类的标准
- 完备测试、避免冗余;
- 划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;
- 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。
三、设计测试用例
- 为每一个等价类规定唯一编号;
- 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;
- 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有无效等价类都被覆盖为止。
四、举例
注册邮箱时要求用6~18个字符,可使用字母、数字、下划线,需以字母开头。
1,等价类表
输入条件 | 有效等价类 | 无效等价类 |
---|---|---|
邮箱名 | 6~18个字符(1) | 少于6个字符(2) 多余18个字符(3) 空(4) |
包含字母、数字、下划线(5) | 除字母、数字、下划线的特殊字符(6) 非打印字符(7) 中文字符 (8) | |
以字母开头(9) | 以数字或下划线开头(10) |
2,测试用例
编号 | 输入数据 | 覆盖等价类 | 预期结果 |
---|---|---|---|
1 | test_111 | (1)、(5)、(9) | 合法输入 |
2 | t_11 | (2)、(5)、(9) | 非法输入 |
3 | testtesttest_12345678 | (3)、(5)、(9) | 非法输入 |
4 | NULL | (4) | 非法输入 |
5 | test!@1111 | (1)、(6)、(9) | 非法输入 |
6 | test 1111 | (1)、(7)、(9) | 非法输入 |
7 | test测试1111 | (1)、(8)、(9) | 非法输入 |
8 | _test111 | (1)、(5)、(10) | 非法输入 |