版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单元3 黑盒测试 2目 录测试用例设计概述1等价类划分法2边界值法3因果图法4决策表法5正交实验法6 测试用例 设计概述测试用例在软件测试中的作用:(1)指导测试的实施。 (2)规划测试数据的准备。 (3)编写测试脚本的“设计规格说明书”。 (4)评估测试结果的度量基准。 (5)分析缺陷的标准。引例下面的文本框只允许输入0-100之间的整数,请问如何进行测试?确定请输入:取消5阳山书屋引例2现有一个小程序,能够求出三个在-10000到+10000间整数中的最大者,程序界面如下:如何测试?引例3:三角形问题三角形问题 输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三
2、角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及构不成三角形。 现在要求输入三个整数a、b、c,必须满足以下条件: 条件1 1a100 条件4 ab+ c 条件2 1b100 条件5 ba+ c 条件3 1c100 条件6 ca+ b测试用例的定义和特征测试用例的定义:(1)测试用例是为特定的目的而设计的一组测试输入、 执行条件和预期的结果。(2)测试用例是执行的最小实体。 测试用例的特征:(1)最有可能抓住错误的;(2)不是重复的、多余的;(3)一组相似测试用例中最有效的;(4)既不是太简单,也不是太复杂。测试用例具体描述信息见书设计测试用例的基本准则测试用例的代
3、表性 能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。3、设计测试用例的步骤 测试需求分析。 业务流程分析。测试用例设计。测试用例评审。测试用例更新完善。黑盒测试黑盒测试也称为数据驱动测试,在测试时,把程序看作是一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特征的情况下,测试者在程序接口处进行测试。黑盒测试着眼于程序的外部结构,只针对软件界面和软件的功能进行测试。测试的主要依据
4、是规格说明书和用户手册。黑盒测试用例设计的几种方法(一)等价类划分法(二)边界值分析法(三)决策表法(四)因果图法(五)场景法(六)正交实验法13三角形问题、NextDate问题、佣金问题、自动饮料机网上订餐系统 系统的主要功能人员管理:注册,修改菜品管理:增加,修改登录,订餐,查询待测系统说明14待测系统界面 网上订餐系统界面1234567815任务1:等价类方法123知识准备任务实施任务陈述45任务拓展项目实训16任务1陈述本任务介绍了黑盒测试的流程,等价类的基本概念。通过三角形问题,介绍了如何使用等价类方法设计测试用例,包括等价类的划分方法,有效等价类、无效等价类,等价类测试的分类,等价
5、类测试的指导方针等。17任务1陈述三角形问题描述输入3个整数a、b和c分别作为三角形的3条边,要求a、b 和c必须满足以下条件:程序输出是由这3条边构成的三角形类型:等边三角形、等腰三角形、一般三角形或非三角形。Con1 1a100Con2 1b100Con3 1c100Con4 ab+cCon5 ba+cCon6 ca+b18任务1陈述如果输入值不满足这些条件中的任何一个,程序给出相应的信息。例如,“边c的取值不在允许取值的范围内”等。如果a、b和c满足Con1、Con2和Con3,则输出下列4种情况之一:如果不满足条件Con4、Con5和Con6中的一个,则程序输出为“非三角形”。如果三条
6、边相等,则程序输出为“等边三角形”。如果恰好有两条边相等,则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。19知识点列表黑盒测试等价类划分等价类设计测试用例的方法20流程需求说明测试用例测试结果产生输出验证输入21设计测试用例实现一个对(0 x100)的实数进行开平方运算 y = sqrt(x)的程序的测试。将所有的实数(输入域x)进行划分,可以分成:正实数、0 和 负实数。我们选定+1.4444代表正实数,-2.345代表负实数。思考等价类方法可令测试事半功倍。 完备,无冗余22等价类是输入域的某个子集合,而所有的等价类的并集是整个输入域。在子集合中,各个输入数据
7、对于揭露程序中的错误是等效的。等价类定义23等价类测试的假设: 测试某等价类的代表值,就等效于对这个等价类中其他值的测试。 等价类测试的思想: 把全部的输入数据划分成若干个等价类,在每一个等价类中取一个数据来进行测试。等价类测试24有效等价类 是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。无效等价类 是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。等价类测试检验正常功能检验异常处理等价类划分法的思想 定义:将程序的输入域划分为若干部分,然后从每个部分中选取少数代表性数据当作测试用例。原因:由于实现穷举测试的不可能性,只有从大量的可能数据中选取一部分作为测试用
8、例。效果:经过类别划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值。手段:在设计测试用例时,在需求说明的基础上划分等价类,列出等价表,从而确定测试用例。等价类的划分原则(1)按照区间划分在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。例:程序输入条件为小于100大于10的整数x,则有效等价类为10 x100,两个无效等价类为x10和x100。例:输入学生成绩,范围是0到100 例:程序输入x取值于一个固定的枚举类型1,3,7,15,且程序 中对这4个数值分别进行了处理,则有效等价类为x=1、x=3、 x=7、x=15,无效等价类为x1,3,7
9、,15的值的集合。(2)按照数值划分在规定了一组输入数据(假设包括 n个 输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一。 (3)按照数值集合划分在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。 例:程序输入用户口令的长度必须是4位的串,可以确定一个邮箱等价类是串的长度为4,一个无效等价类长度不为4。(4)按照限制条件或规则划分在规定了输入数据必须遵守的规则或限制
10、条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符。(5)细分等价类在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。例:程序输入条件为以字符a开头、长度为8的字符串,并且字符串不包含a z之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以a开头的字符串、长度不为8的字符串和包含了a z之外其它字符的字符串。 等价类划分步骤(1)先考虑输入数据的类型(合法型和非法型)(2)再考虑数
11、据范围(合法型中的合法区间和非法区间)(3)画出示意图,区分等价类(4)为每一个等价类编号。(5)考虑输出,进行补充等价类划分法设计测试用例的步骤(1)确定等价类(2)建立等价类表,列出所有划分出的等价类 (3)从划分出的等价类中按以下的3个原则设计测试用例: A 为每一个等价类规定一个唯一的编号 B 设计一个新的测试用例,使其尽可能多的覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 C 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。 常见等价类划分测试形式针对是否对无效数据进行测试,可以将等价类测试分为两
12、种:标准等价类测试(也称,一般等价类测试)不考虑无效数据值,测试用例使用每个等价类中的一个值;通常,标准等价类测试用例的数量和最大等价类中元素的数目相等。健壮等价类测试出发点考虑了无效等价类;对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值举例:几种等价类划分法测试形式问题:某函数F有两个变量x1,x2.要求两输入变量的取值范围如下:a x1d,区间为a,b, (b,c) ,c,de x2 g,区间为e,f), f,gx1,x2的无效区间为:x1d; x2g(1)弱一般等价类测试特点: 不考虑无效数据,测试用例使用每个等价类中的一个值abc
13、defgx2x1x1,x2取值合理的区间(2)强一般等价类测试特点:每一个有效等价类要选择至少一个测试用例abcdefgx2x1(3)弱健壮等价类测试对于有效输入: 使用每个有效类的一个值对于无效输入: 测试用例只使用一个无效值,其余值都是有效的abcdefgx2x1(4)强健壮等价类测试每个有效等价类和无效等价类都至少要选择一个测试用例abcdefgx2x139某保险公司的人寿保险的保费计算方式为:投保额保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表 所示:保
14、费计算问题的等价类测试年龄 性别婚姻抚养人数 2039 4059 其它 M F 已婚 未婚 1人扣0.5点 最多扣3点(四舍五入取整) 6点 4点 2点 5点 3点 3点 5点40分析程序规格说明中给出和隐含的对输入条件的要求。年龄:一位或两位非零整数,值的有效范围为199性别:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚抚养人数:空白或一位非零整数(19)点数 :一位或两位非零整数,值的范围为199保费计算问题的等价类测试41等价类表输入条件 有效等价类 编号 无效等价类 编号 年龄 2039岁 1 4059岁 2 119岁 6099岁 3 小于1 12 大于99 13 性别
15、非英文字符 14 非单个英文字符 15 M 5除M和F之外的 其它单个字符 16 F 6 婚姻 已婚 7除已婚和未婚之外的其它字符 17 未婚 8 抚养人数 空白 9 除空白和数字之外的其它字符 18 16人 10小于1 19 69人 11 大于9 20 42测试用例测试用例编号 输入数据 预期输出 对应等价类年龄 性别 婚姻 抚养人数 保险费率 Test1 27 F 未婚 空白 0.6% 1,6,8,9Test 2 50 M 已婚 2 0.6% 2,5,7,10Test 3 70 F 已婚 7 0.1% 3,6,7,11Test 4 0 M 未婚 空白 无法推算 12,5,8,9Test 5
16、 100 F 已婚 3 无法推算 13,6,7,10Test 6 99 男 已婚 4 无法推算 14.Test 7 1 Child 未婚 空白 无法推算 15.Test 8 45 N 已婚 5 无法推算 16.Test 9 38 F 离婚 1 无法推算 17.Test 10 62 M 已婚 没有 无法推算 18.Test 11 18 F 未婚 0 无法推算 19.Test 12 40 M 未婚 10 无法推算 20.无效等价类取值每次覆盖一个无效等价类43任务1陈述三角形问题描述输入3个整数a、b和c分别作为三角形的3条边,要求a、b 和c必须满足以下条件:程序输出是由这3条边构成的三角形类型
17、:等边三角形、等腰三角形、一般三角形或非三角形。Con1 1a100Con2 1b100Con3 1c100Con4 ab+cCon5 ba+cCon6 ca+b44任务1陈述如果输入值不满足这些条件中的任何一个,程序给出相应的信息。例如,“边c的取值不在允许取值的范围内”等。如果a、b和c满足Con1、Con2和Con3,则输出下列4种情况之一:如果不满足条件Con4、Con5和Con6中的一个,则程序输出为“非三角形”。如果三条边相等,则程序输出为“等边三角形”。如果恰好有两条边相等,则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。45输出域等价类测试使用等价类
18、划分方法必须仔细分析程序规范说明。在三角形问题中,输入条件须满足3个要求:整数。3个数。取值在1100之间。仔细分析三角形问题,其无效输入就是分别不满足以上3个方面。因此,可以将这3个要求作为3个有效等价类,从而得出其等价类表46等价类表Test1=(3,4,5)便可覆盖有效等价类13。有效等价类编号无效等价类编号输入三个整数整数1一边为非整数4二边为非整数5三边为非整数63个数2只有一条边7只有二条边8超过三条边91a1001b1001c1003一边为010二边为011三边为012一边013二边014三边10016二边10017三边1001847健壮性测试用例abc覆盖的等价类abc覆盖的等
19、价类3.5454000123.54.555-3456-3-451437-3-4-515348101556516345691011016517045101011011011800511每次覆盖一个无效等价类48三角形问题有4种可能输出:等边三角形、等腰三角形,一般三角形和非三角形。利用这些信息可确定下列输出(值域)等价类。R1 = 边为a,b,c的等边三角形 R2 = 边为a,b,c的等腰三角形 R3 = 边为a,b,c的一般三角形 R4 = 边为a,b,c不能组成三角形 输出域等价类划分测试494个标准等价类输出域等价类划分测试用例测试用例abc预期输出Test1101010等边三角形Test
20、210105等腰三角形Test3345一般三角形Test4412非三角形507个健壮等价类测试用例测试用例abc预期输出Test1567一般三角形Test2-155 a值超出输入值定义域Test35-15b值超出输入值定义域Test455-1c值超出输入值定义域Test510155a值超出输入值定义域Test651015b值超出输入值定义域Test755101c值超出输入值定义域51使用等价类划分测试时,应注意以下几点:如果实现的语言是强类型语言(无效值会引起运行时出错),则没有必要使用健壮等价类测试。如果错误输入检查非常重要,则应进行健壮等价类测试。如果输入数据以离散值区间或集合的形式定义,
21、则等价类测试是合适的,当然也适用于变量值越界会造成故障的系统。等价类测试指导方针划分 加法器程序的等价类,给出测试用例。程序功能计算两个1100之间整数的和。思考要求给出的 测试用例 都是整数,如果输入的是小数、字符怎么办?只考虑了输入数据的范围,没有考虑输入数据的类型。考虑输入数据类型和范围 加数数值非数值整数小数(4)100(3)字母(5)特殊字符(6)空格(7)空白(8)551.对NextDate函数进行等价类测试与分析NextDate函数是一个有3个变量month(月份)、year(日期)和year(年)的函数。输出为输入日期后一天的日期。例如,如果输入为1998年6月18日,则Nex
22、tDate函数的输出为1998年6月19日。要求输入变量month, day和year都是整数值,并且满足以下条件:Con1 1month12Con2 1day31Con3 1800year2050如果month, day和year中任何一个条件失效,则NextDate都会产生一个输出,指明相应的变量超出了取值范围。例如,“无效输入日期。”练习:NextDate函数NextDate函数有三个变量month,day,year的函数,输出为输入日期下一天的日期。如:输入为2007年7月19日,输出为2007年7月20日。要求三个变量都为整数,且满足:条件:1 month 12条件2:1 day 3
23、1条件3:1800 year 2050(1)划分等价类1Year Month Day的有效值区间定义如下:M1=month: 1month 12D1=day: 1 day 31Y1=year: 1800 year 2050(1)划分等价类2无效等价类是:M2=month: month12D2=day: day31Y2=year: year2050弱一般等价类测试用例测试用例monthdayyear预期输出Test1Test2Test3Test467261529303120001996200220002000.6.161996.7.30输入日期不正确输入日期不正确59阳山书屋NextDate函数
24、的弱健壮等价类测试用例测试用例monthdayyear预期输出Test1Test2Test3Test4Test5Test6Test76-1136666151515-132151519122005200520052005171120511912.6.16month不在有效值内month不在有效值内day不在有效值内day不在有效值内year不在有效值内year不在有效值内60阳山书屋NextDate函数的强健壮等价类测试用例(部分)测试用例monthdayyear预期输出Test1Test2Test3Test4Test5Test6Test7-166-16-1-115-115-1-115-1191
25、8191817112005171117111711month不在有效值内day不在有效值内year不在有效值内month,day不在有效值内day,year不在有效值内month,year不在有效值内month,day,year不在有效值内61阳山书屋续:详细的等价类划分考虑对输入日期的处理:M1=month: month有30天M2=month: month有31天M3=month: month是2月D1=day: 1 day 28D2=day: day=29D3=day: day=30D4=day: day=31Y1=year: year=2000Y2=year: year是闰年Y3=ye
26、ar: year是平年强一般等价类测试用例测试用例monthdayyear预期输出Test1Test2Test3Test4Test5Test6Test7Test8Test9Test10Test11Test12Test13Test14Test156666666666667771515142929293030303131311514142000199620022000199620022000199620022000199620022000199620022000.6.161996.6.162002.6.152000.6.301996.6.302002.6.302000.6.31 (不可能的日期)1
27、996.6.31 (不可能的日期)2002.6.31 (不可能的日期)2000.7.1(无效输入) 1996.7.1(无效输入)2002.7.1 (无效输入)2000.7.161996.7.152002.7.1563阳山书屋测试用例monthdayyear预期输出Test16Test17Test18Test19Test20Test21Test22Test23Test24Test25Test26Test27Test28Test29Test30777777777222222292929303030313131141414292929200019962002200019962002200019962
28、0022000199620022000199620022000.7.301996.7.302002.7.302000.7.311996.7.312004.7.312000.8.11996.8.12002.8.12000.2.151996.2.152002.2.152000.3.11996.3.12002.3.1 (无效的输入日期)测试用例monthdayyear预期输出Test31Test32Test33Test34Test35Test362228883030303131312000199620022000199620022000.3.1无效输入日期1996.3.1无效输入日期2002.3.1
29、无效输入日期2000.9.1无效输入日期1996.9.1无效输入日期2002.9.1无效输入日期65阳山书屋66任务2: 边界值方法123知识准备任务实施任务陈述45任务拓展项目实训67任务2陈述本任务介绍了边界值测试的相关概念,通过“NextDate”函数问题,介绍了如何使用边界值方法设计测试用例,包括边界条件,次边界条件,边界值健壮性测试,边界值分析的局限性。68知识点列表边界值测试的相关概念边界值设计测试用例的方法当循环条件本应当判断“c、a+cb及b+ca时才能构成三角形。但如果把3个不等式中的任何一个大于号“”错写成大于等于号“”,那就无法构成三角形了。69问题引入错误更可能出现在输
30、入变量的极值附近。无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。70基本原理常见的边界值对16-bit 的整数而言 32767 和 -32768 是边界屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个循环的第 0 次、第 1 次和倒数第 2 次、最后一次边界值分析法的原则1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。 例如,如果程序的规格说明中规定:重量在10公斤至50公斤范围内的邮件,其邮费计算公式
31、为。作为测试用例,我们应取10及50,还应取10.01,49.99,9.99及50.01等。边界值分析法的原则2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据。 比如,一个输入文件应包括1255个记录,则测试用例可取1和255,还应取0及256等。边界值分析法的原则 3)将规则1)和2)应用于输出条件,即设计测试用例使输出值达到边界值及其左右的值。 例如,某程序的规格说明要求计算出每月保险金扣除额为0至1165.25元,其测试用例可取0.00及1165.24、还可取一0.01及116526等。 再如一程序属于情报检索系统,要求每次最少显示1
32、条、最多显示4条情报摘要,这时我们应考虑的测试用例包括1和4,还应包括0和5等。 4)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。屏幕上光标在最左上、最右下位置报表的第一行和最后一行数组元素的第一个和最后一个边界值分析法的原则 5)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。对16-bit 的整数而言 32767 和 -32768 是边界 6)分析规格说明,找出其它可能的边界条件。如果程序读写软盘尝试:保存一个尺寸极小,甚至只有一项的文件。然后保存一个很大的刚好在软盘容量限制之内的文件。保存空文
33、件。保存尺寸大于软盘容量的文件。77可能的边界如果程序允许在一张纸上打印多个页面尝试:只打印一页打印允许的最多页面打印0页多于所允许的页面(如果可能的话)78可能的边界一些可可能与边界有关的数据类型有:数值、速度、字符、地址、位置、尺寸、数量等考虑这些数据类型的下述特征:第一个/最后一个、最小值/最大值、开始/完成、超过/在内、空/满、最短/最长、最慢/最快、最早/最迟、最高/最低、相邻/最远等。79可能的边界在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈
34、现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。80次边界条件计算机是基于二进制进行工作的,因此,软件的任何数值运算都有一定的范围限制。812的幂次方项范围或值位(bit)0 或 1字节(byte)0 255字(word)065535(单字)或 04294967295(双字)千(K)1024兆(M)1048576吉(G) 1073741824假设某种通信协议支持256条命令,为了提高数据传输效率,通信软件总是将常用的信息压缩到一个很小的单元中,必要时再扩展为大一些的单元。比如将常用的15条命令压缩为一个半字节数据,在遇到第16256之
35、间的命令时,软件转而发送一个一字节的命令。为了覆盖所有可能的2的幂次方次边界,要考虑临近半字节边界的14、15和16,以及临近字节边界的254、255和256822的幂次方在计算机软件中,字符也是很重要的表示元素,其中ASCII和Unicode是常见的编码方式。下表中列出了一些常用字符对应的ASCII码值。83ASCII表字符 ASCII值字符 ASCII值 字符 ASCII值 字符 ASCII值 Null0250B66a97Space32957Y89b98/47:58Z90y1210486491z122149A6596123如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过
36、这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多1个、比最小个数少1个的数作为测试数据。根据程序规格说明的每个输出条件,使用原则 (1) (2) 。84边界值设计测试用例原则如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个和 最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。分析程序规格说明,找出其它可能的边界条件。85边界值设计测试用例原则在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值 表示方法min、min+、n
37、om、max-、和max 86取值一个有两个变量x1和x2的程序F,其中x1a,b和x2c,d。程序F的输入空间(定义域)如图所示。带阴影矩形中的任何点都是程序F的有效输入。87组合基于“单故障”的假设使所有变量取正常值,只使一个变量分别取最小值、略高于最小值、略低于最大值和最大值。88组合除了使用五个边界值分析取值,还采用:一个略超过最大值(max+)的取值一个略小于最小值(min-)的取值89边界值健壮性测试(1)三角形组成问题程序的边界值测试【例4-3】三角形组成问题描述中,要求边长为正整数,其输入域边界下限值为1,上限值为100。 其中 1、2、99、100为边界值。测试用例abc预期
38、输出Test 1Test2Test3Test4Test560606050506060605050126099100等腰三角形等腰三角形等边三角形等腰三角形非三角形Test6Test7Test8Test960605050129910060605050等腰三角形等腰三角形等腰三角形非三角形Test10Test11Test12Test1312991006060505060605050等腰三角形等腰三角形等腰三角形非三角形【例4-4】在NextDate函数中,规定了变量mouth、day、year,其相应的取值范围为:1 mouth 12, 1 day 31, 1912 year 2050 其中191
39、1、1912、1913、2049、2050、2051 year边界值;1、1、2、11、12、13 mouth边界值;1、1、2、30、31、32 day边界值。测试用例Monthdayyear预期输出Test 1Test2Test3Test4Test5Test6Test766666661515151515151519111912191319752049205020511911616191261619136161975616204961620506162051616Test8Test9Test10Test11Test12Test136666661123031322001200120012001
40、20012001day超出1312001.6.22001.6.32001.7.1输入日期超界day超出131Test14Test15Test16Test17Test18Test19112111213151515151515200120012001200120012001month超出1122001.1.162001.2.162001.11.162001.12.16month超出112某酒水销售公司指派销售员销售各种酒水,其中白酒卖168元/瓶,红酒卖120元/瓶,啤酒卖5元每瓶。对于每个销售员,白酒每月的最高供应量为5000瓶,红酒为3000瓶,啤酒为30000瓶,各销售员每月至少需售出白酒5
41、0瓶,红酒30瓶,啤酒300瓶。奖金计算方法如下2万元以下(含):4%2万元(不含)到4.5万(含):1%4.5万元以上(不含):0.5%92佣金问题的边界值测试从输入角度分析该问题。该问题的输入有3个,其对应的等价类划分为:白酒数,有效等价类50,5000红酒数,有效等价类30,3000啤酒数,有效等价类300,30000按照边界值取值方法,对每个输入分别取7个值。白酒数,49,50,51,2500,4999,5000,5001红酒数,29,30,31,1500,2999,3000,3001啤酒数,299,300,301,15000,29999,30000,3000193佣金问题的边界值测试
42、根据边界值组合测试用例规则,保留其中一个变量,让其余变量取正常值,共可以得到6*3+1=19个测试用例94佣金问题的边界值测试测试用例白酒红酒啤酒销售额雇预期输出Test149150015000263232输入非法Test250150015000263400佣金: 2142Test351150015000263568佣金: 2142.84Test42500150015000675000佣金: 4200Test549991500150001094832佣金: 6299.16Test650001500150001095000佣金: 6300Test750011500150001095168输入非法
43、.从输出角度对该程序进行测试。因为销售员每月至少需售出白酒50瓶,红酒30瓶,啤酒300瓶,此时销售额为1.35万。至少需售出白酒5000瓶,红酒3000瓶,啤酒30000瓶,此时销售额为135万。销售额等价类划分为: 1.35,2、(2,4.5、(4.5,135对此等价类分别取边界值为: 略小于1.35,1.35,略大于1.35,1.7, 略小于2,2,略大于2,3.5 略小于4.5,4.5,略大于4.5,70 略小于135,135,略大于135,95佣金问题的边界值测试测试用例白酒红酒啤酒销售额雇预期输出Test1503029913495输入非法Test2503030013500佣金: 5
44、40Test3503030113505佣金: 540.2Test4505052017000佣金: 680Test5606054319995佣金: 799.8Test6606054420000佣金: 800Test7606054520005佣金: 800.05.96佣金问题的边界值测试?思考:如何选择测试用例考虑测试用例的无冗余和完备性,还应选择 Test1、Test7、Test8、Test13、Test14、Test19,验证程序的健壮性。从输入角度分析该问题。该问题的输入有3个,其对应的等价类划分为:month,有效等价类1,12day,有效等价类1,31year,有效等价类1800,205
45、0按照边界值取值方法,对每个输入分别取7个值。month,取值0,1,2,6,11,12,13day,取值0,1,2,15,30,31,32year,取值1799,1800,1801,1975,2049,2050,205197分析测试用例MonthDayYear预期输出Test16151799无效输入日期Test261518001800年6月16日Test361519131801年6月16日Test461519751975年6月16日Test561520492049年6月16日Test661520502050年6月16日Test76152051无效输入日期Test8601975无效输入日期。9
46、8组合用例优点:简便易行;生成测试数据的成本很低;局限性:不能发现测试变量之间的依赖关系;不考虑含义和性质;测试用例不充分,往往具有较大的冗余与漏洞。是一种最基本的黑盒测试方法,它是等价类测试良好的补充。99边界值分析的局限性100任务3: 决策表方法 123知识准备任务实施任务陈述45任务拓展项目实训101任务3陈述本任务介绍了决策表测试的相关概念,通过“三角形”问题,介绍了如何使用决策表方法设计测试用例,包括决策表的构成,化简,决策表测试的指导方针。102任务3陈述三角形问题描述输入3个整数a、b和c分别作为三角形的3条边,要求a、b 和c必须满足以下条件:程序输出是由这3条边构成的三角形
47、类型:等边三角形、等腰三角形、一般三角形或非三角形。Con1 1a100Con2 1b100Con3 1c100Con4 ab+cCon5 ba+cCon6 ca+b103任务3陈述如果输入值不满足这些条件中的任何一个,程序给出相应的信息。例如,“边c的取值不在允许取值的范围内”等。如果a、b和c满足Con1、Con2和Con3,则输出下列4种情况之一:如果不满足条件Con4、Con5和Con6中的一个,则程序输出为“非三角形”。如果三条边相等,则程序输出为“等边三角形”。如果恰好有两条边相等,则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。104知识点列表决策表的
48、相关概念决策表设计测试用例的方法决策表(Decision Table),又叫判定表是分析和表达多逻辑条件下执行不同操作的工具。 在程序设计发展的初期,判定表被当作编写程序的辅助工具。105引入决策表法思想决策表的概念:决策表是分析和表达多逻辑条件下执行不同操作情况的工具。在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。决策表很适合于处理这类问题。12345678问题C1:你觉得疲倦吗?YYYYNNNNC2:感兴趣吗?YYNNYYNNC3:糊涂吗?YNYNYNYN建议A1:重读A2:继续A3:跳到下一章A4:休息107决策表的构成
49、阅读指南条件桩:列出了问题的所有条件。条件项:针对条件桩给出的条件列出所有可能的取值。108决策表的构成动作桩:给出了问题规定的可能采取的操作。动作项:和条件项紧密相关,指出在条件项的各组取值情况下应采取的动作。规则任何一个条件组合的特定取值及其相应要执行的操作称为规则; 在决策表中贯穿条件项和动作项的一列就是一条规则; 决策表中列出多少组条件取值,也就有多少条规则,即条件项和动作项有多少列。 109决策表的构成决策表示例“阅读指南”程序,可以根据读者的当前阅读情况,为读者做出是否继续阅读的决定。如果读者感到疲倦则休息;如果读者不感到疲倦并且很感兴趣,在此情况下,如果读者糊涂则重新读一遍,如果
50、读者不糊涂则继续阅读下一部分;如果读者不感到疲倦但对阅读内容不感兴趣,在此情况下,不管读者是否糊涂都跳到下一章继续学习。 规则示例:阅读指南111决策表的构成12345678问题C1:你觉得疲倦吗?YYYYNNNNC2:感兴趣吗?YYNNYYNNC3:糊涂吗?YNYNYNYN建议A1:重读A2:继续A3:跳到下一章A4:休息规则合并就是决策表的简化。 有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系,就可以将规则合并。112决策表的化简条件项“”表示与取值无关阅读指南问题的简化后决策表113决策表的化简1-4567-8问题C1:你觉得疲倦吗?YNNNC2:感兴趣吗?YYNC
51、3:糊涂吗?YNY建议A1:重读A2:继续A3:跳到下一章A4:休息根据软件规格说明,构造决策表的5个步骤如下:列出所有的条件桩和动作桩;分析输入域,对输入域进行等价类划分;分析输出域,对输出进行细化,以指导具体的输出动作;确定规则的个数; 假如有n个条件,每个条件有两个取值(0,1),则有2n 种规则; 填入条件项; 填入动作项,得到初始决策表; 简化,合并相似规则(相同动作)。114决策表测试方法维修机器问题描述: “对于功率大于50马力的机器,并且维修记录不全或已运行10年以上的机器,应给予优先的维修处理”115维修机器问题的决策表测试决策表的优点:能够将复杂的问题按照各种可能的情况全部
52、列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。最为严格,最具逻辑性的测试方法。列出所有的条件桩和动作桩 条件桩 C1:功率大于50马力吗? C2:维修记录不全吗? C3:运行超过10年吗? 动作桩 A1:进行优先处理 A2:作其他处理117维修机器问题的决策表测试确定规则个数 输入条件个数:3; 每个条件的取值:“是”或“否”; 规则个数:2*2*2 =8;填入条件项,动作项,得到初始决策表118维修机器问题的决策表测试1 2 3 4 5 6 7 8 条 件 C1:功率大于50马力吗? Y Y Y Y N N N N C2:维修记录不全吗? Y Y N N Y Y N
53、 N C3:运行超过10年吗? Y N Y N Y N Y N 动 作 A1:进行优先处理 A2:作其他处理 化简后119维修机器问题的决策表测试1 2 345条 件 C1:功率大于50马力吗? Y Y Y N N C2:维修记录不全吗? Y N N C3:运行超过10年吗? Y N Y N 动 作 A1:进行优先处理 A2:作其他处理 列出所有的条件桩和动作桩确定规则的个数。三角形问题的决策表有4个条件,每个条件可以取两个值,故应有24=16种规则。120问题分析条件桩 动作桩C1:a,b,c构成三角形? C2:a = b? C3:a = c? C4:b = c? A1:非三角形; A2:不
54、等边三角形; A3:等腰三角形; A4:等边三角形; A5:不可能1 2 3 4 5 6 7 8 9 条 件 C1:a, b, c构成三角形?N Y Y Y Y Y Y Y Y C2:a = b? Y Y Y Y N N N N C3:a = c? Y Y N N Y Y N N C4:b = c? Y N Y N Y N Y N 动 作 A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 121构造决策表注意: 条件的选择可以大大扩展判定表的规模; 例如 a, b, c构成三角形吗?可以扩展为三个条件:a b + c? b a + c? c a + b?12
55、2另一种设计1 2 3 4 5 6 7 8 9 条件 C1: a b + c?N Y Y Y Y Y Y Y Y C2: b a + c?N Y Y Y Y Y Y Y C3: c a + b?N Y Y Y Y Y Y C4:a = b? Y Y Y Y N N N N C5:a = c? Y Y N N Y Y N N C6:b = c? Y N Y N Y N Y N 动作 A1:非三角形 A2:不等边三角形 A3:等腰三角形 A4:等边三角形 A5:不可能 123另一种设计测试用例abc预期输出Test1412非三角形Test2142非三角形Test3124非三角形Test4555等边
56、三角形Test5?不可能Test6?不可能Test7223等腰三角形Test8?不可能Test9232等腰三角形Test10322等腰三角形Test11345不等边三角形124测试用例决策表应用决策表最突出的优点是,能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例可以将条件理解为输入,将动作理解为输出适合于使用决策表设计测试用例的情况有:规格说明以决策表形式给出,或是很容易转换成决策表。条件的排列顺序不会也不应影响执行的操作。规则的排列顺序不会也不应影响执行的操作。当某一规则的条件已经满足,并确定要执行的操作后,不必
57、检验别的规则。如果某一规则要执行多个操作,这些操作的执行顺序无关紧要。126决策表测试的指导方针1. 针对“NextDate”函数问题,利用决策表方法进行测试用例设计与分析127“NextDate”函数问题NextDate函数的决策表测试用例设计M1:month:month有30天M2:month:month有31天,12月除外M3:month:month是12月M4:month:month是2月D1:day:1day27D2:day:day=28D3:day:day=29D4:day:day=30D5:day:day=31Y1:year:year是闰年Y2:year:year不是闰年案例分析
58、month变量的有效等价类: M1: month=4,6,9,11 M2: month=1,3,5,7,8,10 M3: month=12 M4: month=2day变量的有效等价类: D1: 1day27 D2: day=28 D3: day=29 D4: day=30 D5: day=31year变量的有效等价类: Y1: year是闰年 Y2: year不是闰年程序中可能采取的操作有以下六种: a1: 不可能 a2: day1 a3: day=1 a4: month+1 a5: month=1 a6: year+1 规则选项1234567891011条件:c1:monthc2:dayc
59、3:yearM1D1M1D2M1D3M1D4M1D5M2D1M2D2M2D3M2D4M2D5M3D1动作:a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1 选项规则1213141516171819202122条件:c1:monthc2:dayc3:yearM3D2M3D3M3D4M3D5M4D1M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4M4D5动作:a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1131阳山书屋简化NextDate函数决策表规则1、2、3都涉及有30天的月份
60、day类D1、D2和D3,并且它们的动作项都是day加1,因此可以将规则1、2、3合并。类似地,有31天的月份day类D1、D2、D3和D4也可合并,2月的D4和D5也可合并。简化后的NextDate函数决策表1-3456-91011-1415161718192021-22条件:c1:monthc2:dayc3:yearM1M1D4M1D5M2M2D5M3M3D5M4D1M4D2Y1M4D2Y2M4D3Y1M4D3Y2M4D4、D5动作a1:不可能a2:day加1a3:day复位a4:month加1a5:month复位a6:year加1133阳山书屋测试用例表测试用例monthdayyear预
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房屋出租协议书样本模板
- 2024年室内装修工程安全合同
- 个人开车与单位免责协议书经典版
- 室内装潢后污染治理合同
- 2024年二手车转让协议样本
- 购房团购活动合同
- 双方合伙买房合同范本
- 货场散货租赁合同范本2024年
- 高一语文开学第一课-课件-(共22张)
- 公路养护管理承包合同
- 旅游概论旅游资源教学设计教案
- 拍摄项目实施的全程保障措施
- 煤矿土地复垦与生态恢复
- JJF 1325-2011通信用光回波损耗仪校准规范
- GB/T 20948-2007农林拖拉机后视镜技术要求
- 安全使用家电和煤气课件
- 《GPS测量与数据处理》-第3讲 全球定位系统组成及信号结构
- 前置胎盘详解课件
- 达尔文的“进化论”课件
- 国开电大《建筑测量》实验报告1
- 南京市小学一年级语文上学期期中试卷
评论
0/150
提交评论