等价类划分法实例教学文案
实例分析等价类划分(一)

实例分析等价类划分(⼀)这周的《软件测试技术》,我们系统地学习到了等价类划分、边界值分析、因果图法和决策表法。
等价类划分法和边界值分析⽅法都是着重考虑输⼊条件,下⾯我先通过⼀个实际问题更为透彻地介绍下等价类划分,⾄于其定义和原理详见我的上⼀篇博客。
1.问题描述EditBox:允许1到6个英⽂字符或数字,按OK结束(通过输⼊字符串,返回信息)2.等价类划分有效等价类编号⽆效等价类编号长度1-610,6以上3字符a-z,A-Z,0-92英⽂/数字以外字符,控制字符,标点符号43.测试⽤例针对等价类的划分,我们可以选取以下作为测试⽤例:编号输⼊覆盖等价类预期输出Test11 1,2It's OK.Test2a 1,2It's OK.Test3Z 1,2It's OK.Test4123456 1,2It's OK.Test51a9T0z 1,2It's OK.Test6123 1,2It's OK.Test7 3Please input reasonable string.Test81234568 3Please input reasonable string.Test92; 4Please input reasonable string.Test10\n¥& 4Please input reasonable string.Test11;@keoffad 3,4Please input reasonable string.Test12^afafaf3v 3,4Please input reasonable string.4.代码实现及结果样例:我们都知道正则表达式是⼀种⽤来匹配字符串的强有⼒的武器。
它的设计思想是⽤⼀种描述性的语⾔来给字符串定义⼀个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。
所以我们判断⼀个字符串是否是合法的⽅法是:1. 创建⼀个匹配该字符串的正则表达式;2. ⽤该正则表达式去匹配⽤户的输⼊来判断是否合法。
等价类划分法举例

等价类划分法1. 引言在软件测试过程中,等价类划分法是一种常用的测试设计技术。
它将输入和输出的可能取值范围划分为若干个等价类,只需要选择一个代表性的值进行测试,从而减少测试用例的数量和测试工作的复杂性。
本文将通过举例详细介绍等价类划分法的原理、应用和实施步骤。
2. 原理等价类划分法基于以下原理:对于每个等价类中的测试用例,其执行结果应该具有相同的特性。
因此,从每个等价类中选择一个测试用例就可以代表该等价类的其他测试用例。
3. 应用场景等价类划分法适用于各种软件测试环境,特别适用于输入和输出具有较大取值范围的情况。
下面通过一个简单的示例来说明等价类划分法的应用。
4. 示例:登录系统假设要测试一个登录系统,用户名和密码是必须输入的字段,且用户名只能由字母和数字组成,密码由字母、数字和特殊字符组成。
根据等价类划分法,我们可以将用户名分为以下三个等价类:1)合法的用户名,2)用户名为空,3)用户名含有非法字符。
将密码分为以下三个等价类:1)合法的密码,2)密码为空,3)密码过于简单。
4.1 用户名的等价类划分1)合法的用户名:包含字母和数字的用户名,例如”john123”。
2)用户名为空:没有输入任何用户名。
3)用户名含有非法字符:包含除字母和数字外的其他字符的用户名,例如”john#123”。
4.2 密码的等价类划分1)合法的密码:包含字母、数字和特殊字符的密码,例如”Pass123!“。
2)密码为空:没有输入任何密码。
3)密码过于简单:只包含字母或数字的密码,例如”password”。
5. 划分测试用例根据等价类划分的结果,我们可以从每个等价类中选择一个测试用例进行测试。
下面列举了几个代表性的测试用例:1)合法的用户名和密码:使用合法的用户名和密码进行登录,测试是否成功。
2)用户名为空和合法密码:不输入用户名,只输入合法的密码进行登录,测试是否能够提示用户名不能为空。
3)用户名含有非法字符和密码为空:输入含有非法字符的用户名,不输入密码进行登录,测试是否能够提示用户名输入错误。
等价类划分法含例子

