概念理解:
等价类划分是一种最为常见的黑盒测试方法,故该方法只关注于对程序的要求与说明即需求规格说明书。实施该方法以前,我们须对需求规格说明书中的程序使用行为仔细分析与推敲,特别是功能需求,把其对输入的要求与输出的要求区分开来并加以分解。在这一前提下,等价类划分法就是把程序的输入域划分为若干部分,然后从每个部分中选取少数代表性的数据作为测试用例,使得每一类的代表性的数据在测试中的作用等价于这一类的其他值。
实践方法:
Step1:等价类的划分
方法如下:
输入条件 | 划分原则 |
规定了取值范围或值的个数 | 确立一个有效等价类和两个无效等价类 |
规定了输入值的集合或者规定了"必须如何" | 确立一个有效等价类和一个无效等价类 |
规定了一个布尔量 | 确立一个有效等价类和一个无效等价类 |
规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理 | 确立n个有效等价类和一个无效等价类 |
规定了输入数据必须遵守的规则 | 确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则) |
已划分的等价类中各元素在程序处理中的方式不同 | 将该等价类进一步的划分为更小的等价类 |
Step2:列出等价类表
对产品已划分的等价类,细化具体测试数据(或测试行为)或阈值范围
Step3:明确用例覆盖
设计测试用例对不同等价类表中的等价类进行覆盖:
1)分组原则:尽可能把程序相似的输入、输出、操作分组;
2)设计用例尽可能的覆盖多的有效等价类;
3)设计用例尽可能的覆盖多的非有效等价类;
实践心得:
1、等价类划分是理论层面的测试方法,测试用例组合缩减的同时,虽然满足了软件测试需求,但同时也带来了测试不完全;
2、针对测试不完全的风险,工作的重点集中体现在对需求、业务的理解,对产品功能的仔细推敲,只有这样,才能准确的划分等价类;
3、不同的测试人员存在业务理解与测试经验的差异,对等价区间的划分难免存在不同,实践认为只要是对测试对象做到足够覆盖就满足要求了,至于对于等价区间分类,取值、用例覆盖的流程性与科学性可逐步完善的过程;