等价类划分法经典案例
- 格式:docx
- 大小:36.97 KB
- 文档页数:2
等价类划分法设计测试用例例题等价类划分法,听起来像是什么神秘的数学公式,实际上,它可是软件测试中一个非常常见又有用的小工具。
你想象一下,如果你有个程序要检查,比如一个计算器,大家都知道,计算器除了加减乘除外,怎么可能还有别的功能呢?这时候,等价类划分法就派上大用场了!它简单得不能再简单了,实际上就像是把复杂的任务拆成一块块小饼干,让你一块一块地检查,确保每一块都没问题。
想想看,平时我们使用计算器,输入的都是数字对吧?你不可能每次都输入“123456”或者“999999”这些大数字,像个计算器大神一样,而且你也不可能每次都输入“1”或者“0”这种极简的数字。
大多数时候,输入的数字在某个范围内,既不太小也不太大。
而等价类划分法的核心思想就是:把输入的所有可能分成几个“等价类”,然后挑选一个代表每个类的值来进行测试。
就好比你去超市买菜,老板让你挑菜,你说“给我三种最好的”,老板就挑了三样,你不用每样都拿一大堆,简简单单搞定。
举个例子,假设你在做一个年龄验证的功能,要求输入的是18到60岁之间的数字。
哎呀,这时候等价类划分法就能帮忙了。
输入的年龄可能是合法的——18到60之间。
然后,可能是非法的——比如小于18岁或大于60岁。
这时候,你就把所有可能的年龄值分成了两类:合法的和不合法的。
合法的范围里,你还可以分成两个子类,18岁到30岁算一类,31岁到45岁算一类,46岁到60岁算一类。
所以,最终你只需要测试一下每个类的代表值,比如“18岁”、“30岁”和“45岁”,再随便选一个大于60岁或小于18岁的数字,比如“70岁”或者“15岁”,就能全面覆盖所有情况了。
这种方法不仅节省了大量的时间和精力,而且它的效率还特别高!你就不用一一列举所有可能的输入,毕竟如果每个数字都去试一遍,那得试到什么时候去?人的精力也有限,哪里有那么多时间去做无脑的重复工作呢。
等价类划分法就是让你做有意义的测试,直接抓住最有代表性的几个点,搞定问题。
一、等价类划分法实例:1.输入条件为某个范围的取值:例:在某大学学籍管理信息系统中,假设学生年龄的输入范围为16~40,则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为?2.输入条件为输入值的集合:例:假设PowerPoint打印输出幻灯片的页数分别为{1,2,3,6,9 },则根据黑盒测试中的等价类划分技术,它的有效和无效等价类分别为?3.输入为BOOL变量,它的有效和无效等价类分别为?4.输入条件中由若干规则组成,其中各个规则都是独立的:例:一条输入的字符串中不能含有“#”和“&”两个特殊字符(其他字符都是合法的)的规则,它的有效和无效等价类分别为?5.输入条件由一个合法的规则组成:例:某个变量的取值必须为100,那么它的有效和无效等价类分别为?6.为输入条件的组合关系划分等价类:输入条件同时满足x>10和y<200两个判断表达式决定,那么它的有效和无效等价类分别为?二、边界值分析法实例:1.大小范围边界例:若10≤x≤200,利用边界值分析法需要选择哪些测试数据?若10<x<200,利用边界值分析法需要选择哪些测试数据?2.极限边界当给出的整数是无限制范围时,它的边界便是整数的最大值和最小值。
例:16位的有符号整数,它的边界是?利用边界值分析法需要选择哪些测试数据?3.NextDate函数的边界值分析测试用例在NextDate函数中,隐含规定了变量month和变量day的取值范围为1≤month≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050。
利用边界值分析法选择测试数据进行测试用例设计,完成下表。
设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能".
1)划分等价类并编号,下表等价类划分的结果
2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分
别为①、⑤、⑧,设计的测试用例如下:
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覆盖等价类号码345(1)--(7)445(1)--(7),(8)455(1)--(7),(9)545(1)--(7),(10)444(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 ,函数的输出为输入日期后一天的日期。
等价类划分法概念“哎呀,妈妈,为什么要把这些玩具分成这么多类呀?”我一脸疑惑地看着妈妈。
那是一个周末的下午,阳光透过窗户洒在地板上,我正在房间里开心地玩着玩具。
妈妈突然走进来,说要和我一起整理玩具。
只见妈妈把我的玩具汽车放在一堆,把积木放在另一堆,还有玩偶又放成一堆。
我好奇地凑过去问妈妈在干嘛。
妈妈笑着说:“这就叫等价类划分法呀。
”我眨巴着眼睛,完全不明白。
妈妈耐心地解释道:“你看啊,这些玩具汽车它们都有相似的特点,比如都是车,所以可以归为一类;积木呢,它们也有共同的地方,就放在一起;玩偶也是一样呀。
”我似懂非懂地点点头。
“就好像你们班的同学,”妈妈继续说道,“喜欢画画的可以是一类,喜欢唱歌的是一类,喜欢运动的又是一类,懂了吗?”我想了想,好像有点明白了。
我开始兴奋起来,拉着妈妈说:“那我也来分分类!”我把红色的玩具放一起,说这是红色类;把蓝色的放一起,这是蓝色类。
妈妈看着我笑了,说:“你这样分也可以呀,这也是一种等价类划分呢。
”我突然觉得这个等价类划分法好有趣呀,就像在玩一个特别的游戏。
我又想到,那生活中还有好多可以这样分类的呢!比如水果,苹果是一类,香蕉是一类;还有衣服,上衣是一类,裤子是一类。
哎呀,真是太多啦!等价类划分法不就像是给东西找“家”嘛!把相似的东西放在一起,让它们都有自己的归属。
这样一来,不仅看起来整齐,还能让我们更快地找到想要的东西呢。
我不禁感叹:“哇塞,这个等价类划分法可真是个好办法呀!”妈妈摸摸我的头说:“是呀,学会分类可以让生活变得更有条理哦。
”我觉得等价类划分法就像一把神奇的钥匙,能打开好多有趣的大门。
它能让我们把复杂的东西变得简单,把混乱的变得整齐。
我以后一定要多多用它来整理我的东西,让我的生活也变得更加有序!这就是我眼中的等价类划分法,真的超有意思!。
1.等价类划分法等价类划分是一种典型的黑盒测试方法,使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。
等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少数有代表性的数据做为测试用例。
使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步。
2.划分等价类:等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试,因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分可有两种不同的情况:有效等价类和无效等价类。
等价类的划分有两种不同的情况:①有效等价类:是指对于程序的规格说明来说,是合理的,有意义的输入数据构成的集合。
利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
②无效等价类:是指对于程序的规格说明来说,是不合理的,无意义的输入数据构成的集合。
对于具体的问题,无效等价类至少应有一个,也可能有多个。
在设计测试用例时,要同时考虑有效等价类和无效等价类的设计。
3.划分等价类的标准:1)完备测试、避免冗余;2)划分等价类重要的是:集合的划分,划分为互不相交的一组子集,而子集的并是整个集合;3)并是整个集合:完备性;4)子集互不相交:保证一种形式的无冗余性;5)同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到"相同的执行路径".4.划分等价类的原则。
(1) 如果输入条件规定了取值范围,或值的个数,则可以确立一个有效等价类和两个无效等价类。
例如,在程序的规格说明中,对输入条件有一句话:“…… 项数可以从1到999 ……”则有效等价类是“1≤项数≤999”两个无效等价类是“项数<1”或“项数>999”。
等价类划分案例想象一下,你正在开发一个超酷的社交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. 有效的用户名和密码:这个等价类包括符合规定格式的有效用
户名和密码,比如包含字母和数字的组合。
这是正常情况下的输入值。
2. 无效的用户名:这个等价类包括不满足规定格式的用户名,比
如只包含数字或只包含特殊字符。
这是一种错误的输入值。
3. 无效的密码:这个等价类包括不满足规定格式的密码,比如只
包含数字或只包含特殊字符。
这也是一种错误的输入值。
4. 用户名为空:这个等价类指的是用户名为空的情况,即用户没
有输入用户名。
这也是一种错误的输入值。
5. 密码为空:这个等价类指的是密码为空的情况,即用户没有输
入密码。
这同样是一种错误的输入值。
根据以上等价类划分的结果,我们可以生成以下测试用例:
1. 输入有效的用户名和密码,期望注册成功。
2. 输入无效的用户名和密码,期望注册失败并给出相应提示。
3. 输入无效的用户名,期望注册失败并给出相应提示。
4. 输入无效的密码,期望注册失败并给出相应提示。
5. 不输入用户名,只输入密码,期望注册失败并给出相应提示。
6. 不输入密码,只输入用户名,期望注册失败并给出相应提示。
通过以上测试用例,我们可以覆盖所有可能的等价类,从而验证
用户注册系统的正确性和健壮性。
这样的测试用例设计能够有效地减
少测试工作量,提高测试效率。
在实际测试过程中,我们还可以进一步细化等价类划分,比如针
对无效的用户名,可以将其分为长度过短、长度过长、包含非法字符
等子等价类,以更全面地覆盖各种错误情况,进一步提高测试覆盖率。
综上所述,等价类划分法是一种简洁实用的测试用例设计技术,
通过将输入值划分为若干等价类,可以减少测试用例数量,同时确保
对系统进行全面有效地测试。
通过合理的等价类划分和生成针对不同
等价类的测试用例,可以更好地发现系统中可能存在的问题,提高软
件质量和用户体验。