前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >等价类划分法测试用例设计举例「建议收藏」

等价类划分法测试用例设计举例「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-02 09:19:13
发布于 2022-11-02 09:19:13
3.8K00
代码可运行
举报
运行总次数:0
代码可运行

一、基本概念 等价类是指程序输入域的子集。 等价类划分(Equivalance Partitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(Blackbox Testing)测试用例(Testcase)设计方法。 一)划分等价类 1.有效等价类与无效等价类 等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所构成的集合,它能检验程序在不符合规则的数据输入下,是否会有异常;无效等价类至少应有一个,也可能有多个,视具体情况而定。因此,设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验,这样的测试才能确保软件具有更高的可靠性。 2.划分等价类的标准 完备测试、避免冗余。这就要求:集合(程序输入域)应划分为互不相交的一组子集,而这些子集的并集是整个集合(整个程序输入域)。 3.等价类的划分原则 (1) 若输入条件规定了取值范围或值的个数的情况下,可划分为一个有效等价类和两个无效等价类; Eg.设置风控指标,其中权重设置范围在[-1000,1000]

(2) 若输入条件为布尔表达式,可划分为一真一假的有效等价类与无效等价类; Eg.设置产品信息,其中产品份额必填

(3) 若规定了输入数据必须要遵循的原则,可划分为一个有效等价类(符合规则)和若干个无效等价类; Eg.系统的初始资金只可输入数字

(4)若只要求输入数据符合某几个原则,这时可能存在多个有效类和若干个无效等价类; Eg. 交易用户登录密码只可输入数字、字母及部分特殊符号,不能输入单/双引号及汉字

注:每个有效等价类所对应的无效等价类的并集是不符合输入原则的数据集合。 (5)若规定了输入数据的一组值(假定n个),且程序对不同输入值做不同处理,则可划分为n个有效等价类(每个允许的输入值为一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。 Eg. 设置资金账户时,必须选择是否检查自成交

Eg.输入条件规定学历可为:专科、本科、硕士、博士四种之一

(6)在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。 二)测试用例设计步骤 (1) 划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号; (2) 设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止; (3)设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)

二、习题练习 一)三角形问题的等价测试用例 【问题描述】程序要求:输入三个整数 a 、 b 、 c 分别作为三角形的三边长度,通过程序判定所构成的三角形的类型;当三角形为一般三角形、等腰三角形或等边三角形时,分别作 …处理 。 <问题分析> (1) 输入值域的显/隐式要求:A 整数、B 三个、C 正数、D 两边之和大于第三边、E 三边均不相等、F 两边相等但不等于第三边、G 三边相等;(D~G由输出值域的等价类隐性确定) (2) 输出值域的等价类:R1={不构成三角形}、R2={一般三角形}、R3={等腰三角形}、R4={等边三角形}; <问题解答> (1) 列出等价类表并编号

(2) 设计覆盖有效等价类的测试用例

(3) 设计覆盖无效等价类的测试用例

二)NextDate函数的等价测试用例 【问题描述】NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。 例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日 。要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件: ①1≤month≤12 ②1≤day≤31 ③1912≤year≤2050 <问题分析>该函数的主要特点是输入变量之间的逻辑关系比较复杂,具体体现在:输入域的复杂性;闰年规则。如,变量year和变量mouth取不同值时,对应的变量day会有不同的取值范围,或1~30或1~31或1~28或1~29。 <问题解答> (1)划分法一 (1.1)划分等价类 A. 有效等价类 M1={mouth:1≤mouth≤12}; D1={day:1≤day≤31};Y1={year:1912≤year≤2050} B. 无效等价类 M2={mouth:mouth<1}、M2={mouth:mouth>12}; D2={day:day<1}、D3={day:day>31}; Y2={year:year<1912}、Y2={year:year>2050}; (1.2) 一般等价类测试 由于有效类的数量等于独立变量的个数,因此只有弱一般等价类测试用例出现,且与强一般等价类测试用例相同。

【注】“弱”是指含单缺陷假设(失效极少是由两个或两个以上的缺陷同时引起的),“强”是指含多缺陷假设(失效是由两个或两个以上的缺陷同时引起的);“一般”是指不考虑无效值。弱一般等价类测试用例通过使用一个测试用例中的每个有效等价类(区间)的代表值来实现(常以对称方式来标识这些测试用例,且注意单边假设作用);强一般等价类测试用例通过每个独立变量的有效等价类的笛卡尔积来实现。 (1.3) 健壮等价类测试 (1.3.1) 弱健壮等价类测试 弱健壮等价类测试中的无效测试用例只含一个无效值,其他都是有效值,即含有单缺陷假设。【注:“弱”是指含单缺陷假设,“强”是指含多缺陷假设;“健壮”是指考虑无效值】

