1. 概述

等价类划分是一种典型的黑盒测试方法,这一设计方法完全不用考虑程序的内部结构,也就是说其只根据需求规格说明书。

2. 定义

等价类划分的方法就是将程序的输入域划分为若干部分,也可以说是若干个等价类,然后从各个部分中选取少数代表性数据进行测试。每个类的代表性数据在测试中的作用等效于这一类中的其它值,也就是说,只要这个类中的某个值发现了缺陷,那么这个类中的其它任何一个值也都可以起到同样的效果,反之亦然,只要能够通过一个类中某个数据的验证,那么对于该类中其他任何一个数据,验证都是可以通过的
根据上面的描述,在等价类划分方法中,我们只需要在每个等价类集合中选取一个数据作为测试用例数据即可,因为每个数据和其集合内部的其它数据都是等价的,这样就可以用少量用例达到较好的测试效果,从而平衡测试效率和测试效果。
最后,要想使用等价类划分这种方法来设计测试用例,一定要先根据需求规格说明划分等价类,列出等价类表。

3. 等价类和等价类表

>等价类

等价类就是指某个输入域的子集合,并且在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并且合理的假定测试某等价类的代表值就等效于测试了这个等价类集合中的所有值。
根据软件的输入情况,可以将等价类划分为以下两大类型:

  1. 有效等价类:指对于程序的规格说明来说是合理的,有意义或者说正确的数据构成的输入集合。
  2. 无效等价类:与有效等价类相反,指对于程序的规格说明来说是无意义或者说错误的输入数据构成的集合。

以这两者的定义来说,利用有效等价类可以检验程序是否达到了规格说明书中所规定的功能和性能等,而无效等价类则可以检验软件对于异常情况或者说错误数据的处理能力。

>等价类表

在确定被测对象的输入域等价类后,就可以将有效等价类和无效等价类根据一定的格式形成等价类表,等价类表的绘制可以参考以下两个图:

4. 确定等价类的原则

在划分等价类时,我们遵循以下6个原则:

  1. 若输入条件规定了取值范围或值的个数时,可以确立一个有效等价类和两个无效等价类。 例如密码的长度必须超过6位小于18位,我们就可以划分为长度在6到18位为一个等价类,长度超过18和小于6的密码分别为两个无效等价类。
  2. 若输入条件规定了输入值的集合或者规定了必须遵从某个规则时,可以确定一个有效等价类和无效等价类。 例如规定姓名必须由汉字组成,则可以将纯汉字划分为有效等价类,而将非汉字划分为无效等价类。
  3. 若输入是一个布尔值,可确定一个有效等价类和一个无效等价类。 例如,如果登录账号是钻石会员,则在结算时自动享受8折优惠,否则不打折,则钻石会员账号为一个有效等价类,非钻石会员为一个无效等价类。
  4. 若规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理,则可以将其输入域划分为n个有效等价类和一个无效等价类。 例如电子商务系统中的会员管理,如京东商城,有普通会员、金牌会员、铜牌会员等,不同会员的积分规则和优惠政策不同,故设计测试用例时可划分为若干等价类分别考虑。
  5. 若需求规格说明书中规定了输入数据必须遵守的规则的情况下,可以确立一个有效等价类和若干个无效等价类(从不同角度违反规则)。
  6. 若确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则要再将该等价类进一步的划分为更小的等价类。

5. 根据等价类表确定测试用例

在编写好等价类表后,可以按照以下步骤来形成最终的测试用例:

  1. 为每个等价类规定一个唯一的编号。
  2. 设计一个新的测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类,不断重复这个过程,直到所有的有效等价类均被测试用例覆盖。
  3. 设计一个新的测试用例,使其只覆盖一个无效等价类,不断重复这个过程,直到所有的无效等价类均被测试用例所覆盖。

附: 在寻找等价区间时,想办法把软件的相似输入、输出、操作分成组,这些组就是等价区间。并且还需要注意,在设计用例时,还需要注意每个等价类之间的互斥性,不可在未充分理解需求时,将所有有效等价类抽取为一条用例,这样会导致测试覆盖率降低,甚至漏测。
用途: 等价类的设计方法,可以用于功能、性能、兼容性、安全性测试等方面,一般带有输入性需求的被测对象都可以采用等价类设计法。

7. 实例

以126邮箱注册功能页面为例,其中邮箱地址或者说用户名需要由为6~18个字符构成,包括字母、数字、下划线并且必须以字母开头和以字母或数字结尾。

以邮箱地址输入框的输入数据为例,按照等价类划分的方法设计其测试用例,按照上面所描述的需求或者说要求,可从邮箱地址的长度、组成、格式要求等几个因素来考虑有效等价类和无效等价类的划分,最终形成的等价类表如下:

按照上面得到的等价类表,再按照第5部分的步骤,可以抽取出以下的有效测试用例:

然后,再针对每个无效类,抽取一条测试用例进行测试,最终形成的无效测试用例如下(/表示不适用):

以上两个表的账号,就是根据等价类划分的方法最终得到的测试数据。

