等价类划分法

黑盒测试|等价类划分法、边界值分析法等 黑盒测试又称功能测试、数据驱动测试、基于规格说明测试。 常用的有三种方法:等价类划分法、边界值分析法、决策表法。 阅读详情

等价类划分法概念

等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。

等价类划分法的应用

1.等价类是指某个输入域的子集合。

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

因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。

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

无效等价类:与有效等价类的定义恰巧相反。

设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。

文章转自微公众号 学习成长资源库 关注获取更多资料

2.划分等价类的六大原则:

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

例:输入值是学生成绩,范围是0~100:

在这里插入图片描述

在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类. 布尔量是一个二值枚举类型, 一个布尔量具有两种状态: true 和 false 。
在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
例:输入条件说明输入字符为:中文、英文、阿拉伯文三种之一,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为无效等价类。
在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)
在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类

3.将等价类转化成测试用例:

按照[输入条件][有效等价类][无效等价类] 建立等价类表,列出所有划分出的等价类
为每一个等价类规定一个唯一的编号.
设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.
设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.
等价类划分实例

1.某程序规定:"输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … "。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。)

分析题目中给出和隐含的对输入条件的要求:

(1)整数 (2)三个数 (3)非零数 (4)正数

(5)两边之和大于第三边 (6)等腰 (7)等边

如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一:

1)如果不满足条件(5),则程序输出为 " 非三角形 " 。

2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。

3)如果只有两条边相等、即满足条件(6),则程序输出为 " 等腰三角形 " 。

4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。

文章转自微公众号 学习成长资源库 关注获取更多资料

列出等价类表并编号
在这里插入图片描述

覆盖有效等价类的测试用例:

a b c 覆盖等价类号码

3 4 5 (1)–(7)

4 4 5 (1)–(7),(8)

4 5 5 (1)–(7),(9)

5 4 5 (1)–(7),(10)

4 4 4 (1)–(7),(11)

覆盖无效等价类的测试用例:

在这里插入图片描述

2.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。(不考虑2月的问题)

1)划分等价类并编号,下表等价类划分的结果

在这里插入图片描述

2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下:

测试数据 期望结果 覆盖的有效等价类

200211 输入有效 ①、⑤、⑧

3)为每一个无效等价类设计一个测试用例,设计结果如下:

测试数据 期望结果 覆盖的无效等价类

95June 无效输入 ②

20036 无效输入 ③

2001006 无效输入 ④

198912 无效输入 ⑥

200401 无效输入 ⑦

200100 无效输入 ⑨

200113 无效输入 ⑩

文章转自公众号 ziyuanku927 关注获取更多资料

3.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:

①1≤month≤12

②1≤day≤31

③1920≤year≤2050

1)有效等价类为:

M1={月份:1≤月份≤12}

D1={日期:1≤日期≤31}

Y1={年:1812≤年≤2012}

2)若条件 ① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中 " 。显然还存在着大量的 year 、 month 、 day 的无效组合, NextDate 函数将这些组合作统一的输出: " 无效输入日期 " 。

其无效等价类为:

M2={月份:月份<1}

M3={月份:月份>12}

D2={日期:日期<1}

D3={日期:日期>31}

Y2={年:年<1812}

Y3={年:年>2012}

弱一般等价类测试用例

月份 日期 年 预期输出

6 15 1912 1912年6月16日

强一般等价类测试用例同弱一般等价类测试用例

注:弱–有单缺陷假设;健壮–考虑了无效值

(一)弱健壮等价类测试

用例ID 月份 日期 年 预期输出

WR1 6 15 1912 1912年6月16日

WR2 -1 15 1912 月份不在1~12中

WR3 13 15 1912 月份不在1~12中

WR4 6 -1 1912 日期不在1~31中

WR5 6 32 1912 日期不在1~31中

WR6 6 15 1811 年份不在1812~2012中

WR7 6 15 2013 年份不在1812~2012中

(二)强健壮等价类测试

用例ID 月份 日期 年 预期输出

SR1 -1 15 1912 月份不在1~12中

SR2 6 -1 1912 日期不在1~31中

SR3 6 15 1811 年份不在1812~2012中

SR4 -1 -1 1912 两个无效一个有效

SR5 6 -1 1811 两个无效一个有效

SR6 -1 15 1811 两个无效一个有效

SR7 -1 -1 1811 三个无效

4.佣金问题等价类测试用例,它是根据佣金函数的输出值域定义等价类,来改进测试用例集合。

输出销售额≤1000元 佣金10%

1000<销售额≤1800 佣金=100+(销售额-1000)*15%

销售额>1800 佣金=220+(销售额-1800)*20%

测试用例 枪机(45) 枪托(30) 枪管(25) 销售额 佣金

1 5 5 5 500 50

2 15 15 15 1500 175

3 25 25 25 2500 360

