等价类划分法实例教学文案
实例分析等价类划分(一)
实例分析等价类划分(⼀)这周的《软件测试技术》,我们系统地学习到了等价类划分、边界值分析、因果图法和决策表法。
等价类划分法和边界值分析⽅法都是着重考虑输⼊条件,下⾯我先通过⼀个实际问题更为透彻地介绍下等价类划分,⾄于其定义和原理详见我的上⼀篇博客。
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. 确定有效和⽆效等价类
有效等价类就是题⽬条件(两端的极值(边界值)要判断、中间随意⼀个值也要判断)
⽆效等价类先划分与条件相反的情况,再找到特殊情况(中⽂、英⽂、符号、空格、空)
编写测试⽤例:对于所有的⽆效等价类,测试⽤例要尽量全覆盖,⼀条测试⽤例尽可能的覆盖所有有效等价类
等价类划分法案例1
QQ账号: 6---10位⾃然数
等价类划分法案例2
某城市电话号码由三部分组成,分别是
地区码:空⽩或是3位数字
前缀:⾮‘0’且⾮‘1’开头的三位数字
后缀:4位数字
例⼦:1232341234
等价类划分法案例3 -⽤户名(昵称)长度为 3-19:以字母开头-登录名称:⾮空
-密码:⾮空
-确认密码:值和密码相同
适⽤范围
适⽤范围:只要存在输⼊的功能。
等价类划分 案例
等价类划分案例想象一下,你正在开发一个超酷的社交APP,这个APP有个注册用户名的功能。
一、有效等价类。
1. 正常长度和字符组合。
比如说“小明123”,这种用户名就是比较常见的有效类型。
它包含了汉字和数字,长度也适中,大概在3 20个字符之间(假设我们设定的这个长度范围)。
这就像是在一群规规矩矩的学生里,穿着校服,符合学校所有规定的那种好学生。
对于这种用户名,系统应该顺利接受并且说:“欢迎你,小明123,你可以开始愉快地使用我们的APP啦!”2. 纯英文加数字组合。
像“Tom1985”这样的用户名也很合理。
就像是一个外国友人来注册你的APP,它全是英文加上数字,既好记又符合国际范。
对于这种用户名,系统也得热情欢迎:“嗨,Tom1985,希望你在我们的APP里玩得开心哦!”3. 带有下划线的组合。
“lily_2023”这种带个下划线的用户名也很酷炫啊。
下划线就像是给这个名字加了一点小装饰,既不影响整体的美观,还能让名字看起来更有特色。
系统看到这种用户名,就应该像看到一个打扮时尚但又不失端庄的人一样,高兴地说:“欢迎,lily_2023,快来探索我们的APP世界吧!”二、无效等价类。
1. 超长用户名。
如果有人输入了一个超级长的用户名,比如说“这是一个超级超级超级超级超级超级超级长的用户名,长到你都不想看下去”,这个名字就像一个巨大的怪兽,超出了我们设定的20个字符的范围。
系统就应该像一个严厉的保安一样,把它拒之门外,然后说:“对不起,你的用户名太长啦,请缩短到20个字符以内哦。
”2. 全是特殊字符的用户名。
像“@#$%^&”这样全是特殊字符的用户名,看起来就像一串乱码。
这就好比一个人穿着奇装异服,上面全是看不懂的符号,让人眼花缭乱。
系统肯定不能接受这种用户名,得说:“这个用户名不行哦,不能全是特殊字符呢。
”3. 空用户名。
如果有人什么都不输入就想注册,这就像一个人去参加派对但是不穿衣服一样奇怪。
等价划分的例子
等价划分的例子例1:某城市的电话号码由三部分组成。
这三部分的名称和内容分别是地区码:空白或三位数字;前缀:非’0’或’1’开头的三位数;后缀:四位数字。
假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的调试用例。
解:第一步:划分等价类,包括4个有效等价类,11个无效等价类。
表7-2-1列出了划分的结果。
在每一等价类之后加有编号,以便识别。
表7-2-1 电话号码程序的等价划分第二步:确定调试用例。
表7-2-1中有4个有效等价类,可以公用以下两个次数用例:(1)、(2)中各取一个对应合法的(3)、(4)即可。
对11个无效等价类,要选择11个调试用例,如下所示:调试数据范围期望结果(20A) 123-4567 无效等价类(5)无效(33 ) 234-5678 无效等价类(6)无效(7777) 345-6789 无效等价类(7) 无效(777) 34A-6789无效等价类(8) 无效(234) 045-6789无效等价类(9)无效(777) 145-6789无效等价类(10)无效(777) 34-6789 无效等价类(11)无效(777) 2345-6789 无效等价类(12)无效(777) 345-678A 无效等价类(13)无效(777) 345-678 无效等价类(14)无效(777) 345-56789 无效等价类(15)无效选取的调试数据可以不同,关键是与调试内容相符。
例2.NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。
例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。
要求输入变量 month 、 day 和 year 均为整数值,并且满足下列条件:①1≤month≤12②1≤day≤31③1920≤year≤20501)有效等价类为:M1={月份:1≤月份≤12}D1={日期:1≤日期≤31}Y1={年:1812≤年≤2012}2)若条件① ~ ③中任何一个条件失效,则 NextDate 函数都会产生一个输出,指明相应的变量超出取值范围,比如 "month 的值不在 1-12 范围当中" 。
实例介绍等价类划分法
实例介绍等价类划分法在软件测试的活动中,穷尽法无疑是最安全最保险的一种方法,但也是成本代价高到不可能实现的一种方法,或许一个软件的所有输入和操作还没有穷尽完,这个软件都没有存在的必要了,甚至测试人员都要老死了。
所以,前辈们为我们准备了等价类划分法,该方法是指将输入划分为若干集合,每个集合表示效果相同的一类,在测试时只需从每个集合中抽取一个即可测试出被测软件对于该集合所有输入的表现,以便于我们能够以最小的代价完成最有效的测试。
何谓等价类?某些数据的集合,该集合内的每个数据都是等效的,那么可以将该集合视为等价的一类。
何谓等效?对于计算机软件而言,即对于数据的处理过程以及处理结果都完全一致。
处理结果完全一致很容易理解,处理过程还要完全一致吗?我们举个例子来说吧,比如判断某年是否是闰年,闰年的计算方法是公元纪年的年数可以被四整除,即为闰年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。
那么虽然1900和1991年都是平年,但却不能将其简单视为等价类,因为1991不可被4整除、不可被100整除、不可被400整除,而1900,可被4整除、可被100整除、不可被400整除,无论程序如何编写,他们都会经过不同的判断逻辑,只测其中一个时,就无法覆盖到其他的判断语句,所以,划分等价类时,应掌握必须使同类数据的处理过程及处理结果完全一致的大原则。
等价类分为有效等价类和无效等价类,有效等价类就是由那些对程序的规格说明有意义的、合理的输入数据所构成的集合;无效等价类就是那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。
划分等价类时,除了应掌握必须使同类数据的处理过程及处理结果完全一致的大原则外,针对于以下场景相应的划分原则可供参考:1、当输入条件规定了取值范围时,则可以确立取值范围内为有效等价类,范围外为无效等价类。
(如成年人每分钟心跳60-100之间为正常)2、当输入条件规定了个数(或次数)范围时,则可以确立取值范围内为有效等价类,范围外为无效等价类。
等价类划分方法与实例
7
第一步:等价类划分
“报表日期”输入条件的等价类表 输入条件 报表日期的 类型及长度 有效等价类 无效等价类 有非数字字符 (4) 少于6个数字字符 (5) 多于6个数字字符 (6)
6位数字字符(1)
年份范围
在2003~2008之间 (2)
小于2003 (7) 大于2008 (8)
月份范围
在1~12之间(3)
5
组合条件
1 条件 2 (原因) 3 4 5 A 动作 B (结果) C D
测试用例
1 1 0 1
1 0 0 0
2 3 4 1 0 0 0 1 1 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0
6
5 6 0 0 1 1
1 1 0 0 1 0 0 1 0 0 0 1
练习1
某报表处理系统要求用户输入处理报表的日 期,日期限制在2003年1月至2008年12月,即系 统只能对该段期间内的报表进行处理,如日期 不在此范围内,则显示输入错误信息。系统日 期规定由年、月的6位数字字符组成,前四位代 表年,后两位代表月。 如何用等价类划分法设计测试用例, 来测试程序的日期检查功能?
8
小于1 (9) 大于12 (10)
第二步:为有效等价类设计测试用例 对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖: 测试数据 期望结果 输入有效 覆盖范围 等价类(1)(2)(3)
200306
(1)6位数字字符 (2)年在2003~2008之间 (3)月在1~12之间
9
(1) 分析这一段说明,列出原因和结果 原因: 1. 售货机有零钱找 2. 投入1元硬币 5. 投入5角硬币 4. 押下橙汁按钮 5. 押下啤酒按钮 建立中间结点,表示处理中间状态 11. 投入1元硬币且押下饮料按钮 12. 押下〖橙汁〗或〖啤酒〗的按钮 15. 应当找5角零钱并且售货机有零钱找 14. 钱已付清
等价类划分(三角形问题)
等价类划分(三角形问题)等价类划分(三角形问题)三角形是我们学习数学时经常接触到的一个基本概念,而等价类划分是解决三角形问题时常常使用的一种方法。
本文将介绍等价类划分在解决三角形问题中的应用,并讨论几个具体的例子。
一、等价类划分的基本原理等价类划分是一种将对象分成若干个等价的子集的方法。
在三角形问题中,我们可以通过等价类划分来将所有可能的三角形划分为若干个等价类,每个等价类中的三角形拥有相同的性质,从而能够更加方便地进行推理和分析。
具体而言,我们可以将所有可能的三角形划分为以下几个等价类:1. 等腰三角形:具有两条边长度相等的三角形,可以进一步划分为等边三角形和非等边三角形两个子类。
2. 直角三角形:拥有一个内角为直角的三角形。
3. 钝角三角形:拥有一个内角大于90度的三角形。
4. 锐角三角形:拥有三个内角均小于90度的三角形。
通过将三角形划分为不同的等价类,我们可以更加清晰地理解三角形的性质,并且能够更好地解决与三角形相关的问题。
二、等价类划分的应用举例下面我们将通过几个具体的例子来说明等价类划分在解决三角形问题时的应用。
例一:在一个三角形中,若有两边长度相等,则该三角形一定是等腰三角形。
解析:根据题目给出的条件,我们可以将所有可能的三角形划分为两个等价类,即等腰三角形和非等腰三角形。
对于非等腰三角形,其两边长度一定不相等。
因此,根据等价类划分的原理,当两边长度相等时,该三角形一定属于等腰三角形。
例二:在一个三角形中,若三个内角均小于90度,则该三角形一定是锐角三角形。
解析:根据题目给出的条件,我们可以将所有可能的三角形划分为两个等价类,即锐角三角形和非锐角三角形。
对于非锐角三角形,至少存在一个内角大于90度。
因此,根据等价类划分的原理,当三个内角均小于90度时,该三角形一定属于锐角三角形。
通过以上两个例子的解析,我们可以看出等价类划分对于解决三角形问题提供了一种便捷的思路和方法。
通过将三角形按照一定的规则划分为不同的等价类,我们能够更加直观地理解三角形的性质,更加方便地进行推理和证明。
第7讲 等价类划分法
等价类划分法
• 设计测试用例时,要同时考虑这两种等价类。 因为,软件不仅要能接收合理的数据,也要能 经受意外的考验。这样的测试才能确保软件具 有更高的可靠性。
• 划分等价类重要的是:集合的划分,划分为互 不相交的一组子集,而子集的并集是整个集合。 • 下面给出六条确定等价类的原在某网站申请免费信箱时,要求用户必须输入用 户名、密码及确认密码,对每一项输入条件的要求如 下: • 用户名要求为4位以上,16位以下,使用英文字母、数 字、“-”、“_”,并且首字符必须为字母或数字; 密码要求为6~16位之间,只能使用英文字母、数字以 及“-”、“_”,并且区分大小写。
例:准考证号码的等价类划分 有效等价类: (1) 110001 ~ 111215 (2) 210001 ~ 212006 (3) 310001 ~ 314015
无效等价类: (4) - ~ 110000 (5) 111216 ~ 210000 (6) 212007 ~ 310000 (7) 314016 ~ +
注册成功
提示用户名错误 提示用户名错误 提示用户名错误 提示用户名错误 提示密码错误 提示密码错误 提示密码错误 提示密码错误
表:测试用例
等价类划分法优缺点
• 等价类划分法的优点是考虑了单个输入域的各 类情况,避免了盲目或随机选取输入数据的布 完整性和覆盖的不稳定性。 • 等价类划分法虽然简单易用,但是没有对组合 情况进行充分的考虑。需要结合其他测试用例 设计的方法进行补充。
案例分析(一)
• 例1:要求输入三个整数a、b、c,分别作为三 角形的三条边,取值范围在1~100之间,判断 由三条边构成的三角形类型为等边三角形、等 腰三角形、一般三角形以及不构成三角形。
等价类划分: 在多数情况下,是从输入域划分等价类,但对于三角形 问题,从输出域来定义等价类是最简单的划分方法。 R1={〈a,b,c〉:边为a,b,c 的等边三角形} R2={〈a,b,c〉:边为a,b,c 的等腰三角形} R3={〈a,b,c〉:边为a,b,c 的一般三角形} R4={〈a,b,c〉:边为a,b,c 不能构成三角形}
测试用例-----等价类划分法
测试⽤例-----等价类划分法
1.等价类划分法
1.1 等价类概念与分类
等价类
在所有测试数据中, 具有某种共同特征的数据⼦集即为等价类
等价类分类
- -- 有效等价类
--- ⽆效等价类
1.2 等价类划分法解决的问题
解决的问题:
划分等价类可以将测试集合科学的从⽆穷⼤减少到有限⼩, 让测试⼯作从穷举测试中解放出来, ⼤⼤减少
测试⽤例数量, 提升测试效率.
1.3 等价类划分法设计测试⽤例步骤与应⽤场景
步骤:
1.需求分析
2.划分等价类
(1).有效等价类
(2).⽆效等价类
- 规则(需求本⾝出发)
- ⻓度需求
- 类型规定
- 是否为空(必填项检查)
- 是否可重复输⼊
3.设计⽤例
# 典型应⽤场景: 带有输⼊框的测试
1.4实例使⽤qq号进⾏注册
需求:
QQ号注册⽤户,账号必须6-10位⾃然数, 同⼀QQ号不能
重复注册
1.需求分析
2.等价类划分:
--- 有效等价类
--- ⽆效等价类
测试⽤例设计。
第02章等价类划分法详解
案例(续)
对于函数F(X,Y),其输入变Y的取值边界定义如下:
X ∈ [a,b)∪[b,c)[c,d] ; Y ∈[e,f)∪[f,g]
可得到X,Y的等价类如下表
输入变量 有效等价类 编号 无效等价类 编号
X
[a,b)
1
X<a
6
[b,c)
2
[c,d]
3
X>d
7
Y
[e,f)
4
Y<e
8
[f,g]
5
Y>g
9
试用前述几种等价类测试用例设计法设计测试用例
1、弱一般等价类测试用例设计法
•测试用例从每个有效等价类中选取一个值
测试用例 WR1 WR2 WR3
X
Y
Xab Yef
Xbc Yfg
Xcd Yef
预期输出
F1 F2 F3
从X的三个有效等价类中分别选 一个值
等价类测试的类型
等价类测试
根据测试用例的完整性划分
弱等价类测试
强等价类测试
弱一般等价类测试 弱健壮等价类测试
强一般等价类测试 强健壮等价类测试
如何理解 “弱”“强”?
❖ 所谓“弱”: 是指从各个等价类中选取值时只考虑等价类自身,查出的 缺陷属于“单缺陷”,即单一因素造成的缺陷。
❖ 所谓“强”: 是指考虑了等价类之间的相互影响,查出的缺陷属于多种 因素造成的“多缺陷”。
有效等价类 [a,b) [b,c) [c,d] [e,f) [f,g]
编号 1 2 3 4 5
无效等价类 编号
X<a
6
X>d
3.2.1-等价类划分法举例
3.2.1 等价类划分法举例例1:报表日期设某公司要打印2001~2005年的报表,其中报表日期为6位数字组成,其中,前4位为年份,后两位为月份。
(2)为有效等价类设计测试用例,表中有两个有效等价类说明:1、不能出现相同的测试用例。
2、本例的10个等价类至少需要8个测试用例。
例2:城市的电话号码由两部分组成。
这两部分的名称和内容分别是:地区码:以0开头的三位或者四位数字(包括0);电话号码:以非0、非1开头的七位或者八位数字。
假定被测试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,就可用等价分类法来设计它的测试用例。
例3:三角形问题接受三个整数a、b和c作为输入,用作三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
分析问题中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数 (5)两边之和大于第三边(6)等腰(7)等边如果 a、b、c 满足条件(1)~(4),则输出下列四种情况之一:✧如果不满足条件(5),则程序输出为“非三角形”。
✧如果三条边相等即满足条件(7),则程序输出为“等边三角形”。
✧如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”。
✧如果三条边都不相等,则程序输出为“一般三角形”。
(2)为有效等价类设计测试用例:例4:准考证号码对招干考试系统“输入学生成绩”子模块中的准考证号输入部分设计测试用例。
招干考试分三个专业,准考证号第一位为专业代号,如:1-行政专业, 2-法律专业,3-财经专业行政专业准考证号码为:110001~111215法律专业准考证号码为:210001~212006财经专业准考证号码为:310001~314015解:准考证号码的等价类划分有效等价类:(1) 110001 ~ 111215(2) 210001 ~ 212006(3) 310001 ~ 314015无效等价类:(4) - ∞~ 110000(5) 111216 ~ 210000(6) 212007 ~ 310000(7) 314016 ~ + ∞测试用例的设计这里就略过,请同学们根据划分好的等价类自行设计。
- 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
根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。