黑盒测试方法之等价类划分相关推荐

  1. 黑盒测试方法(等价类划分法、边界值法、决策表、判定表、正交表、场景法、错误推断法)

    1.黑盒测试方法 1.1.等价类划分法: 根据软件测试原则可以知道,要做到穷举是不可能的,事实上也是不必要的.为了减少工作量,需要对测试用例进行适当选取.等价类划分法便提供了一种选取测试用例的方法. ...

  2. 【软件测试】07 -- 黑盒测试方法(等价类划分法)

       等价类划分法    等价类划分法是一种常用的黑盒测试方法,它主张从大量的数据中选择一部分数据用于测试,即尽可能使用最少的测试用例覆盖最多的数据,以发现更多的软件缺陷.    一个程序可以有多个输 ...

  3. 黑盒测试方法之等价类划分法

    等价类划分法 概念 需求示例 测试用例分析设计 总结 概念 等价类是指某个输入域的子集,在该子集中每个输入数据的作用是等效的,也就是该子集中每个输入数据的揭错概率是一样的.等价类分为有效等价类和无效等 ...

  4. 软件测试方法_等价类划分法

    目录: ①等价类划分法的介绍和概念 ②等价类的类型划分 ③等价类测试用例的类别 ④等价类划分的原则 ⑤等价类划分法的测试用例应用 ⑥边界值分析法的实例分析 1.等价类划分法的介绍和概念 划分 指互不相 ...

  5. 软件测试方法划分等价类,软件测试基础-软件测试方法之等价类划分.ppt

    软件测试基础-软件测试方法之等价类划分 知识回顾 - 软件测试方法 从是否执行被测程序来划分? 从是否针对系统内部结构来划分? 知识回顾 - 黑盒测试设计用例的方法 集合 什么是集合? 如:一箱苹果 ...

  6. 黑盒测试用例设计-等价类划分法

    一 定义 等价类划分:指的是一种典型的.重要的黑盒测试方法.是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.测试某等价类的代表值就等价于对这一类其他值的测试. 二 分 ...

  7. 黑盒测试用例设计 - 等价类划分法

    目录 说明 使用步骤 等价类划分原理: 确定等价类的原则: 使用示例 说明 在所有测试数据中,具有某种共同特征的数据集合进行划分. 分类: 有效等价类:满足需求的数据集合 无效等价类:不满足需求的数据 ...

  8. 软件测试基础测试方法之等价类划分法

    目标: 1.  能对穷举场景设计测试点 2. 能对限定边界规则设计测试点 3. 能对多条件依赖关系进行设计测试点 4. 能对于项目业务进行设计测试点 01 等价类划分法 说明:在所有测试数据中,具有某 ...

  9. 软件测试常见概念(软件生命周期、软件开发模型、软件质量模型、软件缺陷管理、软件测试概述、软件测试分类、软件测试与软件开发、软件测试原则、黑盒测试方法、白盒测试方法、性能测试)

    文章目录 1. 软件概述 1.1 软件生命周期 1.2 软件开发模型 1.2.1 瀑布模型 1.2.2 快速原型模型 1.2.3 迭代模型(增量模型或演化模型) 1.2.4 螺旋模型 1.2.5 敏捷 ...

  10. 软件测试方法——等价类划分法详解

    目录 1.等价类划分法的介绍和概念 2.等价类的类型划分 3.等价类测试用例的类别 3.1弱一般等价类 3.2弱健壮等价类 3.3强一般等价类 3.4强健壮等价类 4.等价类划分的原则 4.1按照区间 ...

最新文章

  1. 一起学DNS系列(十)图、例详解DNS递归和迭代查询原理及过程 (1)
  2. 《jacascript高级程序设计》笔记:数组方法高级
  3. 遥感在计算机领域的应用,遥感技术在测绘工作中的应用分析
  4. Android 利用jsoup解析 html
  5. 课堂上传纸条如何防范中间人攻击?
  6. 几段表单处理的JQuery代码
  7. inline-block是html5,详解CSS display:inline-block的应用
  8. Android如何解析Intent
  9. VMware Workstation Pro 虚拟机做RAID
  10. 【Java程序设计】输入输出
  11. 【MATLAB教程案例22】基于MATLAB图像去噪算法仿真——中值滤波、高斯滤波以及频域滤波等
  12. C语言match函数的定义与用法,Match函数的基本用法
  13. MAC 如何连接惠普打印机
  14. 希尔顿康莱德酒店及度假村亮相中国科技与创新孵化中心
  15. 2022电工(初级)操作证考试题及模拟考试
  16. Android刷新UI导致崩溃的探究——Only the original thread
  17. 分子模拟的理论与实践_活动回顾 | 信息学院模拟党支部实践成果汇报会
  18. 【问题解决】安装Oracle数据库,中途提示未找不到文件的解决办法(附带图文)
  19. Cairngorm开发框架
  20. Android 如何让你的App分享给别人

热门文章

  1. java方面的文献综述怎么写_关于java的文献综述
  2. 【GAMES101】三维旋转矩阵中绕三个轴旋转的矩阵公式
  3. 玩转华为ENSP模拟器系列 | 合集
  4. Java编写简单的爱心
  5. 视频压缩神器--小丸工具箱--小丸工具箱入门操作教程
  6. matlab版VLFeat安装
  7. 【图解深度学习】【章节:1-1.2 | 神经网络输入输出】连小学生都能看懂的深度学习基础总结
  8. Retinex算法的C++/opencv实现
  9. 【雕刻机】使用雕刻机雕刻PCB
  10. 软件需求分析模板2020-11-04