1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。
使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
2.划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。
(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。
例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。
等价类划分法举例

等价类划分法举例
等价类划分法是软件测试中常用的一种测试设计技术。
在进行测试之前,我们需要对被测系统进行分析和划分,将其按照不同的特性划分成若干个等价类,然后针对每个等价类设计测试用例,这样可以最大限度地提高测试效率和覆盖率,减少测试成本和人员投入。
下面,我们来举个例子,以便更好地理解等价类划分法。
假设我们要测试一个登录页面,该页面需要用户输入用户名和密码才能登录系统。
那么,我们该如何进行等价类划分呢?
首先,我们需要对用户名和密码两个输入框进行分析,分别确定特性和对应的范围。
比如,用户名可以由数字、字母、下划线组成,且长度应在6-12位之间。
而密码的长度应在8-16位之间,且必须包含数字、大小写字母和特殊字符。
根据以上规则,我们就可以将用户名和密码分别划分成若干个等价类,如下所示:
- 用户名:长度小于6位,长度等于6-12位,长度大于12位,包含非法字符
- 密码:长度小于8位,长度等于8-16位,长度大于16位,不包含数字或大小写字母或特殊字符
接下来,我们需要针对每个等价类设计测试用例。
比如,对于用户名长度小于6位的情况,我们可以输入长度为5的用户名,然后验
证是否能够正常登录。
同理,对于密码不包含数字、大小写字母或特殊字符的情况,我们可以输入不符合要求的密码,以验证系统是否能够正确处理这种情况。
通过使用等价类划分法,我们可以有效地对被测系统进行分析和测试,提高测试效率和准确性,减少测试成本和资源投入。
同时,也需要注意在设计测试用例时,要充分考虑完整性和覆盖率,以确保测试结果的可靠性和准确性。
等价类划分方法及其示例

等价类划分⽅法及其⽰例⼀、什么是等价类?为什么要划分等价类?所谓等价类是指输⼊域的某个互不相交的⼦集合,所有等价类的并集便是整个输⼊域。
⽬的在于测试⽤例的⽆冗余性。
等价类划分是⼀种典型的⿊盒测试⽅法,使⽤这⼀⽅法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试⽤例。
等价类划分⽅法把所有可能的输⼊数据,即程序的输⼊域划分成若⼲部分,然后从每⼀部分中选取少数有代表性的数据做为测试⽤例。
使⽤这⼀⽅法设计测试⽤例要经历划分等价类(列出等价类表)和选取测试⽤例两步。
划分等价类( valid / invalid )(1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。
(2)⽆效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地⽅。
⼆、等价类划分的规则 (1)按区间划分。
(2)按数值划分。
(3)按数值集合划分。
(4)按限制条件或规划划分。
(5)按处理⽅式划分。
在输⼊条件规定的取值范围或值的个数的情况下,可以确定⼀个有效等价类和两个⽆效等价类。
在规定了输⼊数据的⼀组值中(假定有n个值),并且程序要对每个输⼊值分别处理的情况下,可以确定n个有效等价类和⼀个⽆效等价类。
在规定输⼊数据必须遵守的规则的情况下,可以确定⼀个有效等价类和若⼲个⽆效等价类。
在输⼊条件规定了输⼊值的集合或规定了“必须如何”的条件下,可以确定⼀个有效等价类和⼀个⽆效等价类。
在确定已划分的等价类中各元素在程序处理中的⽅式不同的情况下,则应将该等价类进⼀步地划分为更⼩的等价类。
三、等价类划分的⽰例1)划分等价类并编号,下表等价类划分的结果2)设计测试⽤例,以便覆盖所有的有效等价类,为每⼀个⽆效等价类设计⼀个测试⽤例,设计结果如下。
软件测试培训之等价类划分法

软件测试培训之等价类划分法想学软件测试?千锋软件测试培训教研+讲师+项目实战+随堂笔记录制,全方位教学,权威资深师资阵容,业内最具责任心、最懂教学。
在软件测试学科中,黑盒测试是一大重要分支。
黑盒测试的方法众多,即使是老鸟也保不齐有所疏漏。
下面,千锋软件测试培训小编就为大家等价类划分法,希望能够对大家的学习和工作有所帮助。
等价类划分法是把程序的输入域划分成若干部分(子集),然后从每个部分中选取少数代表性数据作为测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值。
1.等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义恰巧相反。
设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性。
2.划分等价类的六大原则:在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.例:输入值是学生成绩,范围是0~100:在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.想学软件测试?千锋软件测试培训教研+讲师+项目实战+随堂笔记录制,全方位教学,权威资深师资阵容,业内最具责任心、最懂教学。
在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.布尔量是一个二值枚举类型,一个布尔量具有两种状态:true和false。
实验一黑盒测试法——等价类划分法

