等价类划分法实例
等价类法

等价类法举例
三、 设 计 输 入 数 据 。
有效等价类 无效等价类 无效等价类
1.年龄
20 ~ 39 任 选 一 个
2.年龄
40 ~ 59 任 选 一 个
3.年龄
60 岁 以 上 、 20 岁 以 小 於 1 , 选 一 个 下 任 选 一 个 英 文 Male, M, F, Female 任 选 一 个
~ 合 合 : :
39 岁 「 Female, F 」 「 未 婚 」 空 白 0.6 %
: : : 人
40 集 集 数
~ 合 合 :
59 岁 「 Male, M 」 「 已 婚 」 1 ~ 6人
用 例 编 号
年 龄
性别
婚姻
扶养 保险 人数 费率
备注
3.
70
F
未婚
7
0.1%
4.
0
M
已婚
4
5. 100 Female 未婚
7.婚 姻
「 已 婚 」
8.婚 姻
「 未 婚 」
9.扶 养 人 空 白 数 10.扶 养 1 ~ 6 人数 11.扶 养 7 ~ 9 人数 12.保 险 10 点 以 上 (0.6 %) 费率 13.保 险 10 点 以 下 (0.6 %) 费率
小 於 1 , 选 一 个
大 於 9 , 选 一 个
等价类法举例
等价类划分法设计测试用例

期望结果:输入价类设计一个测试用例,设计结果如下:
测试数据
期望结果
覆盖的无效等价类
原密码空,1234,1234
无效输入
②
89727654cc,1234,1234
无效输入
③
1234,无新密码,无新密码
无效输入
⑤
1234,89727654cc,89727654cc
无效输入
⑥
1234,897276,123456
无效输入
⑦
现用等价类划分法设计测试用例,来测试系统的“修改密码”功能。
1、划分等价类并编号,下表等价类划分的结果
输入等价类
有效等价类
无效等价类
原密码
11-6位字符
2无字符
36位以上字符
新密码
41-6位字符
5小于1位字符
6大于6位字符
再次确认
⑦与新密码一致
7与新密码不一致
2、设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为①、④、⑦,设计的测试用例如下:
黑盒测试等价类划分法

实验1、黑盒测试:等价类划分法
一、实验目的
1、掌握等价类的概念。
2、掌握等价类划分法的测试用例设计方法。
二、实验内容
对三角问题使用等价类划分的方法来设计测试用例,并执行测试,然后撰写实验报告。
三角形问题:规定输入三个整数a、b、c分别作为三边的边长构成三角形。
通过程序判定所构成的三角形的类型(等边三角形、等腰三角形、一般三角形、构不成三角形),并在屏幕上输出0<a,b,c<200输入数据时进行有效性检验。
用C或Java或其它语言写出源程序。
三、实验步骤:
①划分等价类,得到等价类表。
等价类表格式如下:
②运用弱健壮等价类测试用例设计法设计测试用例,得到测试用例表。
测
③执行测试,填写软件缺陷报告。
简单软件缺陷报告格式如下:。
等价类划分法NextDate2011927.doc

20.年>2050
等价类(覆盖的有效及无效等价类)测试用例
用例
日期
月份
年
预期输出
覆盖的有效等价类
覆盖的无效等价类
1
30
4
2008
2008-05-01
1、11、17
2
27
12
2008
2008-12-28
1、14、17
3
31
5
2008
2008-06-01
5、12、17
4
29
2
2008
2008-03-01
2001
月份错误
5、181613源自2781911
年份错误
1、12
19
14
28
9
2051
年份错误
2、11
20
4.日期=30
5.日期=31
6.日期<1
7.日期>31
8.日期=29
9.日期=30
10.日期=31
Month
11.月份=4,6,9,11
12.月份=1,3,5,7,8,10
13.月份=2
14.月份=12
15.月份<1
16.月份>12
year
17.1912≤年≤2050的闰年
18.1912≤年≤2050的非闰年
等价类划分法——NextDate函数
使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。(说明:这里假定NextDate函数中年份year的取值范围为1912年到2050年之间)
输入域等价类表:
输入数据
有效等价类
无效等价类
等价类划分法