根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。

05 测试用例设计方法(也叫黑盒测试的方法) 还需要针对单步的功能进行测试,只有单个功能点和流程测试,才算是充分的测试。业务流程图里面会有正常流程(从开始起点,通过各个路径,到最后的节点结束所对应的流程)和错误流程/异常流程(从开始起点,然后可能再某个节点结束或者返回上个节点)人们从长期的测试工作经验得知,大量的错误是发生在输入或者输出范围的边界上,而不是在输入范围的内部。基于场景法设计测试用例的依据,一般是由产品提供业务流程图(如果被测项目的流程图没有提供,只有对应的需求文档,该流程图就需要自己对应需求文档画出) 阅读详情

相关推荐

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

!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。

MXB1220的博客 1万+

黑盒测试用例设计方法&理论结合实际 -> 等价类划分

一. 概念 等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。 二. 等价类划分的应用 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情

Asaasa1的博客 1547

等价类划分法测试用例

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

qq_44090577的博客 3988

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

一、分析问题 如果我们需要对下面的这个两位数加法器设计测试用例,在测试了1+1,1+2,(-1)+1和(-1)+2之后,是否有必要测试1+3,1+4 ,1+(-3)和1+(-4)呢? 如果不对两位数加法器程序进行穷举测试,我们能否放心的认为其他所有的参数组合都是正确的呢? 可想而知,我们不可能输入这么多的组合进行测试。那么,如果不可...

david2000999的博客 2万+

【STMT】等价类划分法

文章目录等价类划分法题目解答 等价类划分法 等价类划分法是一种典型的黑盒测试方法,通过划分输入数据集来减少测试所需的用例,包括划分等价类和构造测试用例两个步骤: 划分等价类 划分等价类就是将输入数据集划分成若干个等价类子集,从每一个子集中选取少量代表性数据作为测试用例。在划分等价类时,必须保证同一个等价类中的所有输入数据对于揭示程序中的错误是等效的,使得测试代表值相当于测试其它所有值。输入等价类...

GoldenSpace 1821

等价类划分法测试网易邮箱注册功能

1.了解等价类的划分 弱一般等价类测试 使用最少测试用例覆盖每个有效等价类 强一般等价类测试 强一般等价类是基于多缺陷假设,强一般等价类的测试用例是要覆盖每个有效等价类取值的笛卡尔积。即在有效等价类取值的所有组合。 弱健壮等价类测试 在弱一般等价类的基础上,增加取值为无效值的情况。对于无效输入,测试用例将拥有一个无效值,并保持其余的值是有效的。 强健壮等价类测试 在强一般等价类的基础上,增加取值为无效值的情况。也是运用笛卡尔积思路得出测试用例。 2.测试用例示例 某城市电话号码由三部分组成。地区码:空白或三

是芜湖的,更是世界的! 2万+

【黑盒测试】等价类划分法及实例

本文介绍了什么是等价类划分法,以及如何划分,设计等价类表。以及关于三角形案例的等价类划分法

加油站发光博主 4690

关于等价类划分法的简介及示例

2.1等价类划分法 将一个程序的输入输出按照一定的需求进行分类,这些分类的子集就是等价类,在每个等价类中选择具有代表性的数据进行测试。 2.1.1等价类划分法 划分等价类 有效等价类:符合程序要求、合理且有意义的输入 无效等价类 根据等价类表设计测试用例 设计测试用例 基于等价类划分法的测试用例设计步骤 确定测试对象,保证非测试对象的正确性 为每个等价类规定一个唯一编号 设计有效等价类的测试用例,使其尽可能多的覆盖未被覆盖的有效等价类,直到测试用例覆盖了所有的等价类 设计无效等价类的测试用例,使其覆盖所

m0_56521586的博客 4130

(一)等价类划分法

1.定义:        等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。 · 有效等价类:

liangfengchang的专栏 3万+

等价类划分法用例设计

等价类划分法 等价类划分法是一种常用的、典型的黑盒测试方法。 由于做到穷举测试不可能,因此需要从大量的数据中选取一部分数据用于测试,这也是等价类划分法的意义所在。 用尽可能少的测试用例覆盖尽可能多的数据,以发现尽可能多的软件缺陷。 等价类划分法概述 (1)等价类概念 等价类指输入域的某个互不相交的子集,所有等价类的集便是整个输入域。 等价类中的元素有一些共同的特点,即在该子集合中,各个输入数据对于发现程序中的错误都是等效的,并合理地假定,测试某个等价类的代表值就等于对这一类其他值的测试。 也

悦分享 8550

相机通用类之海康相机,软触发硬触发(飞拍),并输出halcon格式对象