(1.3.2) 强健壮等价类测试 强健壮等价类测试考虑了更多的无效值情况。强健壮等价类测试中的无效测试用例可以包含多个无效值,即含有多个缺陷假设。NextDate函数有三个变量,故相应地强健壮等价类测试用例可包含一个无效值、两个无效值或三个无效值。【注:“强”是指含多缺陷假设,“强”是指含多缺陷假设;“健壮”是指考虑无效值】

(2)划分法二 显然地,在用划分法一测试NextDate函数时,既没有考虑2月份的天数问题,又没有考虑闰年的问题。因此,应作进一步地改善。 (2.1)划分等价类 等价关系的要点是:等价类中的元素要被“同样处理”,即要么都在有效层次上进行,要么都在无效层次上进行。因此,更详细地有效等价类为: √变量mouth:M1={mouth: mouth有30天}、M2={mouth: mouth有31天,除去12月}、M3={mouth: mouth是2月}、M4={mouth: mouth是12月}; √变量day:D1={day: 1≤day≤28}、D2={day: day=29}、D3={day: day=30}、D4={day: day=31}; √变量day:Y1={year: year是闰年}、Y2={year: year是平年}; (2.2) 一般等价类测试 A. 弱一般等价类测试 考虑到单边假设,机械地以对称方式来选择对应类的有效输入:

B. 强一般等价类测试 从弱等价类测试到强等价类测试,不管是一般类还是健壮类,都做要独立性假设,都要以等价类的笛卡尔积表示。 在本问题中,变量mouth等价类数量为4、变量day等价类数量为4、变量year等价类数量为2,故强一般等价类测试用例数量为4*4*2=32。

(2.3) 健壮等价类测试 A. 弱健壮等价类测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
     B. 强健壮等价类测试

    **三)佣金问题的等价测试用例** 

待更新……

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180618.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
测试思想-测试设计 测试用例设计之等价类划分方法
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
授客
2019/09/11
1.4K0
测试思想-测试设计 测试用例设计之等价类划分方法
黑盒 测试用例设计方法「建议收藏」
黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法等。
全栈程序员站长
2022/07/01
1.5K0
黑盒 测试用例设计方法「建议收藏」
软件测试实战演习
1.某程序设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。 1)划分等价类并编号,下表等价类划分的结果 输入等价类 有效等价类 无效等价类 日期的类型及长度 ①6位数字字符 ②有非数字字符 ③少于6位数字字符 ④多于6位数字字符 年份范围 ⑤在1990~2049之间 ⑥小于1990 ⑦大于2049 月份范围 ⑧在01~12之间 ⑨等于00 ⑩大于12 2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、⑤、⑧,设计的测试用例如下: 测试数据 期望结果 覆盖的有效等价类 200211 输入有效 ①、⑤、⑧ 3)为每一个无效等价类设计一个测试用例,设计结果如下: 测试数据 期望结果 覆盖的无效等价类 95June 无效输入 ② 20036 无效输入 ③ 2001006 无效输入 ④ 198912 无效输入 ⑥ 200401 无效输入 ⑦ 200100 无效输入 ⑨ 200113 无效输入 ⑩
葆宁
2019/04/18
9950
软件测试实战演习
【测试】黑盒测试用例设计方法
等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。
全栈程序员站长
2022/08/10
2.2K0
【测试】黑盒测试用例设计方法
黑盒测试用例设计 一[通俗易懂]
把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例
全栈程序员站长
2022/07/01
7370
黑盒测试用例设计 一[通俗易懂]
黑盒测试之测试用例的设计方法(全)
之前分享过一篇《黑盒测试以及测试用例设计》,感觉比较粗略,所以今天又再一次分享一下。
软测小生
2019/07/05
4.8K0
黑盒测试之测试用例的设计方法(全)
自动化测试之-测试用例设计方法总结
黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。
顾翔
2019/12/12
3.2K0
自动化测试之-测试用例设计方法总结
黑盒测试用例设计方法一(等价类划分、边界值分析)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/136310.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/06
3.4K0
黑盒测试用例设计方法一(等价类划分、边界值分析)
软件测试等价类划分实例_软件测试原则
某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的边长构成三角形。通过程序判定所构成的三角形的类型,当此三角形为一般三角形、等腰三角形及等边三角形时,分别作计算 … “。用等价类划分方法为该程序进行测试用例设计。(三角形问题的复杂之处在于输入与输出之间的关系比较复杂。) 分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四种情况之一: 1)如果不满足条件(5),则程序输出为 ” 非三角形 ” 。 2)如果三条边相等即满足条件(7),则程序输出为 ” 等边三角形 ” 。 3)如果只有两条边相等、即满足条件(6),则程序输出为 ” 等腰三角形 ” 。 4)如果三条边都不相等,则程序输出为 ” 一般三角形 ” 。 列出等价类表并编号
全栈程序员站长
2022/09/27
3.3K0
用例设计方法及其覆盖率
  在表象中添加了不正确的信息,是过失故障。未输入正确信息,是遗漏故障。遗漏故障更难发现。
