等价类划分法是最常用的黑盒功能测试方法之一,根据程序对数据的要求,把程序的输入域划分成若干个部分,列出哪些数据是有效的,哪些数据是无效的,从每个部分中选取少数代表性数据作为测试用例的数据。
软件不能只接收合理有效的数据,也要具有处理异常数据的功能,这样测试才能确保软件具有更高的可靠性。因此,在等价类划分的过程中,不但要考虑有效等价类,也要考虑无效等价类。
有效等价类是指对软件规格说明来说,合理、有意义的输入数据等构成的集合,利用有效等价类可以检验程序是否满足需求规格说明书所规定的功能和性能。只考虑有效等价类的测试称为“标准等价类测试”。无效等价类是指不满足程序输入要求或者无效的输入数据所构成的集合,利用无效等价类可以检验程序异常情况的处理。不止考虑了“有效等价类”,还考虑了“无效等价类”的测试被称为“健壮性等价类测试”。
使用等价类划分法设计测试用例,首先必须分析需求规格说明书,然后列出有效等价类和无效等价类。以下是划分等价类的几个原则:
1.如果程序规定了输入域的取值范围,则可以确定一个有效等价类和 2 个无效等价类。
例如:程序要求输入的数值是 50 到 100,那么一个有效等价类就是 50~100,而 2 个无效等价类就是小于 50,大于 100 的区域数据。
2.如果程序规定了输入值的集合,不是一个范围,则可以确定一个有效等价类和一个无效等价类。
例如:程序要进行平方根函数的运算,那么大于等于 0 的数为有效等价类,而小于 0 的数为无效等价类。
3.如果程序规定了输入数据的一组值,并且程序要对每一个输入值分别进行处理,则可以每一个值确定一个有效等价类,然后再选择一个无效等价类。
例如:规定某个输入条件 x 的取值只能为{1、2、3、4、5}中的某一个,那么有效等价类就是 x 等于这几个数,而无效等价类则为 x 不等于这几个数。
4.如果程序规定了输入数据必须遵守的规则,则可以确定一个有效等价类和若干个无效等价类。
例如:程序中某个输入条件规定必须为 5 位数字,则可划分一个有效等价类为 5 位数字,3 个无效等价类为:位数少于 5、位数多于 5、5 位中含有非数字字符。
5.如果已知的等价类中各个元素在程序中的处理方式不同,则应将该等价类进一步划分成更小的等价类。使用等价类划分法设计测试用例的步骤如下:
(1)分析程序的规格说明,列出有效等价类和无效等价类;列出等价类表,并对每个等价类规定唯一的编号,如下表所示。当然也可以不是表格形式,采用文字描述的形式。
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
…… | …… | ① | …… | ③ |
…… | …… | ② | …… | ④ |
(2)一一列出输入条件中可能的组合输入情况。
(3)选取合适的数据,编写测试用例。