等价类

【简介】

  • 概念

把程序的输入域划分为不同的等价类,每一个等价类中的任何值都能使组件或系统产生相同的响应结果。因此,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。

有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

无效等价类:与有效等价类的定义恰巧相反。无效等价类指对程序的规格说明是不合理的或无意义的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。

  • 识别等价类
  1. 如果输入的是连续的数值,通常有一个有效等价类和两个无效等价类。

    例如:学生成绩的范围是[0, 100],则有效等价类为[0, 100], 两个无效等价类为(-, 0), (100, +)

  2. 如果输入的是离散的数值,通常有一个有效等价类和两个无效等价类。

    例如:QQ群可加入用户1个~5个,则有效等价类为(1,2,3,4,5),两个无效等价类为(-∞, 0), (5, +∞)

3. 如果输入的是一组选项,并且测试对象对这组选项中的每个值执行相同的处理,那么可以输入一个有效等价类和一个无效等价类。

  例如:某软件用于为旅游者预订座位,旅游者可以是小孩、成人、退休人员和残疾人员。程序对不同旅游者进行相同处理,则有效等价类为“小孩”,无效等价类为“熊猫”

4. 如果输入的是一组选项,并且测试对象对这组选项中的每个值执行不同的处理,那么每个输入都是一个有效等价类和一个无效等价类。

例如:某软件用于计算旅游者的旅游费用,并且费用和不同旅游者相关。旅游者可以是小孩、成人、退休人员和残疾人员。,则有效等价类为“小孩”、“成人”、“退休人员”和“残疾人员”,无效等价类为“熊猫”

5. 如果规定输入数据必须遵守某些规则,可确立一个有效等价类和若干个无效等价类。

  例如: 变量必须以字母开头,并且长度为8位。而一个有效等价类:以字母开头,并且长度为8位,多个无效等价类:不以字母开头,或长度不是8位

6. 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。

  例如: 注册用户时,判断是否接受用户协议,则一个有效等价类:接受用户协议,一个无效等价类:不接受用户协议

7. 在已划分的等价类中各元素在程序中的处理方式不同的情况下,则应该将该等价类进一步的划分为更小的等价类。

  例如:ATM取款时,先判读卡是否为有效卡,后判断取款金额。

  • 设计测试用例

1. 为每一个等价类规定一个唯一的编号;

2. 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止;

3. 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。

【示例】

posted @ 2017-02-17 08:50  坏脾气  阅读(674)  评论(0编辑  收藏  举报