顾翔
2019/12/11
1K0
用例设计方法及其覆盖率
测试从零开始-No.6-测试用例设计方法(等价类+边界值)「建议收藏」
是把所有可能的输入数据,即程序的输入域划分成若干部分子集,然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。
全栈程序员站长
2022/09/27
1K0
软件测试用例的设计方法_设计测试用例的依据
把程序的输入域和输出域划分成若干部分,然后从各个部分中选取若干代表性数据作为测试用例。这些数据在测试中的作用等价于其所属部分的其他值。
全栈程序员站长
2022/11/07
1.1K0
软件测试用例的设计方法_设计测试用例的依据
黑盒(功能)测试基本方法
(1)黑盒测试又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。
wangmcn
2022/10/30
1.3K0
等价类划分法测试用例举例_使用等价类划分法设计测试用例
是在测试执行之前,由测试人员进行编写的指导测试过程的重要文档,主要包括:用例编号,测试目的,测试步骤(用例描述),预期结果(期待结果)等(不同公司模板不同,但是大同小异)
全栈程序员站长
2022/09/27
7680
黑盒测试用例测试方法
等价类划分法是一种典型的、重要的黑盒测试方法,是指某个输入域的子集合。在该子集合中,所有的输入数据对于揭露软件中的错误都是等效的。
全栈程序员站长
2022/07/01
1.4K0
黑盒测试用例测试方法
黑盒测试:等价类划分法(弱健壮)
问题 构造下述三角形问题的弱健壮的等价类测试用例。 三角形问题:输入三个不超过100的正整数作为三角形的三条边,判断三角形是等边三角形、等腰不等边三角形、完全不等边三角形还是不能构成三角形。 解答 有效等价类划分: R1 = {<a, b, c>: the triangle with sides a, b, and c is equilateral} R2 = {<a, b, c>: the triangle with sides a, b, and c is isosceles} R3 = {<a, b,
梦飞
2022/06/23
9240
等价类划分法三角形测试用例_三角形等价类划分
测试一个图形是不是三角形,需考虑到三角形的性质要求。除了满足A B C均是正数且大于0,还需满足
全栈程序员站长
2022/11/02
1.2K0
等价类划分法-案例剖析-设计测试用例「建议收藏」
等价类划分法是把所有可能的输入数据,即程序的输入数据集合划分成若干个子集即等价类,然后从每个等价类中选取少量具有代表性的数据作为测试用例。
全栈程序员站长
2022/11/07
3K0
等价类划分法-案例剖析-设计测试用例「建议收藏」
黑盒测试的测试方法有哪些_黑盒测试包含哪些测试内容
一般我们在做软件测试的时候,会遇到黑盒测试,白盒测试,我们今天主要说的是黑盒测试的 主要测试方法有那些。接下来就是干货了。
全栈程序员站长
2022/11/01
2.2K0
黑盒测试的测试方法有哪些_黑盒测试包含哪些测试内容
软件测试用例设计 (一)等价类划分法「建议收藏」
如果要从事软件测试,那么有些必备的技能还是要有的。比如,测试理论、测试工具、测试文档的编制。
全栈程序员站长
2022/11/02
5.2K0
推荐阅读
相关推荐
测试思想-测试设计 测试用例设计之等价类划分方法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验