如何显示图像:可以访问我文章开头的博客,通过编写相机通用类即可,程序中是有继承通用类,通过访问相机通用的获取图像数据,从而传输图像数据。具体可以查看相机通用类。整体过程其实比较简单,由于海康相机没有像一些品牌相机一样可以直接使用序列号开启相机,所以我们需要通过对相机信息进行索引,根据索引到的相机序列号来开启相机。

m0_51559565的博客 7620

黑盒测试方法—等价类划分法

这样挑选出来的数据就可以代表这一类里面的全部数据。用户的软件不仅要能够接受合理的数据输入,对输入不合理的数据也需要做出正确的响应,因此在对系统设计用例时,两种等价类都需要考虑,这样的测试才能确保软件具有更高的可靠性。在涉及多个元素的情况下,要采用控制变量法,如果要覆盖无效等价类,设计测试用例的时候,当前元素覆盖无效等价类的同时测试用例中涉及的其他元素要保持有效,如表1-3所示。我们先编写一个很简单的测试用例,只包含最关键的一些信息,如测试用例编号、所属的等价类,两个输入框中的测试数据,还有预期结果。

慕漓的博客 5254

反激电源占空比为何必须小于0.5?次谐波振荡与斜坡补偿详解

在开关电源设计中,峰值电流模式控制因其优异的动态响应和逐周期限流保护而被广泛应用。其工作原理是通过采样电感电流的峰值,与误差电压比较来控制开关管的导通与关断。然而,这种控制方式在反激等隔离拓扑中,当占空比超过50%时,会面临一个固有的稳定性挑战——次谐波振荡。这是由于电流扰动会在相邻开关周期内被放大而非衰减,导致系统在开关频率一半处发生振荡,严重影响输出纹波和可靠性。为解决这一问题,工程上引入了斜坡补偿技术,通过向控制信号叠加一个固定斜率的斜坡,改变环路增益条件,从而在宽输入电压或高占空比需求下维持系统稳定

weixin_29631169的博客 625

【1+X】等价类划分法

在《软件测试的原则》小节中我们提到过一个案例,假设让你负责一个计算器小程序的测试工作,如何着手呢?假设先测试其加法运算功能,在字长为 32 位的计算机上运行,若随意取 2 个整数进行相加,那么测试数据的最大可能数目为 232x232=264。如果测试一组数据需要 1 毫秒,一天工作 24 小时,一年工作 365 天,那么完成所有测试大概需要 5 亿年。还有减法、乘法、除法、其他算法,简直可以无穷无尽,测试到天荒地老。所以我们得出了一个软件测试的原则----穷尽测试是不可能的。 为了解决这个难题,又保证我们

疯狂的格式化的博客 4389

MobaXterm详细使用教程

当然MobaXterm的功能远不止这些,但这些是最基本,最常用的,因此先拿出来讲。点击确定后,输入密码(输入密码时并不会显示,只管输入后按确定即可,第一次登陆成功后会提示保存密码,一般选择同意),就可以连接上虚拟机了。(2) 我们可以直接apt-get安装vim等常用功能(或者官网下载插件),实现在windows下模拟linux环境,这样就可以使用vi命令准备INCAR文件,也可以使用Gnuplot进行绘图。支持 Unix 命令(bash,ls,cat,sed,grep,awk,rsync,…

博客 4万+

loadStop的原因导致的SSUSP

Total内存值是可用来调度的可用内存,当前可用内存为 0M。 loadSched和loadStop的阈值是根据 Total 内存和节点内存来做限制的。 loadStop 50G,现在有大量作业SSUSP,说明之前某个时间点该节点内存可能有低于50G的时候,导致作业SSUSP,具体是否是这个原因引起的需要用 bjobs -l JobID 看下作业的详细信息。 如果是loadStop的原因导致的 SSUSP,根据loadStop设置的阈值,Total 值高于loadStop值后,将逐步恢复挂起的作业

Blueberry521的博客 666

等价类划分法实验

一、使用等价类划分法分析三角形问题 要求一:需包含有效等价类及无效等价类划分表格 以及 测试用例表格 要求二:代码实现 实现 方式一:设计 三个输入框 一个判断按钮 点击按钮后显示结果 实现方式二:Java控制台进行测试判断【本实验实现该种方式】 测试报告 Test Case: 三角形类型程序测试 Summary: 在页面输入三个值,程序运行结果是否能够正确输出结...

xinning的博客 4665

Jenkins部署前后端分离项目最全图文教程(手把手教学)

最近Jenkins部署的热度比较高,于是就想出一篇关于我是如何使用Jenkins部署前后端分离项目的,本篇记录了我是如何一步一步去配置、搭建和部署的完整流程,每一行代码都进行了实测和讲解,通过图文的教学写成博客分享给大家!

黄团团的个人博客 4779
上一篇: 白盒测试的方法笔记
下一篇: 等价类划分法的步骤和示例
Hell_potato777
博客等级 码龄6年 47粉丝 106原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值