黑盒测试用例设计技术--等价类划分法

本文通过案例的形式,详细讲解黑盒测试用例设计技术中的等价类划分法。

等价类划分是一种典型的黑盒测试方法,其原理是把程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。

通过等价类划分,可以在尽可能覆盖所有测试路径的前提下,大幅度减少测试用例的数目。

本文的主要内容有:

  • 等价类的概念介绍
  • 划分等价类的原则
  • 根据等价类设计测试用例的方法
  • 案例演示

划分等价类

等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理的假设,测试某等价类的代表值就等于对这一类其它值的测试。

等价类划分有两种不同的情况:

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

在设计测试用例时,要同时考虑有效等价类和无效等价类,以此验证软件在正常操作和异常操作时是否都能正常运行。

确定等价类的6条原则:

1、在输入条件规定了取值范围或取值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

  • 例1:输入值是学生成绩,输入形式为文本框,要求的输入范围是0~100

    • 有效等价类:0<=输入成绩<=100;
    • 无效等价类1:输入成绩<0;
    • 无效等价类2:输入成绩>100

2、在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。

  • 例2:输入值是人员性别,输入形式为文本框,要求输入的内容必须在集合{男,女}中

    • 有效等价类:性别=’男’ 或者 ‘女’
    • 无效等价类:性别=’人妖’

3、在输入条件是一个布尔量的情况下,可以确立一个有效等价类和一个无效等价类。

  • 例3:输入值是状态标识位“是否完成”,输入形式为单选下拉框,选择范围为{是,否}

    • 有效等价类:选项=’是’ 或者 ‘否’
    • 无效等价类:未进行选择操作

4、在规定了输入数据的一组值(假设N个),并且程序要对每一个输入值进行处理的情况下,可以确立N个有效等价类和一个无效等价类。

  • 例4:输入值是人员性别,输入形式为文本框,要求输入的内容必须在集合{男,女}中;不同的性别选择将跳转至不同的处理页面

    • 有效等价类1:性别=’男’
    • 有效等价类2:性别=’女’
    • 无效等价类:性别=’人妖’

5、在规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类(符合条件)和若干无效等价类(从各个角度违反规则)。

  • 例5:输入值是人员性别,输入形式为单选下拉框,要求输入的内容必须在集合{男,女}中;

    • 有效等价类:性别=’男’ 或者 ‘女’
    • 无效等价类1:未选择人员性别
    • 无效等价类2:在浏览器开发工具中将人员性别的属性值更改为’人妖’

6、在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类划分为更小的等价类。

  • 例6:在例2(输入值是人员性别,输入形式为文本框,要求输入的内容必须在集合{男,女}中)的基础上,不同的性别选择将跳转至不同的处理页面

    • 有效等价类:性别=’男’ 或者 ‘女’

      • 有效等价类细分1:性别=’男’
      • 有效等价类细分2:性别=’女’
    • 无效等价类:性别=’人妖’

列出等价类表

输入条件 有效等价类 无效等价类

确定测试用例

根据已列出的等价类表,按照如下步骤确定测试用例:
1)为每个等价类规定一个唯一的编号
2)设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。
3)设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖。

Example1

某程序具有如下功能:输入3个正数a、b、c,分别作为三边的边长构成三角形,输出这3个数所构成的三角形类型。
用等价类划分方法为该程序进行测试用例设计。

划分等价类

分析思路: 步骤一、要求输入3个数,且3个数都为正数;参照规则5,划分为一个有效等价类和三个无效等价类。

  • 有效等价类(1):a>0; b>0; c>0;
  • 无效等价类(2):a<=0
  • 无效等价类(3):b<=0
  • 无效等价类(4):c<=0

步骤二、在有效等价类(1)的基础上,参照规则6,对该等价类进行细分;考察3个数能否构成三角形,参照规则5,划分为一个有效等价类和三个无效等价类。

  • 有效等价类(5):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a
  • 无效等价类(6):a>0; b>0; c>0; a+b<=c
  • 无效等价类(7):a>0; b>0; c>0; b+c<=a
  • 无效等价类(8):a>0; b>0; c>0; a+c<=b

步骤三、在有效等价类(5)的基础上,参照规则6,对该等价类进行细分;考察3个数能否构成等边三角形,参照规则2,划分为一个有效等价类和一个无效等价类。

  • 有效等价类(9):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; a=b=c
  • 无效等价类(10):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; a!=b 或 b!=c 或 c!=a

步骤四、在无效等价类(10)的基础上,参照规则6,对该等价类进行细分;考察3个数能否构成等腰三角形,参照规则4,划分为三个有效等价类和一个无效等价类。

  • 有效等价类(11):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; a=b!=c
  • 有效等价类(12):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; b=c!=a
  • 有效等价类(13):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; c=a!=b
  • 无效等价类(14):a>0; b>0; c>0; a+b>c; a+c>b; b+c>a; a!=b; a!=c; b!=c

设计测试用例

序号 [a,b,c] 覆盖等价类 预期输出结果
覆盖有效等价类
1 [6,6,6] (1)(5)(9) 等边三角形
2 [3,3,5] (1)(5)(10)(11) 等腰三角形
3 [3,4,4] (1)(5)(10)(12) 等腰三角形
4 [4,5,4] (1)(5)(10)(13) 等腰三角形
覆盖无效等价类
5 [3,4,5] (1)(5)(14) 一般三角形
6 [-1,3,2] (2) 不能构成三角形
7 [3,-1,2] (3) 不能构成三角形
8 [3,2,-1] (4) 不能构成三角形
9 [1,2,3] (1)(6) 不能构成三角形
10 [3,1,2] (1)(7) 不能构成三角形
11 [1,3,2] (1)(8) 不能构成三角形

