讲课黑盒测试练习题答案
- 格式:doc
- 大小:205.50 KB
- 文档页数:6
实验七-黑盒测试之场景法测试实验(参考答案)实验七黑盒测试之场景法测试实验1.1 实验目的1、通过对简单程序进行黑盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。
2、掌握黑盒测试的基础知识,能熟练应用场景法进行测试用例的设计。
1.2 实验平台操作系统:Windows 7或Windows XP1.3 实验内容及要求1、练习1软件系统几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。
场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。
下面是对某IC卡加油机应用系统的基本流和备选流的描述。
基本流A;序号用例名称用例描述1 准备加油客户将IC加油卡插入加油机2 验证加油加油机从加油卡的磁条中读取账户代码,并检查它是否属于卡可以接收的加油卡3 验证黑名单加油机验证卡账户是否存在于黑名单中,如果属于黑名单,加油机吞卡4 输入购油量客户输入需要购买的汽油数量5 加油加油机完成加油操作,从加油卡中扣除相应金额6 返回加油卡退还加油卡备选流:序号用例名称用例描述B 加油卡无效在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC 卡,加油机退卡,并退出基本流C 卡账户属于黑在基本流A3过程中,判断该卡账产属于黑名单,例如:已经挂失,加油机名单吞卡退出基本流D 加油卡账面现金不足系统判断加油卡内现金不足,重新加入基本流A4,或选择退卡E 加油机油量不足系统判断加油机内油量不足,重新加入基本流A4,或选择退卡(1)使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。
场景1:A场景2:A、B场景3:A、C场景4:A、D场景5:A、E(2)场景中的每一个场景都需要确定测试用例,一般采用矩阵来确定和管理测试用例。
如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。
⼤连东软信息学院软件测试⿊盒测试⽅法习题及答案讲解/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。
请采⽤等价类划分的⽅法设计测试⽤例。
习题020501 用等价类划分法设计8位长数字类型用户名登录操作的测试用例,应该分成()个等价区间.A。
2 B. 3 C。
4 D. 6输入数据预期结果12345678合法1234567位数不足123456789位数过长abcdefgh非法字符0502输入数据预期结果!@#$%^&()合法(无字符)位数过短12736…2179(共256位)位数过长/?|\非法字符0503输入数据预期结果20合法13年龄小于范围41年龄大于范围abcd非法字符0504 某工厂招工,规定报名者年龄应在20周岁——39周岁之间,即出生年月不得早于1960年7月,不晚于1979年6月。
报名程序具有自动检验输入数据的功能,如果出生年月不属于上述范围将拒绝接受,并显示“年龄不合格”等出错信息。
输入数据预期结果1966。
06合法1960。
06时间过早1980.01时间过晚一九六五年七月非数字19777少于6位1977777多余6位197713大于12197700小于10505 新浪邮箱名,其输入要求如下:1. 4~16个字符2。
支持英文小写、数字、下划线3。
不支持全部为数字或下划线输入数据预期结果qq_fhg409522817合法0506用等价类划分法设计下面的测试用例:有一个报表系统,要求用户输入要处理的报表的日期,假设日期的范围为2000年1月到2020年12月。
如果用户输入的日期不在这个范围内,则显示错误码信息,并且此系统规定日期由年月六位数字组成,前4为代表年,后两位代表月。
1)请列出等价类表(包括有效和无效的等价类)2)根据1)中的等价类表,设计能覆盖所有等价类的测试用例。
要求包括输入数据和预期输出,并指出各个测试用例所能符合的等价类编号0507 NextDate 函数包含三个变量:month 、 day 和 year ,函数的输出为输入日期后一天的日期。
例如,输入为 2006年3月 7日,则函数的输出为 2006年3月8日。
一、简答题1、功能测试的定义,并指出几种主要的测试用例设计方法。
答:功能测试也叫黑盒测试或数据驱动测试,是根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。
测试用例设计的主要方法有:等价类划分方法、边界值分析方法、错误推测法、因果图法、判定表方法、功能图法、正交试验法。
2、什么叫集成测试?集成测试策略中增值式测试和非增值式测试是什么?答:集成测试又称组装测试、联合测试、子系统测试或部件测试。
集成测试是在单元测试的基础上,将所有的模块按照设计要求组装成子系统或系统进行的测试活动。
增值式测试就是把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,直至将所有的单元模块组装成为符合要求的软件系统。
非增值式测试是先分别测试每个模块,再把所有模块按设计要求放在一起组合成所要的程序。
3、简述软件测试的主要过程答:软件测试过程按4个步骤进行,即单元测试、组装测试、确认测试和系统测试。
单元测试集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。
然后,进行集成测试,根据设计规定的软件体系结构,把已经测试过的模块组装起来,在组装过程中,检查程序结构组装的正确性。
确认测试则是要检查已经实现的软件是否满足了需求规格说明书中的各种需求,以及软件配置是否完全、正确。
最后是系统测试,把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。
严格地说,系统测试已经超出了软件工程的范围。
二、设计题1、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。
算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( )::void SelectSort ( datalist & list ) {//对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。
实验七黑盒测试之场景法测试实验(参考答案)1.1实验目的1、通过对简单程序进行黑盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。
2、掌握黑盒测试的基础知识,能熟练应用场景法进行测试用例的设计。
1.2实验平台操作系统:Window7或Window某P1.3实验内容及要求1、练习1软件系统几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。
场景法就是通过用例场景描述业务操作流程,从用例开始到结束遍历应用流程上所有基本流(基本事件)和备选流(分支事件)。
下面是对某IC卡加油机应用系统的基本流和备选流的描述。
基本流A;序号用例名称123456准备加油验证加油卡验证黑名单输入购油量加油返回加油卡用例描述客户将IC加油卡插入加油机加油机从加油卡的磁条中读取账户代码,并检查它是否属于可以接收的加油卡加油机验证卡账户是否存在于黑名单中,如果属于黑名单,加油机吞卡客户输入需要购买的汽油数量加油机完成加油操作,从加油卡中扣除相应金额退还加油卡备选流:序号用例名称B加油卡无效用例描述在基本流A2过程中,该卡不能够识别或是非本机可以使用的IC卡,加油机退卡,并退出基本流CDE卡账户属于在基本流A3过程中,判断该卡账产属于黑名单,例如:已经挂失,加黑名单油机吞卡退出基本流加油卡账面系统判断加油卡内现金不足,重新加入基本流A4,或选择退卡现金不足加油机油量系统判断加油机内油量不足,重新加入基本流A4,或选择退卡不足(1)使用场景法设计测试案例,指出场景涉及到的基本流和备选流,基本流用字母A表示,备选流用题干中描述的相应字母表示。
场景1:A场景2:A、B场景3:A、C场景4:A、D场景5:A、E(2)场景中的每一个场景都需要确定测试用例,一般采用矩阵来确定和管理测试用例。
如下表所示是一种通用格式,其中行代表各个测试用例,列代表测试用例的信息。
本例中的测试用例包含测试用例、ID、场景涤件、测试用例中涉及的所有数据元素和预期结果等项目。
黑盒测试作业参考答案.黑盒测试参考答案第三章(注意:答案仅供参考,若有误,请自行修改。
) 1、某保险公司计算保险费率。
,点以上保险费率为0.6%计算方式为10点及10;而点数又是由投保0.1%点以下保险费率为10人的年龄、性别、婚姻状况和抚养人数来决定,年龄有效输入范围其中,具体规则如下表所示。
之间的1-9为1-100;抚养人数可输入“无”或整数。
使用等价类划分进行测试用例设计抚养人性婚年未 M F 已20~39 40~59 0.人最多参考答案:(1)通过对程序功能的分析,其等价类表如下所示:输入条有效等价类无效等价类件 20~39岁(1)小于1岁 40~59岁(11)年龄(2)于100岁大或岁1~19(12)岁60~100 (3).M' (4)除‘M'和‘F'之‘性别‘F 外的其他字符(13)'(5)(外除已婚和未婚之6)已婚婚姻未婚(7的其他字符(14))的外字除无和数之(8)无15)其他字符抚养人(9) 1~6人((数16)1 小于16~19大)设计测试用例表,覆盖等价类。
(输入数覆盖预期输保险费等价性0.6%1 4 6 8127M0.6%2 5 7 92F2503 4 6100.13770M提示“年龄11 4 6 8已4 M 无 0在之间”1~100婚提示“年龄应未12 5 7 9 5 4 F 102 1~100 婚之间”在提示“性别应已1 13 6 8 306 无T”F或M输入婚1 4 14 8 提示“婚姻应离无为30 M 已婚或未7 婚婚”1 4 6 15提示“抚养M830之间的1-数提示“抚养1 4 6 16 -1930M1-之间的数1 4 6 17提示“抚养201030M1-之间的数2、NextDate函数。
该函数要求输入三个变量month、day和year,输出该日期之后一天的日期。
其中year的取值范围为:1900-2079。
如果输入的日期组合不合法,则显示“无效的输入日期”。
第1章一、判断分析题1.软件测试的目的是尽可能多的找出软件的缺陷。
()2.软件测试的目的是证明软件没有错误。
()3.测试组负责软件质量。
( )4.程序的效率与程序的复杂性相关。
( )5.软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
( )6.测试程序仅仅按预期方式运行就行了。
( )7.好的测试员不懈追求完美。
( )8.不存在质量很高但可靠性很差的产品。
( )9.测试组负责软件质量。
( )10.测试是为了验证该软件已正确地实现了用户的要求。
( )11.发现错误多的程序模块,残留在模块中的错误也多。
( )12.程序效率的提高主要应通过选择高效的算法来实现。
( )13.测试人员要坚持原则,缺陷未修复完坚决不予通过。
()14.项目立项前测试人员不需要提交任何工件。
()15.缺陷跟踪系统只针对对测试人员来使用。
( )16.从用户软件开发者的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。
( )17.软件项目在进入需求分析阶段,测试人员应该开始介入其中。
( )18.测试是提高产品质量根本手段。
()19.项目立项前测试人员不需要提交任何工件。
()20.测试人员要坚持原则,缺陷未修复完坚决不予通过。
()21.代码评审员一般由测试员担任。
()22.代码评审是检查源代码是否达到模块设计的要求。
()二、简答题1.什么是软件测试?软件测试的目的和作用是什么?2.简述软件测试的目的和原则。
3.软件缺陷产生的原因?4.在软件工程或软件测试中,哪些软件问题被称为软件缺陷?5.软件的缺陷等级应如何划分?6.针对缺陷采取怎样的管理措施?7.在测试实施之前,如何才能确定好的测试策略和测试方法?8.什么是软件测试,以及软件测试的意义?9.什么是软件测试?什么是测试用例,测试用例必须包括那几部分?10.简述静态测试和动态测试的区别?11.分析软件测试的复杂性。
12.简述你对测试工作的认识过程、在以后的工作的一些建议。
黑盒测试方法习题及答案//模板说明//凡是用//开头的行都是注释行,不会作为试题内容导入到题库中//每个试题间用空行隔开//试题的开头行是题干,前面不能有注释行并列在上面,否则这个试题都无效;如要注释则在注释后再加一空行隔开/题干、内容、答案、分数、难度、试题分类和题型是一个试题必须项,其它的都是可选的,可选的属性可以不写//试题开头可以有序号,格式为\序号.\后接题干内容;也可以不写序号,系统会自动加上序号以便区分试题//作为格式用的符号如\,\是不分半角全角的,半角全角都有效//可选项直接在题干后以字母和点开头,如A.、B.并且要求大写。
//填空题的空位处用三个或三个以上的\即\来表示,用\来分隔多个空的答案,如果一个空有多个标准答案请用\隔开//答题时间格式为00:00:00,即\小时:分钟:秒\//可用的状态有:正常、禁用,如果没有,则默认为正常//可用的操作题类型有:Word、E某cel、PowerPoint、Viio,默认为Word//如果试题内容里有换行,则必需要在这段内容前后分别用”{回车换行....回车换行}”括起来。
//如果试题内容中包含有'{'或'}',请用'\\'把它们转义为:'\\{'或'\\}'。
//不存在试题分类属性则表示试题直接导入到当前选中试题分类中,如果存在,如:”试题分类:行业背景及公司情况简介”,那么试题会导入到当前选中试题分类下的”行业背景及公司情况简介”分类中,如果没有”行业背景及公司情况简介”分类的话,会在当前选中试题分类下先自动创建”行业背景及公司情况简介”分类。
//试题分类可以是多层结构,在名称间用\号分隔,表示试题分类下的子试题分类,如:12-客户服务中心题库/行业背景及公司情况简介//如果多个试题的某些属性相同,如同一试题分类,同一题型,或相同分数,可以用单独的公共属性行来表示,而不必每个试题都写,格式如下:[属性名]:属性值,每个上下要用空行隔开着为独立行//如果有公共属性时,当试题中没有该属性,则试题该属性引用公共属性值,当试题中有该属性,则试题该属性引用本试题的属性值。
黑盒测试用例设计方法-案例21、等价类划分案例有一个程序读入3个整数,把这3个整数作为一个三角形的3条边的长度值。
这个程序要打印出信息,说明这3个整数是否能组成三角形,如果能组成三角形,说明这个三角形是不等边、等腰或等边三角形。
解答:分析题目中给出和隐含的对输入条件的要求:(1)整数(2)三个数(3)非零数(4)正数(5)两边之和大于第三边(6)等腰(7)等边如果三条边满足条件(1)~ (4),则输出下列四种情况之一:☐如果不满足条件(5),则程序输出为“非三角形”☐如果三条边相等即满足条件(7),则程序输出为“等边三角形”☐如果只有两条边相等、即满足条件(6),则程序输出为“等腰三角形”☐如果三条边都不相等,则程序输出为“不等边三角形”可以设定3条边分别为A,B,C。
如果他们能构成三角形的3条边,必须满足:0<A, 0<B, 0<C,且A+B>C,B+C>A,A+C>B如果是等腰,要判断A=B,或B=C,或A=C如果是等边,要判断A=B,且B=C,且A=C2、边界值案例Void CMyClass::Grow(int years) {mAge += years;if(mAge<10)mPhase = "儿童";else if(mAge<20)mPhase = "少年";else if(mAge<45)mPhase = "青年";else if(mAge<60)mPhase = "中年";elsemPhase = "老年";}测试用例3、因果图案例1某软件规格说明书包含这样的要求:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。
找出原因和结果:原因:C1——第一列字符是AC2——第一列字符是BC3——第二列字符是一数字结果:E1——给出信息LE2——修改文件E3——给出信息M生成因果图转换为判定表4、因果图案例2有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。
习题解答第三章黑盒测试及其用例1、NextDate函数(P28)请使用等价类划分法为NextDate函数列出输入域等价类表,并设计相应的测试用例。
解答:NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。
要求输入变量month、day和year均为整数值,并且满足下列条件:条件1 1≤month ≤12条件2 1≤day ≤31条件3 1912≤year ≤2050分析程序规格说明中给出和隐含的对输入条件的要求。
列出等价类表*年份:闰年、非闰年(1912≤year ≤2050)*月份:1-12月*天数:1、3、5、7、8、10、12(31天),4、6、9、11(30天),2(28或29)等价类表2、找零钱最佳组合(P47)假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。
假定此商店的货币面值只包括:50元(N50)、10元(N10)、5元(N5)、1元(N1) 四种。
请结合等价类划分法和边界值分析法为上述程序设计出相应的测试用例。
解答:根据等价类划分法和边界值分析法的基本定义,得到下列基本认识:Step1.输入:商品价格R和顾客付款P有以下情况:R > 100 0 < R < = 100 R <= 0 P > 100 R<= P <= 100 P < RStep2.输出:N50 = 1 N50 = 0 4 > N10 >= 1 N10 = 0 N5 = 1 N5 = 0 4 > N1 >= 1 N1 = 0 Step3.分析规格中每一决策点之情形,以RR1, RR2, RR3 表示计算要找50, 10, 5 元货币数时之剩余金额。
R > 100R <= 0 P > 100 P < R RR1 >= 50 RR2 >= 10 RR3 >= 5Step4. 由上述之输入/ 输出条件组合出可能的情形。
软件工程黑盒测试考试题目一、选择题(共10题,每题2分,共20分)1. 黑盒测试的主要目的是:A. 检查代码的正确性B. 测试系统的可用性C. 检查系统的内部结构D. 分析系统的性能2. 哪种黑盒测试方法能够覆盖所有的路径?A. 等价类划分B. 边界值分析C. 决策表测试D. 想象法3. 在进行黑盒测试时,下面哪项是正确的?A. 只需关注输入与输出B. 只需关注程序内部C. 只需关注系统的可靠性D. 只需关注用户的操作4. 下列哪个是黑盒测试的特点?A. 可以完全覆盖程序的全部代码B. 不需要关注程序的内部结构C. 可以检查代码的正确性D. 可以找到所有的编程错误5. 在黑盒测试中,下列哪个是一个优秀的测试用例设计准则?A. 等价类划分B. 随机选择输入数据C. 依赖于经验和直觉D. 只测试边界值6. 功能测试是黑盒测试的一种类型,其主要目的是:A. 检查程序是否按照设计要求运行B. 确保程序没有错误C. 检查程序的可用性D. 检查程序的性能7. 在进行黑盒测试时,常用的测试方法是:A. 语句覆盖B. 判定覆盖C. 边界值分析D. 等价类划分8. 在黑盒测试中,下列哪个是正确的?A. 测试范围不能限制在输入和输出上B. 测试用例的设计不需要考虑边界值C. 等价类划分只适用于数字类型的输入D. 增强的判定覆盖方法可以提高测试的效率9. 在进行黑盒测试时,如何选择适当的测试用例?A. 只需从测试用例库中随机选择几个即可B. 只需从测试用例库中选择执行时间最短的C. 需要考虑系统需求和功能进行选择D. 只需选择一种测试技术进行测试即可10. 黑盒测试中的决策表测试主要用于:A. 检查系统的安全性B. 检查系统的性能C. 检查算法的正确性D. 检查程序的正确性二、简答题(共5题,每题10分,共50分)1. 请简要解释黑盒测试和白盒测试的区别并举例说明。
2. 请解释等价类划分的概念,并说明为什么等价类划分是一种有效的测试方法。
第三章黑盒测试参考答案(注意:答案仅供参考,若有误,请自行修改。
)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) 决策表:(4) 用例表: 5、有一个处理单价为1元5角钱的盒装饮料的自动售货机软件,若投入1元5角硬币,按下“可乐”、“雪碧”或“橙汁”按钮,相应的饮料就送出来。
若投入的是2元硬币,在送出相应的饮料同时退换5角硬币。
请绘制出因果图和判定表,并给出相应的测试用例。
参考答案:(1) 根据程序的规格说明,原因和结果如下: 原因:C1——投入1元5角硬币 C2——投入2元硬币 C3——按下可乐按钮 C4——按下雪碧按钮 C5——按下橙汁按钮 结果:E1——退还5角硬币 E2——送出可乐饮料 E3——送出雪碧饮料 E4——送出橙汁饮料 中间结点: 11——已投币 12——已按钮 (2)因果图:(3)判定表:(4)测试用例表。
/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。
请采用等价类划分的方法设计测试用例。
答案:用例1:0x7F,覆盖等价类(1)(4)(6)(8)用例2:-0Xb,覆盖等价类(1)(4)(6)(8)用例3:0X0,覆盖等价类(1)(4)(6)(8)用例4:0x,覆盖等价类(1)(7)用例5:A7,覆盖等价类(2)用例6:-1A,覆盖等价类(3)用例7:0X8h,覆盖等价类(1)(5)用例8:0x80,覆盖等价类(1)(4)(10)用例9:-0XaB,覆盖等价类(1)(4)(9)分数:10题型:解答题操作题类型:Word难度:37.以下是一软件规格说明,请按照要求回答问题。
黑盒测试方法课程练习题练习1某城市的电话号码由三部分组成。
第一部分为地区码:空白或三位数字;第二部分为前缀:非0或1开头的三位数;第三部分为主要电话号码:八位数字。
请用等价分类法来设计测试用例。
划分等价类:输入等价类有效等价类无效等价类地区码空白(1)三位数字(2)不是空白(3)有非数字字符(4)少于三位数字(5)多于三位数字(6)前缀不是0开头(7)不是1开头(8)三位数字(9)0开头(10)1开头(11)有非数字字符(12)少于三位数字(13)多于三位数字(14)电话号码八位数字(15)有非数字字符(16)少于三位数字(17)多于三位数字(18)设计测试用例:选取数据覆盖等价类编号234-12345678 (1)(7)(8)(9)(15)123-234-12345678 (2)(7)(8)(9)(15)123-234-12345678 (3)1we-234-12345678 (4)12-234-12345678 (5)1234-234-12345678 (6)123-012-12345678 (10)123-123-12345678 (11)123-a12-12345678 (12)123-23-12345678 (13)123-2345-12345678 (14)123-234-1234567a (16)123-234-12334 (17)123-234-123456789 (18)练习2某城市的电话号码由三部分组成。
第一部分为地区码:空白或三位数字;第二部分为前缀:非0或1开头的三位数;第三部分为主要电话号码:八位数字。
等价类结合边界值法:选取数据覆盖等价类编号234-12345678 (1)(7)(8)(9)(15)123-234-12345678 (2)(7)(8)(9)(15)123-234-12345678 (3)1we-234-12345678 (4)12-234-12345678 (5)1-234-12345678 (5)1234-234-12345678 (6)12345-234-12345678 (6)123-012-12345678 (10)123-123-12345678 (11)123-a12-12345678 (12)123-23-12345678 (13)123-2-12345678 (13)123-2345-12345678 (14)123-23456-12345678 (14)123-234-12334 (17)123-234-123 (17)123-234-123456789 (18)123-234-12345678912 (18)练习3有一个处理单价为1元5角钱的盒装饮料的自动售货机软件。
等价类划分方法:
1.设有一个档案管理系统,要求用户输入以年月表示的日期。
假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。
现用等价类划分法设计测试用例,来测试程序的"日期检查功能"。
①、⑤、⑧,设计的测试用例如下:
测试数据期望结果覆盖的有效等价类
200211 输入有效①、⑤、⑧
3)为每一个无效等价类设计一个测试用例,设计结果如下:
测试数据期望结果覆盖的无效等价类
95June 无效输入②
20036 无效输入③
2001006 无效输入④
198912 无效输入⑥
200401 无效输入⑦
200100 无效输入⑨
200113 无效输入⑩
2.输入:用户密码
要求:
1)用户密码为6到8位。
2)必须含有字母和数的组合。
输出:如正确,输出正确的信息。
否则,输出相应的错误信息。
请结合等价类划分法设计出相应的测试用例。
4 abcdedf (1)(5)输入错误
5 1234567 (1)(6)输入错误
边界值分析方法:
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)画出因果图,如图所示。
所有原因结点列在左边,所有结果结点列在右边。
建立中间结点,表
示处理的中间状态。
中间结点:
11. 投入1元硬币且押下饮料按钮
12. 押下〖橙汁〗或〖啤酒〗的按钮
13. 应当找5角零钱并且售货机有零钱找
14. 钱已付清
3)转换成判定表:
4) 在判定表中,阴影部分表示因违反约束条件的不可能出现的情况,删去。
第16列与第32
列因什么动作也没做,也删去。
最后可根据剩下的16列作为确定测试用例的依据。
判定表分析方法
1.用决策表测试法测试以下程序:该程序有三个输入变量month、day、year(month、day 和year均为整数值,并且满足:1≤month≤12和1≤day≤31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。
习题:给出某一天(年,月,日),计算出它的下一天,取值范围为:
年:1000<= year <=3000 月:1<=month <=12 日:1<= day <=31
如 1999年3月4日的下一天是:1999年3月5日
要求:
输入:三个参数(年,月,日)
输出:如能正确计算,计算出它的下一天,
否则,输出相应的错误信息。
1)使用C语言编写程序实现
2)请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。
(1)代码如下:
#include<stdio.h>
void main()
{
int year;
int month,maxmonth=12;
int day,maxday;
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
if(year<1000 || year>3000)
{
printf("输入错误!请从新输入!\n");
printf("请输入年份:(1000~3000)");
scanf("%d",&year);
}
printf("请输入月份:(1~12)");
scanf("%d",&month);
if(month<1 || month>12)
{
printf("输入错误!请从新输入!\n");
printf("请输入月份:(1~12)");
scanf("%d",&month);
}
if(month==4||month==6||month==9||month==11)
maxday=30;
else if(month==2)
{
if(year%400==0 || year%4==0)
maxday=28;
else
maxday=29;
}
else
maxday=31;
printf("请输入日份:(1~31)");
scanf("%d",&day);
if(day<1 || day>maxday)
{
printf("输入错误!请从新输入!\n");
printf("请输入日份:(1~31)");
scanf("%d",&day);
}
if(month==maxmonth && day==maxday)
{
year=year+1;
month=1;
day=1;
}
else if(day==maxday)
{
month=month+1;
day=1;
}
else
day=day+1;
printf("下一天是%d年%d月%d日",year,month,day); }
(2)
等价类测试用例。