等价类划分(Equivalence Class Partitioning)

一、定义

  所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。

二、划分等价类

  (1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。

  (2)无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。

三、常用的等价类划分原则

  (1)按区间划分:可以确定一个有效等价类、两个无效等价类。

    例:学生允许选修4到7门课程.

    划分:

      有效:4到7;

      无效:不足4门;超过7门

  (2)按数值划分:如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。   

  (3)按数值集合划分:规格说明中规定了输入值的集合,则可以确定一个有效等价类,并划分一个无效等价类。

    例:程序要求输入为TOM,DICK,HARRY的名字之一。

    划分:

    有效:三个有效名字之一

    无效:有效名之外的名字,如:JOE

  (4)按限制条件或规则划分:规格说明中规定了输入数据必须遵守的规则和限制条件,则可以确立一个有效等价类(符合规则)和若干个(≥ 1)无效等价类(不同角度的     违反规则)。

    

  (5)细分等价类:如果我们确知,已划分的某等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。

四、等价类测试用例设计

  (1)在确立了等价类之后,可列出所有划分出的等价类表。

  (2)为每一个等价类规定一个唯一的编号。

  (3)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,直到测试用例覆盖了所有的有效等价类。

  (4)设计一个新的测试用例,使其覆盖且只覆盖一个尚未覆盖的无效等价类。重复这一步,直到测试用例覆盖了所有的无效等价类。

五、等价类划分方法的应用

  

测试用例

编号 有效等价类 编号 无效等价类
1 字符长度在1~6之间 3 字符长度小于1或大于6
2 字符为a~z,A~Z,0~9 4 字符为英文/数字以外字符,控制字符,标点符号

 

 

 

 

编号 输入 覆盖等价类 期望输出
1 123456 1 true
2 abcde 2 true
3 23DBc6 1,2 true
4 1234567 2,3 false
5 abc32efg 2,3 false
6   3 false
7 a;,.34 1,2,4 false
8 1dv? 1,2,4 false
9 234fgs;/ 2,3,4 false

 

 

原文地址:https://www.cnblogs.com/zf-1573/p/4357439.html