Example2


某程序具有如下功能:文本框要求输入日期信息,日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月;程序需对输入的日期有效性进行校验。
用等价类划分方法为该程序的“日期检查功能”设计测试用例。

划分等价类

步骤一、要求输入6个数字字符yyyynn;参照规则5,划分为一个有效等价类和三个无效等价类。

  • 有效等价类(1):输入6个数字字符
  • 无效等价类(2):输入6个字符,存在非数字的情况
  • 无效等价类(3):输入少于6个字符
  • 无效等价类(4):输入多于6个字符

步骤二、在有效等价类(1)的基础上,参照规则6,对该等价类进行细分;考察6个数是否满足日期格式要求,1990<=yyyy<=2049,01<=nn<=12,参照规则,划分为一个有效等价类和四个无效等价类。

  • 有效等价类(5):日期格式满足要求,1990<=yyyy<=2049,01<=nn<=12
  • 无效等价类(6):yyyy不满足要求,yyyy<1990
  • 无效等价类(7):yyyy不满足要求,yyyy>2049
  • 无效等价类(8):nn不满足要求,nn<01
  • 无效等价类(9):nn不满足要求,nn>12

设计测试用例

序号 yyyynn 覆盖等价类 预期输出结果
覆盖有效等价类
1 199307 (1)(5) 日期格式有效
覆盖无效等价类
2 19June (2) 日期格式无效
3 19Jun (3) 日期格式无效
4 19June2 (4) 日期格式无效
5 198805 (6) 日期格式无效
6 205005 (7) 日期格式无效
7 198800 (8) 日期格式无效
8 199513 (9) 日期格式无效
时间: 2024-10-13 05:08:13

黑盒测试用例设计技术--等价类划分法的相关文章

黑盒测试用例设计技术--边界值分析法

本文通过案例的形式,详细讲解黑盒测试用例设计技术中的边界值分析法. 无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部.因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果.边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法,通常作为对等价类划分法的补充,其测试用例来自等价类的边界.边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例. 如果你对等价类划分法还不

黑盒测试用例设计技术概述

1.等价类划分法 1.1 测试中的疑问 做加法器功能测试时,测试了1+1,1+2 , 1+3和1+4之后,还有必要测试I+ 5和1 +6吗,能否放心地认为它们是正确的? 1.2 等价类划分 1.把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例 2.每类的代表性 数据在测试中的作用等价于这一类中的其他值,如果某一 类中的一个例子发现了错误,这一 等价类中的其他例子也能发现同样的错误.反之,如果某-类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误 1.3 基

黑盒测试用例设计-功能图法和场景法(八)

7.功能图法 一个程序的功能包括静态和动态说明.动态说明描述输入数据的次序或转移的次序,和业务流程紧密对应.静态说明描述了输入输出条件之间的对应关系.对于面向市场的产品,其逻辑复杂.组合庞大,必须用动态说明来补充功能说明. 功能图设计方法:功能图方法使用功能图形象地表示程序的功能说明,并机械地生成功能图的测试用例.我们在不同文档中看到的"状态迁移图"."流程图"."菜单树",在一定程度上都是功能图的不同表现,不同测试人员可能对具体方法的使用稍有不

软件测试【1】——黑盒测试用例设计方法(1)等价类、边界值、判定表、因果图

黑盒测试用例设计方法 等价类 等价类概念:在所有测试的数据中,具有某种共同特征的数据子集. 分类:有效等价类,无效等价类 等价类划分的规则: 等价类测试的步骤: (1)分析需求,确定输入数据类型 (2)使用规则划分有效和无效等价类 (3)设计用例,覆盖有效等价类(注意:一条用例尽可能覆盖多的有效等价类) (4)设计用例,覆盖无效等价类(注意:一条用例只能覆盖一个无效等价类) 案例:固定电话号码的测试(3/4位地区码和7/8位电话号码) 边界值分析方法 大量的错误都是发生在输入或输出范围的边界上,

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

序内部结构,设计测试用例的唯一依据是软件需求规格说明书. 等价类 所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的错误是等价的.等价类又分为有效等价类和无效等价类.有效等价类代表对程序有效的输入,而无效等价类则是其他任何可能的输入(即不正确的输入值).有效等价类和无效等价类都是使用等价类划分法设计用例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输入,也能接受无效输入的考验. 划分等价类的标准: 1.完备测试.避免冗余; 2.划分等价类重要的是:集合的划分,划分为

转:黑盒测试用例设计方法

1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.              概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.              等价类划分法的应用 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理

黑盒测试用例设计方法

1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.              概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.              等价类划分法的应用 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理

详细的黑盒测试用例设计方法

黑盒测试用例设计方法 1. 概述 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法等. 2. 等价类划分法 2.1.  概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例.每一类的代表性数据在测试中的作用等价于这一类中的其他值. 2.2.   等价类划分法的应用 (1)  等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某

测试用例设计方法---边界值分析法

边界值分析法学习目标掌握边界值分析法设计测试用例掌握边界值分析法取值范围的确定掌握离点的划分方法 1.为什么要学习边界值分析法案例:两位数加法计算器要求:输入两个1-100之间整数的和请猜测程序为什么会出现上述问题?输入的参数值必须大于0同时小于100的整数,边界条件设置错误:把>写成了>=,把<写成了<=[注意]有效数据和无效数据的分界点,往往作为程序员编写程序的判断点,是程序员容易犯错误的地方, 也是测试人员重点测试的内容.2.什么是边界边界是指对于输入等价类和输出等价类而言,