基本概念:
等价类:对应用程序的规格(接口)的输入数据构成的集合
有效等价类:对应用程序的规格说明来说是合理的有意义的输入数据;
无效等价类:
六条确定等价类的原则
1、在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类(在范围之内的等价类)和两个无效等价类(有效范围的两侧)。
2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,则可以确立一个有效等价类和一个无效等价类。 (集合中的有效等价类和集合外的无效等价类)
3、在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。
4、在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可以确立n个有效等价类和一个无效等价类(除了规定的这组值)。
5、在规定了输入数据必须遵守的规则(pattern)的情况下,可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。
6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类(考虑一下if嵌套)。
等价类划分法确定测试用例的步骤:
1、按照上面的原则确立等价类;
2、建立等价类表,列出所有划分出的等价类;
3、从划分出的等价类中按以下的3个原则设计测试用例;
为每一个等价类规定一个唯一的编号;
设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。
设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。
实例:
程序规定;输入三个整数作为三边的边长构成三角形。当此三角形为一般三角形、等腰三角形、等边三角形时,分别作计算。用等价类划分方法为该程序进行测试用例设计。
步骤1:确定等价类
根据给出的程序输入的规定,可以划分如下等价类:
a. 输入值的集合:整数
b. 输入值的个数:3个
c. 要构成三角形,默认的输入值的范围:正数
d. 构成三角形的要素,输入值必须遵守下面的规则:两边之和大于第三边;
e. 一般三角形等价类
f. 等腰三角形
g. 等边三角形
步骤2:建立等价类表,给每个等价类编号