等价类划分定义:
等价类划分法是一种典型的、重要的黑盒测试方法,它将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类。然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类,测试用例由有效等价类和无效等价类的代表组成,从而保证测试用例具有完整性和代表性。(摘自百度百科)
在第一节课中,讲到黑盒测试主要是以用户的角度,从输入数据与输出数据的对应关系出发进行测试。所以利用等价类划分的方法设计测试用例可以不考虑程序的内部结构,注意选择适当的等价类,认真分析和推敲说明书的各项需求,特别是功能需求,尽可能多地发现错误。
等价类划分分类:
主要分为有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。
无效等价类:与其上相反。
等价类划分方法:
1. 确定等价类 - 数据分类。 分出有效等价类和无效等价类。
2. 对有效等价类进一步进行分割,直到不能划分为止,形成等价类表。
3. 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖到的有效等价类, 重复这一步,直到所有的有效等价类都被覆盖为止。
4. 对无效等价类进一步进行分割,直到不能划分为止,形成无效等价类表。
5. 设计一个新的测试用例,使得只覆盖一个无效等价类表,重复着一部, 直到所有的无效等价类都被覆盖为止。
举个栗子
某公司招聘程序猿,要求年龄范围在20~30岁。
辣么20~30岁之间的程序猿即为有效等价类,小于20岁或者30岁以上的程序猿以及所有非程序猿都是无效等价类。可以看出其实这有两个条件,一个是年龄,一个是技术,两个同时满足才是有效等价类。
|
有效等价类 |
无效等价类 |
年龄 |
[20,30] |
<20 or >30 |
技术 |
程序猿 |
非程序猿 |
测试用例:
年龄 | 技术 | result | |
1 | 25 | 程序猿 | √ |
2 | 35 | 程序猿 | × |
3 | 15 | 程序猿 | × |
4 | 25 | 司机 | × |
5 | 35 | 司机 | × |
以上用例即可全部覆盖。
注:在确定分类是注意相互之间不能有重复或包含,选择用例时也要确保全面。