测试用例设计之等价类划分法

一、关于等价类划分法的解释

  1. 把程序的输入域划分成若干部分。
  2. 从每个部分选取少数代表性数据当作测试用例。
  3. 每一类代表性数据在测试中的作用等价于这一类中的其他数据。
  4. 若某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
  5. 反之,如果某一类中的一个例子没有发现错误,则该类其他例子也不会查出错误。

二、设计原则

  1. 如果输入条件规定了取值的范围或值的个数,则可以确定一个有效等价类和两个无效等价类
  2. 如果一个输入条件说明了一个“必须成立”的情况,则可以划分一个有效等价类和一个无效等价类
  3. 如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可以为每一种值划分一个有效等价类,并划分一个无效等价类
  4. 若确知已划分的某等价类中的各元素在程序中的处理方式是不同的,则应该据此将等价类进一步划分成更小的等价类
  5. 在确定了等价类后,建立等价类表,列出所有划分出的等价类

三、基于等价类划分的用例设计:

  • 明确测试对象,非测试对象保证正确
  • 为每个等价类规定一个唯一的编号
  • 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖
  • 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。

四、加法器的例子:功能为求出[-99,99]之间的任意两位数的和

1.根据需求划分为三个等价类

测试用例设计之等价类划分法

2.建立等价类表

测试用例设计之等价类划分法

3.确定测试用例

测试用例设计之等价类划分法

4.细化等价类划分(无效等价类还可以细分为字符、汉字等)

测试用例设计之等价类划分法

5.完善测试用例  

测试用例设计之等价类划分法

五、等价类划分法的特性

  1. 测试相同的内容
  2. 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
  3. 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷
  4. 正确划分等价类可以大大降低测试用例的数量
  5. 如果错误将两个不同的等价类当做一个等价类,那就回遗漏一种测试情况。

六、要注意的问题:

  • 要考虑有效等价类,还要考虑无效等价类
  • 仔细划分,审查划分

七、实际例子:

测试用例设计之等价类划分法

测试用例设计之等价类划分法

测试用例设计之等价类划分法