实验六 黑盒测试之等价类划分测试实验(参考答案)
黑盒测试方法习题及答案
//模板说明//凡是用//开头的行都是注释行,不会作为试题内容导入到题库中//每个试题间用空行隔开//试题的开头行是题干,前面不能有注释行并列在上面,否则这个试题都无效;如要注释则在注释后再加一空行隔开/题干、内容、答案、分数、难度、试题分类和题型是一个试题必须项,其它的都是可选的,可选的属性可以不写//试题开头可以有序号,格式为"序号.", 后接题干内容;也可以不写序号,系统会自动加上序号以便区分试题//作为格式用的符号如":","."是不分半角全角的,半角全角都有效//可选项直接在题干后以字母和点开头,如A.、B.并且要求大写。
//编号可以不要。
没有编号是新增,有编号则是修改现有试题,例子中给出的都没有给出编号//可用的题型有:单选题、多选题、判断题、填空题、问答题、组合题、解答题//解答题需要给出操作题类型,如操作题类型:Word//填空题的空位处用三个或三个以上的"_",即"___"来表示,用"|"来分隔多个空的答案,如果一个空有多个标准答案请用"&"隔开//答题时间格式为00:00:00,即 "小时:分钟:秒"//可用的状态有:正常、禁用,如果没有,则默认为正常//可用的操作题类型有:Word、Excel、PowerPoint、Visio,默认为Word//如果试题内容里有换行,则必需要在这段内容前后分别用”{回车换行....回车换行}”括起来。
//如果试题内容中包含有'{'或'}',请用'\'把它们转义为: '\{'或'\}'。
//如果试题内容中包括有'<'或'>',表示为尖号时请分别用'< '、'> '替换;表示为大于或小于时,请用全角格式下的'<'或'>'来表示;表示为标签时,请'<'与'>'对称使用。
大连东软信息学院软件测试黑盒测试方法习题及答案讲解
⼤连东软信息学院软件测试⿊盒测试⽅法习题及答案讲解/1.现有⼀个⼩程序,能够求出三个在-10000到+10000间整数中的最⼤者,程序界⾯如图所⽰,⽤等价类划分法设计测试⽤例。
答案:(1)进⾏等价类划分,如下:(3)根据等价类表设计测试⽤例,如下表所⽰。
分数:10题型:解答题操作题类型:Word难度:32. NextDate函数有三个变量month,day,year的函数,输出为输⼊⽇期下⼀天的⽇期。
如:输⼊为2007年7⽉19⽇,输出为2007年7⽉20⽇。
要求三个变量都为整数,且满⾜:条件1:1 ≤month ≤12条件2:1 ≤day ≤31条件3:1912 ≤year ≤2050⽤等价类划分法设计NextDate函数的弱健壮等价类测试⽤例。
答案: NextDate函数的弱健壮等价类测试⽤例如下表所⽰。
3.⼀个程序根据输⼊三个整数作为三边的边长,判断所构成的三⾓形。
当此三⾓形为⼀般三⾓形、等腰三⾓形、等边三⾓形时,分别作计算。
⽤等价类划分⽅法为该程序设计测试⽤例。
答案:率其中,保险费率依点数不同⽽有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;⽽点数⼜是由投保⼈的年龄、性别、婚姻状况和抚养⼈数来决答案:(1)分析程序规格说明中给出和隐含的对输⼊条件的要求,列出等价类表(包5.某城市的电话号码由三部分组成。
这三部分的名称和内容分别是:地区码:空⽩或三位数字;前缀:⾮’0’或’1’开头的三位数;后缀:四位数字。
假定被调试的程序能接受⼀切符合上述规定的电话号码,拒绝所有不符合规定的号码,⽤等价分类法来设计它的测试⽤例。
答案:划分等价类,包括4个有效等价类,11个⽆效等价类。
6.针对以下问题:某⼀种8位计算机,其⼗六进制常数的定义是以0x或0X开头的⼗六进制整数,其取值范围为-7f~7f(不区分⼤⼩写字母),如0x13、0x6A、-0x3c。
请采⽤等价类划分的⽅法设计测试⽤例。
黑盒测试《等价类划分》-有这篇就够了
⿊盒测试《等价类划分》-有这篇就够了⼤家好,我是吉提。
在疫情消停不下来的2020年,既然不好跳槽,不好涨薪,也不好发挥创造⼒,那么就沉下⼼来,跟我⼀起,巩固软件测试基础知识。
积攒⼒量,蓄势待发。
本⽂将会详细描述“等价类划分",它是⿊盒测试最基本的⽤例设计⽅法。
⽬录:1. 定义(What)2. 为什么使⽤该⽅法?(Why)3. 如何划分等价类?(How)4. 设计测试⽤例5. 使⽤场景6. 根据测试⽤例的完整性划分7. 等价类划分注意事项8. 等价类划分的优缺点9. 实战演练1. 定义(What)等价类划分法是⼀种典型的,并且是最基础的⿊盒测试⽤例设计⽅法。
采⽤等价类划分法时,完全不⽤考虑程序内部结构,设计测试⽤例的唯⼀依据是软件需求规格说明书。
所谓等价类,是输⼊条件的⼀个⼦集合,该输⼊集合中的数据对于揭⽰程序中的错误是等价的。
从每⼀个⼦集中选取少数具有代表性的数据,从⽽⽣成测试⽤例。
等价类⼜分为有效等价类和⽆效等价类。
有效等价类代表对程序有效的输⼊,⽽⽆效等价类则是其他任何可能的输⼊(即不正确的输⼊值)。
有效等价类和⽆效等价类都是使⽤等价类划分法设计⽤例时所必须的,因为被测程序若是正确的,就应该既能接受有效的输⼊,也能接受⽆效输⼊的考验。
2. 为什么使⽤该⽅法?(Why)理想的测试,是从所有可能的输⼊中找出某个⼩的⼦集,并且是可能发现错误最多的⼦集。
即:使⽤最少的测试数据,达到最好的测试质量(最⾼性价⽐)。
这个⼦集如何确定?可以借助测试⽤例的两个特性:测试⽤例数量达到最少;某个测试⽤例要能覆盖⼤部分其他测试⽤例。
第⼆个特性就暗⽰我们,应该尽量将程序输⼊范围进⾏划分,将其划分为有限数量的等价类,这样就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。
这两种特性形成了称为等价类划分的⿊盒测试⽅法。
因此,等价类划分是⿊盒测试最基本的⽅法。
3. 如何划分等价类?(How)在给定了输⼊或外部条件之后,等价类的划分原则如下:如果输⼊条件规定了⼀个取值范围(例如,“数量可以是1到999”),那么就应确定出⼀个有效等价类(1<数量<999),以及两个⽆效等价类(数量<1,数量>999)。
黑盒测试_等价类
在输入条件规定了“必须如何”的条件情况下,可确立一 个有效等价类和一个无效等价类。
如,规定程序输入必须为数字,可确定一个有效等价类— —数字和一个无效等价类——字母。
等价类的划分原则(续)
③按照输入数值划分
在规定了输入数据的一组值(假定n个),并且程序要对每 一个输入值分别处理的情况下,可确立n个有效等价类(每 个值确定一个有效等价类)和一个无效等价类(所有不允 许的输入值的集合)。
34
案例分析-NextDate函数的等价类测试用例
确定等价类(方法一) 有效等价类: M1={月份:1≤月份≤ 12} D1={日期:1 ≤日期≤ 31} Y1={年:1912 ≤年≤ 2012} 无效等价类: M2={月份:月份<1} M3={月份:月份>12} D2={日期:日期<1} D3={日期:日期>31} Y2={年:年< 1912} Y3={年:年>2012}
b
WN1
5
5
WN2
2
2
WN3
3
4
WN4
4
1
c
预期输出
5
等边三角形
3
等腰三角形
5
三角形
2
非三角形
由于变量a,b,c没有定义有效子区间,则强一般等价类测试用例与弱一 般等价类测试用例相同。
三角形问题的弱健壮等价类测试用例
考虑a,b,c的无效值产生的以下弱健壮等价类测试用例。
测试用例 a
b
c
预期输出
WR1
除按第一条原则划分,还可进一步划分为更小的等价类,如 85~100(优),75~85(良)等。
等价类划分法的测试用例设计
黑盒测试--等价类划分
⿊盒测试--等价类划分1.1. 概念等价类划分法是把程序的输⼊域划分成若⼲部分(⼦集),然后从每个部分中选取少数代表性数据作为测试⽤例。
每⼀类的代表性数据在测试中的作⽤等价于这⼀类中的其他值。
1.2 等价类划分法的应⽤1 等价类是指某个输⼊域的⼦集合。
在该⼦集合中,各个输⼊数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这⼀类其它值的测试.因此,可以把全部输⼊数据合理划分为若⼲等价类,在每⼀个等价类中取⼀个数据作为测试的输⼊条件,就可以⽤少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和⽆效等价类。
有效等价类:是指对于程序的规格说明来说是合理的,有意义的输⼊数据构成的集合.利⽤有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。
⽆效等价类:与有效等价类的定义恰巧相反。
设计测试⽤例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更⾼的可靠性。
2划分等价类的六⼤原则:⑴在输⼊条件规定了取值范围或值的个数的情况下,则可以确⽴⼀个有效等价类和两个⽆效等价类.例:输⼊值是学⽣成绩,范围是0~100:⑵在输⼊条件规定了输⼊值的集合或者规定了“必须如何”的条件的情况下,可确⽴⼀个有效等价类和⼀个⽆效等价类.⑶在输⼊条件是⼀个布尔量的情况下,可确定⼀个有效等价类和⼀个⽆效等价类. 布尔量是⼀个⼆值枚举类型, ⼀个布尔量具有两种状态: true 和 false 。
⑷在规定了输⼊数据的⼀组值(假定n个),并且程序要对每⼀个输⼊值分别处理的情况下,可确⽴n个有效等价类和⼀个⽆效等价类.例:输⼊条件说明输⼊字符为:中⽂、英⽂、阿拉伯⽂三种之⼀,则分别取这三种这三个值作为三个有效等价类,另外把三种字符之外的任何字符作为⽆效等价类。
⑸在规定了输⼊数据必须遵守的规则的情况下,可确⽴⼀个有效等价类(符合规则)和若⼲个⽆效等价类(从不同⾓度违反规则)⑹在确知已划分的等价类中各元素在程序处理中的⽅式不同的情况下,则应再将该等价类进⼀步的划分为更⼩的等价类3、将等价类转化成测试⽤例:按照[输⼊条件][有效等价类][⽆效等价类] 建⽴等价类表,列出所有划分出的等价类为每⼀个等价类规定⼀个唯⼀的编号.设计⼀个新的测试⽤例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这⼀步.直到所有的有效等价类都被覆盖为⽌.设计⼀个新的测试⽤例,使其仅覆盖⼀个尚未被覆盖的⽆效等价类,重复这⼀步.直到所有的⽆效等价类都被覆盖为⽌.1.3实例 +笔记笔记等价类划分3将等价类转化对于有效等价类,使其尽可能多地覆盖尚未被覆盖地有效等价类成测试⽤例使其仅覆盖⼀个尚未被覆盖的⽆效等价类2.3实例例1:⼈寿保险费率(基本保险费0.50)Xs分析: 等价类划分、边界值分析结合使⽤序号输⼊条件输⼊类型测试数据预期结果1⼩于等于0岁(<=0岁)⽆效-1警告信息235岁以下有效20计算出⽉保险费335-59岁有效51计算出⽉保险费460岁以上有效65计算出⽉保险费边界值分析法序号边界值测试数据预期结果100警告信息23535按额外保险费2.87:计算35959按额外保险费2.87:计算46060按额外保险费6.00:计算实例2免费邮箱申请:在某⽹站申请免费信箱时,要求⽤户必须输⼊⽤户名、密码及确认密码,对每⼀项输⼊条件的要求如下:⽤户名:要求为4位以上,16位以下,使⽤英⽂字母、数字、“-”、“_”,并且⾸字符必须为字母或数字;密码:要求为6~16位之间,只能使⽤英⽂字母、数字以及“-”、“_”,并且区分⼤⼩写。
黑盒测试用例设计技术--等价类划分法
⿊盒测试⽤例设计技术--等价类划分法本⽂通过案例的形式,详细讲解⿊盒测试⽤例设计技术中的等价类划分法。
等价类划分是⼀种典型的⿊盒测试⽅法,其原理是把程序的输⼊域划分成若⼲部分(⼦集),然后从每⼀个⼦集中选取少数具有代表性的数据作为测试⽤例。
通过等价类划分,可以在尽可能覆盖所有测试路径的前提下,⼤幅度减少测试⽤例的数⽬。
本⽂的主要内容有:等价类的概念介绍划分等价类的原则根据等价类设计测试⽤例的⽅法案例演⽰划分等价类等价类是指某个输⼊域的⼦集合。
在该⼦集合中,各个输⼊数据对于揭露程序中的错误都是等效的。
并合理的假设,测试某等价类的代表值就等于对这⼀类其它值的测试。
等价类划分有两种不同的情况:有效等价类:指对于程序的规格说明来说是合理的、有意义的输⼊数据构成的集合。
⽆效等价类:指对程序的规格说明是不合理的或⽆意义的输⼊数据所构成的集合。
对于具体的问题,⽆效等价类⾄少应有⼀个,也可能有多个。
在设计测试⽤例时,要同时考虑有效等价类和⽆效等价类,以此验证软件在正常操作和异常操作时是否都能正常运⾏。
确定等价类的6条原则:1、在输⼊条件规定了取值范围或取值的个数的情况下,可以确⽴⼀个有效等价类和两个⽆效等价类。
例1:输⼊值是学⽣成绩,输⼊形式为⽂本框,要求的输⼊范围是0~100有效等价类:0<=输⼊成绩<=100;⽆效等价类1:输⼊成绩<0;⽆效等价类2:输⼊成绩>1002、在输⼊条件规定了输⼊值的集合或者规定了“必须如何”的条件的情况下,可以确⽴⼀个有效等价类和⼀个⽆效等价类。
例2:输⼊值是⼈员性别,输⼊形式为⽂本框,要求输⼊的内容必须在集合{男,⼥}中有效等价类:性别=’男’ 或者 ‘⼥’⽆效等价类:性别=’⼈妖’3、在输⼊条件是⼀个布尔量的情况下,可以确⽴⼀个有效等价类和⼀个⽆效等价类。
例3:输⼊值是状态标识位“是否完成”,输⼊形式为单选下拉框,选择范围为{是,否}有效等价类:选项=’是’ 或者 ‘否’⽆效等价类:未进⾏选择操作4、在规定了输⼊数据的⼀组值(假设N个),并且程序要对每⼀个输⼊值进⾏处理的情况下,可以确⽴N个有效等价类和⼀个⽆效等价类。
黑盒测试-等价类
• (需求规格说明):……学生选课允许2门至4门”……
2.按数值集合划分:输入条件规来自了输入值的集 输入条件规定了输入值的集 或是规定了“必须如何”的条件,则可确定 合,或是规定了“必须如何”的条件 一个有效等价类和一个无效等价类。
例:
– “标识符以字母开头”
• 有效等价类: 以字母开头的字符串M135 • 无效等价类: 以非字母开头的字符串135
e«x2«g, 区间 <=e, [e, f),
[f, g],
>=g
x2
g
f
e x1 a b c d
a«x1«d, 区间 [a, b), [b, c), [c, d] e«x2«g, 区间 [e, f), [f, g]
小节
• 弱一般等价类 – 弱:基于单缺陷假设; 基于单缺陷假设; – 一般:只考虑有效值。 一般:只考虑有效值。 • 强一般等价类 – 强:考虑多缺陷(笛卡儿积) 考虑多缺陷(笛卡儿积) – 一般:只考虑有效值。 一般:只考虑有效值。 • 弱健壮等价类 – 弱:基于单缺陷假设; 基于单缺陷假设; – 健壮:(有效值的前提下)考虑无效值。 健壮:(有效值的前提下)考虑无效值。 :(有效值的前提下 • 强健壮等价类 – 强:考虑多缺陷(笛卡儿积); 考虑多缺陷(笛卡儿积); – 健壮: (有效值的前提下)考虑无效值。 健壮: 有效值的前提下)考虑无效值。
x2
g
f
e x1 a b c d
a«x1«d, 区间 [a, b), [b, c), [c, d] e«x2«g, 区间 [e, f), [f, g]
强健壮等价类(补充)
• 基于多缺陷假设,从所有等价类的笛卡尔积的每 一个元素(包括无效值)中获得测试用例。
软件测试实验报告-黑盒测试等价划分类
A为闰年且 6 b=2,c:1~29
A为平年且 7 b=2,c:1~28
覆盖有效等价类的测试用类
a
b
c
2013
10
9
2012
2
28
2013
2
28
2013
9
15
覆盖无效等价类的测试用类
a
b
c
0.2013
10
9
2013
0.1
9
2013
10
0.9
0.2013
0.1
9
0.2013
10
0.9
2013
0.1
0.9
if(a+b>c||a+c>b||b+c>a)cout<<"a,b,c 的值不能构成三角形!"; 8 if(a==b&&b==c)cout<<"是等边三角形!"; 9 if(a==b||b==c||a==c)cout<<"是等边三角形!"; 11 if(a<>b&&b<>c&&c<>a)cout<<"一般三角形!"; 12
5
1、2、3、4、5
4
1、2、3、4、6
覆盖无效等价类的测试用类
a
b
ห้องสมุดไป่ตู้
c
覆盖无效等价类号码
0
4
5
7
3
0
5
8
3
4
0
9
3
4
7
10
7
软件测试-黑盒测试-等价类划分
13
【3,4,4】
14
【3,4,3】
15
【3,3,4】
(1),(2),(3),(4),(5),(6),(14),(18)
非等边三角 (1),(2),(3),(4),(5),(6),(15),(19) 形
(1),(2),(3),(4),(5),(6),(13),(20)
课堂讲解
• 1、准考证号码 • 对招干考试系统“输入学生成绩”子模块设计测试用例。
等价类划分的细则
• ③ 在输入条件是一个布尔量的情况下,可确 定一个有效等价类和一个无效等价类。( True,False) 实例:
电源开关开(一个有效等价类、一个无效等 价类)
有效等价类:①电源开关开 无效等价类:①电源开关关
等价类划分法细则
④ 在规定了输入数据的一组值(假定n个), 并且程序要对每一个输入值分别处理的情 况下,可确立n个有效等价类和一个无效等 价类。
10
【3,4,3】
(1),(2),(3),(4),(5),(6),(15)
实例讲解
序号
11
输入值(A/B/C) 覆盖等价类编号
【3,4,5】
(1),(2),(3),(4),(5),(6),(16)
输出
非等腰三角形
12
【3,3,3】
(1),(2),(3),(4),(5),(6),(17)
是等边三角形
形
(14)
(15)
是否等边三角
形
(17)
(A>0), (B>0), (C>0), (A+B>C), (B+C>A), (A+C>B),
(A=B), (B=C), (C=A),
黑盒测试用例设计(含练习答案)
© 2005-2006, Saga Technologies. Confidential and Proprietary. Do not duplicate without written permission from Saga Technologies,
14
5、如果规定了输入数据必须遵守的规 则,则可以确定一个有效等价类(符合规则) ,和若干个无效等价类(从不同角度违反则)。
⑶ ②VAR : REAL; ④ VAR T$: CHAR;
⑹ ③VAR T12345678: REAL; { ⑹ } ⑤ VAR GOTO: INTEGER; (11)
17
二、确立测试用例 等价类划分完以后,可以按下面的形式列出等价 类表
输入条件
有效等价类
无效等价类
……
……
……
© 2005-2006, Saga Technologies. Confidential and Proprietary. Do not duplicate without written permission from Saga Technologies,
的个数,则可以确立一个有效等价类和两个无效 等价类。
例如:… … 序号值可以从 1到999 … …
一个有效等价类: 1≤ 序号值 ≤999
两个无效等价类: 序号值 <1 序号值 >999
© 2005-2006, Saga Technologies. Confidential and Proprietary. Do not duplicate without written permission from Saga Technologies,
© 2005-2006, Saga Technologies. Confidential and Proprietary. Do not duplicate without written permission from Saga Technologies,
黑盒测试二——等价类测试
列出等价类表:
输入条 有效等价 无效等价 件 类 类 …… ……… ……… …… …… ……… ……… ……… ………
第二步:选取测试用例。
第一步:划分等价类
启发式规则: (1) 如果规定了输入值的范围,则可划分出 一个有效的等价类(输入值在此范围内),两个 无效的等价类(输入值小于最小值或大于最大 值); 例、在程序规格说明中对输入条件有一句话: “…… 项数可以从 1到999 …… ”。 1 999 无效等价类
期,日期限制在2003年1月至2008年12月,即系统 只能对该段期间内的报表进行处理,如日期不在此 范围内,则显示输入错误信息。系统日期规定由年 、月的6位数字字符组成,前四位代表年,后两位
代表月。
用等价类划分法设计测试用例,测试程序的日 期检查功能?
例1、第一步:等价类划分 “报表日期”输入条件的等价类表 输入条件 报表日期的 类型及长度 有效等价类 无效等价类 有非数字字符 (4) 6位数字字符(1) 少于6个数字字符 (5) 多于6个数字字符 (6)
年份范围
月份范围
在2003~2008 之间 (2)
小于2003 (7) 大于2008 (8)
ቤተ መጻሕፍቲ ባይዱ
在1~12之间(3) 小于1 (9) 大于12 (10)
第二步:确立测试用例 确立测试用例的原则:
为每一个等价类规定一个唯一编号;
设计一个新的测试用例,使其尽可能多地覆 盖尚未被覆盖的有效等价类,重复这一步, 直到所有的有效等价类都被覆盖为止; 设计一个新的测试用例,使其仅覆盖一个尚 未被覆盖的无效等价类,重复这一步,直到 所有的无效等价类都被覆盖为止。
例、输入条件说明学历可为:专科、本科、硕 士、博士四种之一。 专科:有效等价类 本科:有效等价类 硕士:有效等价类 博士:有效等价类
讲课黑盒测试练习题标准答案
1.设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
①、⑤、⑧,设计的测试用例如下:ﻫ测试数据期望结果覆盖的有效等价类3)为每一个无效等价类设计一个测试用ﻫ200211输入有效①、⑤、⑧ﻫ例,设计结果如下:95June 无效输入②测试数据期望结果覆盖的无效等价类ﻫﻫ20036无效输入③ﻫ2001006 无效输入④200401无效输入⑦198912无效输入⑥ﻫ200100 无效输入⑨200113 无效输入⑩2.输入:用户密码要求:1)用户密码为6到8位。
2)必须含有字母和数的组合。
输出: 如正确,输出正确的信息。
否则,输出相应的错误信息。
1.NextDate函数的边界值分析测试用例ﻫ在NextDate函数中,隐含规定了变量mouth和变量day的取值范围为1≤mouth≤12和1≤day≤31,并设定变量year的取值范围为1912≤year≤2050 。
(6n+1)因果图方法1.有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。
若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。
1) 分析这一段说明,列出原因和结果原因:1.售货机有零钱找2.投入1元硬币3.投入5角硬币4.押下橙汁按钮5.押下啤酒按钮结果:21.售货机〖零钱找完〗灯亮22.退还1元硬币23.退还5角硬币24.送出橙汁饮料25.送出啤酒饮料2)画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表示处理的中间状态。
黑盒测试——等价类划分法
实验二: 黑盒测试——等价类划分法【实验环境】Windows 10 操作系统,C,C++,C#、Java或Python语言开发环境(IDE)。
【实验类型】设计型【实验目的】1.认识黑盒测试方法中等价类划分测试方法原理2.掌握黑盒测试方法中等价类划分测试方法过程【实验内容】【实验材料】1.三角形问题问题描述:三角形问题接受三个整数,a、b和c作为输入,用作三角形的边。
程序的输出是由这三条边确定的三角形类型:等边三角形、等腰三角形、不等边三角形或非三角形。
作为输入:三角形的三条边必须满足如下条件:C1:1<=a<=100C2:1<=b<=100C3:1<=c<=100C4:a<b+cC5:b<a+cC6:c<a+b2.NextDate函数问题描述:NextDate是一个由三个变量(月份、日期和年份)的函数。
函数返回输入日期后边的那个日期。
作为输入:变量月份、日期和年都具有整数值,满足以下条件。
C1:1<=月份<=12C2:1<=日期<=31C3:1912<=年<=20503.佣金问题问题描述:前亚利桑那洲境内的一位步枪销售商销售密苏里州制造商制造的步枪机(lock)、枪托(stock)和枪管(barrel)。
枪机卖45美元,枪托卖30美元,枪管卖25美元。
销售商每月至少要售出一支完整的步枪,且生产限额是大多数销售商在一个月内可销售70个枪机、80个枪托和90个枪管。
每访问一个镇子后,销售商都给密苏里州步枪制造商发出一份很短的电报,通知几个枪机被售出。
这样步枪制造商就知道当月的销售情况,并计算销售商的佣金如下:不到(含)1000美元的部分为10%;1000(不含)~1800(含)美元的部分为15%;超过1800美元的部分为20%。
佣金程序生成月份销售报告,汇总售出的枪机、枪托和枪管总数,销售商的总销售额以及佣金。
黑盒测试之等价类
黑盒测试案例设计技术概述本章介绍黑盒测试的概念和进行黑盒测试的目的与意义,及关于等价类划分、边界值分析、因果图法、判定表法、正交试验法、功能图法等测试用例设计方法的原理与实现,并从测试设计说明、测试用例说明、测试程序说明三个方面介绍如何编写测试用例,最后结合一个ATM的例子体现如何设计测试用例。
测试用例设计方法软件测试是一个工程,要通过制定测试用例指导测试的实施。
<!--[if !supportLists]-->* <!--[endif]-->什么是测试用例测试用例设计:将软件测试的行为和活动,作一个科学化的组织归纳。
软件测试是有组织性、步骤性和计划性的,而设计软件测试用例的目的,就是为了能将软件测试的行为转换为可管理的模式。
测试用例就是将测试行为具体量化的方法之一。
使用测试用例的好处:<!--[if !supportLists]-->A. <!--[endif]-->在开始实施测试之前设计好测试用例,可以避免盲目测试并提高测试效率。
<!--[if !supportLists]-->B. <!--[endif]-->测试用例的使用令软件测试的实施重点突出、目的明确。
<!--[if !supportLists]-->C. <!--[endif]-->在软件版本更新后只需修正少部分的测试用例便可展开测试工作,降低了工作强度,缩短项目周期。
<!--[if !supportLists]-->D. <!--[endif]-->测试用例的通用化和复用化使软件测试易于开展,并随着测试用例的不断精华而提高效率。
<!--[if !supportLists]-->(1) <!--[endif]-->等价类划分法:把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例。
黑盒测试等价类划分
等价类划分方法基础
• 等价类是输入域的某个子集合,而所有等价类的 并集就是整个输入域。
• 等价类对于测试有两个重要的特征:
➢ 完备性——并集为整个输入域 ➢ 无冗余性——等价类互不相交
南京师范大学 计算机学院
2020年3月29日
软件测试
Software Testing
黑盒测试方法——等价类划分
南京师范大学 计算机学院
2020年3月29日
软件测试
Software Testing
黑盒测试方法——等价类划分
等价类划分
• (1)有效等价类(2)无效等价类
设计测试用例时,要同时考 虑这两种等价类。因为软件 不仅要能接收合理的数据, 也要能经受意外的考验。经 过正反的测试才能确保软件 具有更高的可靠性。
less than value
value
greater than value
例:程序输入条件为小于100大于10的整数x 则有效等价类为10<x<100,两个无效等价类为x≤10和x≥100。
南京师范大学 计算机学院
2020年3月29日
软件测试
Software Testing
黑盒测试方法——等价类划分
软件测试
Software Testing
软件测试
第五讲 黑盒测试
南京师范大学 计算机学院
2020年3月29日
软件测试
Software Testing
黑盒测试方法——总览
1.基于需求的测试 2.正面测试和负面测试 3.等价类划分 4.边界值分析 5.因果图分析法 6.决策表 7.基于图/状态的测试 8.正交数组测试 ……
– 将不能穷举的测试过程进行合理分类,保证设计出来的测试用 例具有完整性和代表性。
5.黑盒测试(1)-等价类
2)设计 设计 测试 用例
覆盖的无效等价类 覆盖的无效等价类
3.5 4.5 5 15 覆盖的无效等价类 覆盖的无效等价类 3 4.5 5.5 16 3.5 4 3 4 5 3 3 3 4 0 3 3 4 0 4 5 5 5 0 4 4 5 5 6 5.5 17 18 19 20 21 22 23 24 25 26 27 28 4.5 4.5 5.5
具体案例2 具体案例 : 三角形问题
功能说明 某程序规定:“输入三个整数 a 、 b 、 c 分别作为三边的 边长构成三角形。通过程序判定所构成的三角形的类型, 当此三角形为一般三角形、等腰三角形及等边三角形时, 分别作计算 … ”。用等价类划分方法为该程序进行测试 用例设计。(三角形问题的复杂之处在于输入与输出之 间的关系比较复杂。)
具体案例3 具体案例 : NextDate问题 问题
功能说明
NextDate(年,月,日)是三个变量的函数。函数返回 输入日期的下一个日期。变量年份,月份,日期都是整 数值,且满足下面的条件: 1900≤年 ≤2060 ,1≤月 ≤12, 1≤ 日 ≤31. 分析和比较两种不同的等价类划分方法以及三种设计的 结果
确定测试用例
步骤
1. 2. 3. 划分等价类 为每一个有效等价类和无效等价类规定一个唯一的编号 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类, 设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类, 重复这一步直到所有有效等价类均被测试用例所覆盖 4. 设计一个测试用例,使其只覆盖一个无效等价类,重复这一步, 设计一个测试用例,使其只覆盖一个无效等价类,重复这一步,直 到所有无效等价类均被覆盖
具体案例2 具体案例 : 三角形问题
分析题目中给出和隐含的对输入条件的要求: 分析题目中给出和隐含的对输入条件的要求: (1)整数 (2)三个数 (3)非零数 (4)正数 (5)两边之和大于第三边 (6)等腰 (7)等边 满足条件( ),则输出下列四 如果 a 、 b 、 c 满足条件( 1 ) ~ ( 4 ),则输出下列四 种情况之一: 种情况之一: 1)如果不满足条件(5),则程序输出为 " 非三角形 " 。 2)如果三条边相等即满足条件(7),则程序输出为 " 等边三角形 " 。 3)如果只有两条边相等、即满足条件(6),则程序输 出为 " 等腰三角形 " 。 4)如果三条边都不相等,则程序输出为 " 一般三角形 " 。
实验6 单元测试
实验6 单元测试班级:姓名:学号:一、实验目的(1)了解Junit4安装过程,进行安装实验。
(2)掌握Junit4的使用方法。
(3)使用Junit4进行简单的测试工作。
二、实验内容(1)实验环境:操作系统Windows XPEclipse版本version 3.5.2Java Develop Kit version 1.6.0-21Junit版本version 4.4(2)Junit简介:JUnit是一个开放源代码的Java测试框架,用于编写和运行可重复的测试。
他是用于单元测试框架体系xUnit的一个实例(用于java语言)。
它包括以下特性:1)用于测试期望结果的断言(Assertion)2)用于共享共同测试数据的测试工具3)用于方便的组织和运行测试的测试套件4)图形和文本的测试运行器(3) 安装Junit:Eclipse默认带的有Junit。
如果没有,则需要下载安装。
/p/junit下载完以后解压缩到你喜欢的目录下,假设是JUNIT_HOME,然后将JUNIT_HOME下的junit.jar包加到你的系统的CLASSPATH环境变量中,对于IDE环境,对于需要用到的junit 的项目增加到lib中,其设置不同的IDE有不同的设置,这里不多讲。
(4)Junit 4.4的使用JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。
以下是Junit4定义的一些Annotations:① org.junit.Test② org.junit.Before③ org.junit.After④ org.junit.BeforeClass⑤ org.junit.AfterClass⑥ org.junit.Ignore⑦ org.junit.runner.RunWith⑧ org.junit.runners.Suite.SuiteClasses⑨ org.junit.runners.Parameterized.Parameters:(5)待测试类我根据老师提供的示例,修改得到了MyMath类作为待测试的类public class MyMath {//加法public static int add(int a, int b) {return a + b;}//减法public static int substract(int a, int b) {return a - 1;}//乘法//未实现public static int multiply(int a, int b) {return 0;}//除法public static int divide(int a, int b) {return a / b;}//平方public static int square(int n) {return n * n;}//平方根//死循环public static int squareRoot(int n) {for (;;);}//求 log2Npublic static int log2(int n) {if (n <= 0)return -1;int log = 0;int value = n;for (int i = 4; i >= 0; --i) {int shift = (1 << i);int x = value >> shift;if (x != 0) {value = x;log += shift;}}return log;}}三、实验步骤(1)黑盒测试①等价类划分输入数据有效等价类无效等价类加法左操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647加法右操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647减法左操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647减法右操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647乘法左操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647乘法右操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647除法左操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647除法右操作数大于-2147483648且小于+2147483647小于-2147483648 或大于+2147483647②测试用例输入数据有效等价类加法左操作数 4加法右操作数3减法左操作数 4减法右操作数 3乘法左操作数 4乘法右操作数 3除法左操作数 4除法右操作数 3③测试过程:创建Junit的测试类,这里先测试加减乘除四个方法④测试类的详细代码import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;public class MyMathTest {private MyMath math = new MyMath();@Testpublic void testAdd() {assertEquals(7, math.add(4, 3));}@Ignorepublic void testSubstract() {assertEquals(1, math.substract(4, 3));}@Testpublic void testMultiply() {}@Testpublic void testDivide() {assertEquals(3, math.divide(6, 2));}}⑤测试结果显然testSubstruct方法有错误。
黑盒测试作业参考答案
第三章黑盒测试参考答案(注意:答案仅供参考,若有误,请自行修改。
)1、某保险公司计算保险费率。
计算方式为10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下表所示。
其中,年龄有效输入范围为1-100;抚养人数可输入“无”或1-9之间的整数。
(1)通过对程序功能的分析,其等价类表如下所示:该函数要求输入三个变量month、day和year,输出该日期之后一天的日期。
其中year 的取值范围为:1900-2079。
如果输入的日期组合不合法,则显示“无效的输入日期”。
使用等价类划分进行测试用例设计。
参考答案:参考答案略。
4、某软件的一个模块的需求规格说明书中描述:(1)年薪制员工:严重过失,扣年终风险金的4%;过失,扣年终风险金的2%。
(2)非年薪制员工:严重过失,扣当月薪资的8%;过失,扣当月薪资的4%。
请绘制出因果图和判定表,并给出相应的测试用例。
参考答案:(1)根据程序的规格说明,原因和结果如下:原因:C1:年薪制员工。
(1:是年薪制员工;0:非年薪制员工)C2:严重过失C3:过失结果:e1:扣年终风险金的4%e2:扣年终风险金的2%e3:扣当月薪资的8%e4:扣当月薪资的4%(2)因果图:略(3)决策表:规则选项12345678条件C1:年薪制员工11110000 C2:严重过失11001100 C3:过失10101010结果e1:扣年终风险金的4%√e2:扣年终风险金的2%√e3:扣当月薪资的8%√e4:扣当月薪资的4%√不操作√√不可能√√用例输入数据预期输出TC1年薪制员工,严重过失扣年终风险金的4%TC2年薪制员工,过失扣年终风险金的2%TC3非年薪制员工,严重过失扣当月薪资的8%TC4非年薪制员工,过失扣当月薪资的4%5、有一个处理单价为1元5角钱的盒装饮料的自动售货机软件,若投入1元5角硬币,按下“可乐”、“雪碧”或“橙汁”按钮,相应的饮料就送出来。