等价类划分法等价类划分是一种典型的黑盒测试方法,用这一方法设计测试用例完全不考虑程序的内部结构,只根据对程序的要求和说明,即需求规格说明书。
我们必须仔细分析和推敲说明书的各项需求,特别是功能需求。
把说明书中对输入的要求和输出的要求区别开来并加以分解。
由于穷举测试工作量太大,以至于无法实际完成,促使我们在大量的可能数据中选取其中的一部分作为测试用例。
例如,在不了解等价分配计数的前提下,我们做计算器程序的加法测试时,测试了1+1,1+2,1+3和1+4之后,还有必要测试1+5和1+6吗,能否放心地认为它们是正确的?我们感觉1+5和1+6,与前面的1+1,1+2都是很类似的简单加法。
等价类划分的方法是把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。
每一类的代表性数据在测试中的作用等价于这一类中的其他值,也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误;反之,如果某一类中的一个例子没有发现错误,则这一类中的其他例子也不会查出错误(除非等价类中的某些例子属于另一等价类,因为几个等价类是可能相交的)。
使用这一方法设计测试用例,首先必须在分析需求规格说明的基础上划分等价类,列出等价类表。
1、划分等价类和列出等价类表等价类是指某个输入域的子集合。
在该子集合中,各个输入数据对于发现程序中的错误都是等效的。
并合理地假定:测试某个等价类的代表值就等于对这一类其他值的测试。
因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试输入条件,就可以用少量代表性的测试数据取得较好的测试结果。
等价类划分有两种不同的情况:有效等价类和无效等价类。
有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。
利用有效等价类可以检验程序是否实现了规格说明中所规定的功能和性能。
无效等价类:与有效等价类的定义相反。
设计测试用例时,要同时考虑这两种等价类。
等价类划分法含例子

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

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

等价类划分法设计测试⽤例等价类划分法是⼀种典型的⿊盒测试⽤例设计⽅法。
采⽤等价类划分法时,完全不⽤考虑程序内部结构,设计测试⽤例的唯⼀依据是软件需求规格说明书。
等价类所谓等价类,是输⼊条件的⼀个⼦集合,该输⼊集合中的数据对于揭⽰程序中的错误是等价的。
等价类⼜分为有效等价类和⽆效等价类。
有效等价类代表对程序有效的输⼊,⽽⽆效等价类则是其他任何可能的输⼊(即不正确的输⼊值)。
有效等价类和⽆效等价类都是使⽤等价类划分法设计⽤例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输⼊,也能接受⽆效输⼊的考验。
划分等价类的标准:1.完备测试、避免冗余;2.划分等价类重要的是:集合的划分,划分为互不相交的⼀组⼦集,⽽⼦集的并是整个集合;3.并是整个集合:完备性;4.⼦集互不相交:保证⼀种形式的⽆冗余性;5.同⼀类中标识(选择)⼀个测试⽤例,同⼀等价类中,往往处理相同,相同处理映射到"相同的执⾏路径"。
等价类划分的⽅法:1.如果输⼊条件规定了⼀个取值范围,那么就应该确定⼀个有效等价类以及两个⽆效等价类。
如⽉份取值在1~12之间,由此可确定⼀个有效等价类即⽉份在1~12之间,和两个⽆效等价类,即⽉份取值⼩于1及⽉份取值⼤于12.2.规定了输⼊条件必须如何的情况下可以确定⼀个有效等价类和⼀个⽆效等价类。
如输⼊值必须⼤于0,则有效等价类为输⼊值⼤于0 ,⽆效等价类为输⼊值⼩于或者等于0.3.在输⼊数据是⼀个bool常量的情况下,可以确定⼀个有效等价类和⼀个⽆效等价类。
4.在规定了输⼊数据由n个值构成的情况下,并要求定其中的每个值进⾏测试时,可以确定n个有效等价类和⼀个⽆效等价类。
如交通⼯具类型为公共汽车、卡车、出租车、⽕车或者摩托车,那么就应该为每⼀个输⼊值确定⼀个有效等价类和⼀个⽆效等价类例如拖车。
5.在规定了输⼊数据冰箱最受的规则的情况下,可以确定⼀个有效等价类和若⼲个⽆效等价类(从不同⾓度违反规则)。
- 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)划分等价类并编号,下表等价类划分的结果
输入等价类有效等价类无效等价类
日期的类型及长度①6位数字字符
②有非数字字符
③少于6位数字字符
④多于6位数字字符
年份范围⑤在1990~2049之间
⑥小于1990
⑦大于2049月份范围⑧在01~12之间⑨等于00
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
根据输出域选择输入值,使落在输出域等价类内,可以结合弱健壮测试用例结合。