实验一黑盒测试法——等价类划分法实验一黑盒测试法——等价类划分法实验目的:1.掌握等价类划分的方法2.掌握按等价类方法设计测试用例实验内容:1、请用等价类划分法为三角形问题划分等价类,并设计相应的测试用例,测试下面三角形问题程序,找出缺陷并改正,给出缺陷报告。
#include "iostream.h"void main(){int a,b,c;cout<<"请输入三角形的三条边(界于1-100之间)"<<endl;< p="">cin>>a>>b>>c;if(a<=1||a>=100)cout<<"a的值超过允许的范围!";if(b<=1||b>=100)cout<<"b的值超过允许的范围!";if(c<=1||c>=100)cout<<"c的值超过允许的范围!";if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c的值不能构成三角形!";if(a==b&&b==c)cout<<"是等边三角形!";if(a==b||b==c||a==c)cout<<"是等边三角形!";if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!";三角形问题:划分等价类测试用例:1、覆盖有效等价类的测试用例2、覆盖无效等价类的测试用例缺陷报告:以下部分由BUG修改人填写输入数据如图所以:以下部分由BUG修改人填写以下部分由BUG修改人填写以下部分由BUG修改人填写2、某城市电话号码由三部分组成,分别是:1)地区码:以0开头的三位或者四位数字(包括0);2)电话号码:以非0、非1开头的七位或者八位数字。
等价类划分法经典案例

等价类划分法经典案例等价类划分法是一种常用的测试用例设计技术,它通过将可能的输入值划分为等价类来减少测试用例的数量,从而更有效地进行测试。
以下是一个经典案例,以帮助读者更好地理解等价类划分法的应用。
假设我们要测试一个用户注册系统,该系统要求用户输入用户名和密码进行注册。
根据等价类划分法,我们可以将输入值划分为以下几个等价类:1. 有效的用户名和密码:这个等价类包括符合规定格式的有效用户名和密码,比如包含字母和数字的组合。
这是正常情况下的输入值。
2. 无效的用户名:这个等价类包括不满足规定格式的用户名,比如只包含数字或只包含特殊字符。
这是一种错误的输入值。
3. 无效的密码:这个等价类包括不满足规定格式的密码,比如只包含数字或只包含特殊字符。
这也是一种错误的输入值。
4. 用户名为空:这个等价类指的是用户名为空的情况,即用户没有输入用户名。
这也是一种错误的输入值。
5. 密码为空:这个等价类指的是密码为空的情况,即用户没有输入密码。
这同样是一种错误的输入值。
根据以上等价类划分的结果,我们可以生成以下测试用例:1. 输入有效的用户名和密码,期望注册成功。
2. 输入无效的用户名和密码,期望注册失败并给出相应提示。
3. 输入无效的用户名,期望注册失败并给出相应提示。
4. 输入无效的密码,期望注册失败并给出相应提示。
5. 不输入用户名,只输入密码,期望注册失败并给出相应提示。
6. 不输入密码,只输入用户名,期望注册失败并给出相应提示。
通过以上测试用例,我们可以覆盖所有可能的等价类,从而验证用户注册系统的正确性和健壮性。
这样的测试用例设计能够有效地减少测试工作量,提高测试效率。
在实际测试过程中,我们还可以进一步细化等价类划分,比如针对无效的用户名,可以将其分为长度过短、长度过长、包含非法字符等子等价类,以更全面地覆盖各种错误情况,进一步提高测试覆盖率。
综上所述,等价类划分法是一种简洁实用的测试用例设计技术,通过将输入值划分为若干等价类,可以减少测试用例数量,同时确保对系统进行全面有效地测试。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
等价类划分法实例
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 无效输入⑩
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
根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。