-
1 电子教材
-
2 PPT
通过上面的例子可以看出称为等价类数据的共同特点有以下几点:
Ø 测试的内容相同。
Ø 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷。
Ø 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷。
正确地划分等价类,可以大大减少测试用例的数量,测试会准确有效。如果错误地将两个不同的等价类当作一个等价类,就会遗漏一种测试情况。相反,如果把同一个等价类看作了两个不同的等价类,那么测试就会是冗余的。
为了避免测试用例的冗余或遗漏,如何确定等价类是使用等价类划分方法中的一个重要问题。我们必须在分析需求规格说明书的基础上划分等价类,列出等价类表,从而确定测试用例。下面给出进行等价类划分的几个参考依据:
Ø 若某个输入条件说明了一个必须成立的情况,则可划分一个有效等价类和一个无效等价类。例如在上面的例子中,输入数据除了在-99和99之间,还隐含了输入数据必须是数字的条件,这样还可以设置无效等价类为输入字母(或数据中包含字母),有效等价类为输入数字数据。
Ø 若某个输入条件对取值范围或值的个数进行了规定,则可确定一个有效等价类和两个无效等价类。例如,每个输入数据值是从100到200,则可划分一个有效等价类,大于等于100且小于等于200;两个无效等价类,小于100的数值和大于200的数值。
Ø 如果输入条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类。
Ø 若在某个输入条件中对输入数据的一组可能值进行了规定,并且程序是用不同的方式处理每一种值的,则可为每一种值划分一个有效等价类,并针对这组值确立一个无效等价类,它是所有不允许的输入值的集合。例如,在彩票兑奖方案中规定对显示图案为梅花、黑桃、方块和红桃的彩票分别计算中奖金额。因此可以确定4个有效等价类梅花、黑桃、方块和红桃,以及一个无效等价类,它是所有不符合以上花色的彩票的集合。
Ø 如果规定了输入数据必须遵守的规则,则可以确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,C语言规定语句必须以“;”结束,这时就可以确定一个有效等价类以“;”结束,若干个无效等价类以“:”或“,”结束等。
Ø 若已划分的某等价类中的各元素在程序中的处理方式不同,则应当将此等价类进一步划分成更小的等价类。例如把两位数加法的输入划分为输入数字为有效,输入字母为无效,因为当数值大于99和小于-99的时候的处理方式又是不同的,所以要继续把它划分成更小的等价类。
(1)一对多原则
对于有效等价类,测试用例的设计原则是越多越好,即每设计一个新的测试用例,该测试用例应尽可能多地覆盖到尚未覆盖到的那些有效等价类。换句话说,在所有输入条件中,每次应选择必须满足的最小输入集,该集合中每个输入条件覆盖一个关于该条件的有效等价类。
(2)一一对应原则
对于无效等价类,每设计一个新的测试用例,该测试用例应仅覆盖一个无效等价类。
一般来说,对于每个等价类,测试数据的选择是从该等价类所包含的所有数据中抽取一个正常值,即该取值范围内的一个较接近中值的数据即可。若输入条件是布尔型条件或逻辑型条件,则不存在典型数据的抽取问题。

