1、国家教学资源库建设项目国家教学资源库建设项目单元3 黑盒测试 网上购物系统的测试 主讲人主讲人软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试2软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试3软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试4本单元主要内容本单元主要内容v理解黑盒测试的概念理解黑盒测试的概念v掌握等价类、边界值、掌握等价类、边界值、决策表、因果图、正交决策表、因果图、正交试验法试验法v理解黑盒测试方法运理解黑盒测试方法运用的综合策略用的综合策略软
2、件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试5v三角形问题、三角形问题、NextDate问题、佣金问问题、佣金问题、自动饮料机题、自动饮料机v网上订餐系统网上订餐系统 系统的主要功能系统的主要功能 人员管理:注册,修改人员管理:注册,修改 菜品管理:增加,修改菜品管理:增加,修改 登录,订餐,查询登录,订餐,查询待测系统说明待测系统说明软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试6待测系统界面待测系统界面 网上订餐系统界面网上订餐系统界面12345678软件技术专业国家教学资源库软件技术专业国家教学资
3、源库软件测试软件测试课程课程软件测试软件测试7任务任务1:等价类方法:等价类方法123知识准备知识准备任务实施任务实施任务陈述任务陈述45任务拓展任务拓展项目实训项目实训软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试8任务任务1陈述陈述本任务介绍了黑盒测试的流程,等价类的基本概本任务介绍了黑盒测试的流程,等价类的基本概念。通过三角形问题,介绍了如何使用等价类方法设计念。通过三角形问题,介绍了如何使用等价类方法设计测试用例,包括等价类的划分方法,有效等价类、无效测试用例,包括等价类的划分方法,有效等价类、无效等价类,等价类测试的分类,等价类测试的指导
4、方针等。等价类,等价类测试的分类,等价类测试的指导方针等。软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试9任务任务1陈述陈述v三角形问题描述三角形问题描述 输入输入3个整数个整数a、b和和c分别作为三角形的分别作为三角形的3条边,要条边,要求求a、b 和和c必须满足以下条件:必须满足以下条件:程序输出是由这程序输出是由这3条边构成的三角形类型:等边三角条边构成的三角形类型:等边三角形、等腰三角形、一般三角形或非三角形。形、等腰三角形、一般三角形或非三角形。Con1 1a100Con2 1b100Con3 1c100Con4 ab+cCon5 ba+
5、cCon6 ca+b软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试10任务任务1陈述陈述v 如果输入值不满足这些条件中的任何一个,程序给出相如果输入值不满足这些条件中的任何一个,程序给出相应的信息。例如,应的信息。例如,“边边c的取值不在允许取值的范围内的取值不在允许取值的范围内”等。等。v 如果如果a、b和和c满足满足Con1、Con2和和Con3,则输出下列,则输出下列4种情况之一:种情况之一:如果不满足条件如果不满足条件Con4、Con5和和Con6中的一个,则中的一个,则程序输出为程序输出为“非三角形非三角形”。如果三条边相等,则程序输出为
6、如果三条边相等,则程序输出为“等边三角形等边三角形”。如果恰好有两条边相等,则程序输出为如果恰好有两条边相等,则程序输出为“等腰三角等腰三角形形”。如果三条边都不相等,则程序输出为如果三条边都不相等,则程序输出为“一般三角形一般三角形”。软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试11知识点列表知识点列表v黑盒测试黑盒测试v等价类划分等价类划分v等价类设计测试用等价类设计测试用例的方法例的方法软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试12流程流程需求说明测试用例测试结果产生输出验证输入软件技术专业
7、国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试13v设计测试用例实现一个对设计测试用例实现一个对(0 x100)的实数进行开平方运算的实数进行开平方运算 y=sqrt(x)的程序的测试。的程序的测试。v将所有的实数(输入域将所有的实数(输入域x)进行划分,)进行划分,可以分成:正实数、可以分成:正实数、0 和和 负实数。我负实数。我们选定们选定+1.4444代表正实数,代表正实数,-2.345代表负实数代表负实数。思考思考等价类方法可令测试事半功倍等价类方法可令测试事半功倍。完备,无冗余完备,无冗余软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软
8、件测试课程课程软件测试软件测试14等价类是输入等价类是输入/出域的某个出域的某个子集合子集合,而,而所有的等价类的并集是整个输入域。在所有的等价类的并集是整个输入域。在子集合中,各个输入数据对于揭露程序子集合中,各个输入数据对于揭露程序中的错误是中的错误是等效等效的。的。等价类定义等价类定义软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试15等价类测试的假设:等价类测试的假设:v 测试某等价类的代表值,就等效于对这个等价类中测试某等价类的代表值,就等效于对这个等价类中其他值的测试。其他值的测试。等价类测试的思想:等价类测试的思想:v 把全部的输入数据
9、划分成若干个等价类,在每一个把全部的输入数据划分成若干个等价类,在每一个等价类中取一个数据来进行测试。等价类中取一个数据来进行测试。等价类测试等价类测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试16v有效等价类有效等价类 是指对软件规格说明而言,是有意义的、合是指对软件规格说明而言,是有意义的、合理的输入数据所组成的集合。理的输入数据所组成的集合。v无效等价类无效等价类 是指对软件规格说明而言,是无意义的、不是指对软件规格说明而言,是无意义的、不合理的输入数据所构成的集合。合理的输入数据所构成的集合。等价类测试等价类测试检验正常功能检验正常功能
10、检验异常处理检验异常处理软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试17按照区间划分按照区间划分 在输入条件规定了取值范围或值的个数的情况下,可在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。以确定一个有效等价类和两个无效等价类。例例1:程序输入条件为小于:程序输入条件为小于100大于大于10的整数的整数x 有效等价类为有效等价类为 10 x100 两个无效等价类为两个无效等价类为 x10和和x100。例例2:输入学生成绩,范围是:输入学生成绩,范围是0到到100 划分原则划分原则软件技术专业国家教学资源库软件
11、技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试18(2)按照数值划分)按照数值划分 在规定了一组输入数据(假设包括在规定了一组输入数据(假设包括 n个输入值),并且程个输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定序要对每一个输入值分别进行处理的情况下,可确定 n 个个有效等价类(每个值确定一个有效等价类)和一个无效等有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入值的集合)。价类(所有不允许的输入值的集合)。例例1:程序输入:程序输入x取值于一个固定的枚举类型取值于一个固定的枚举类型1,3,7,15,且程序中对这,且程序中对这4个数值分
12、别进行了处理,个数值分别进行了处理,则有效等价类为则有效等价类为 x=1、x=3、x=7、x=15,无效等价类为无效等价类为 x1,3,7,15的值的集合。的值的集合。例例2:输入条件说明学历可为:输入条件说明学历可为:专科、本科、硕士、博士四专科、本科、硕士、博士四种之一。种之一。划分原则划分原则软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试19(3)按照数值集合划分)按照数值集合划分 在输入条件规定了输入值的集合或规定了在输入条件规定了输入值的集合或规定了“必须如何必须如何”的条件下,可以确定一个有效等价类和一个无效等价的条件下,可以确定一个有
13、效等价类和一个无效等价类(该集合有效值之外)。类(该集合有效值之外)。例例1:程序输入条件为取值为奇数的整数:程序输入条件为取值为奇数的整数x 则则 有效等价类为有效等价类为 x的值为奇数的整数的值为奇数的整数 无效等价类为无效等价类为 x的值不为奇数的整数。的值不为奇数的整数。例例2:输入为标识符:输入为标识符划分原则划分原则软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试20(4)按照限制条件或规则划分)按照限制条件或规则划分 在规定了输入数据必须遵守的规则或限制条件的情况在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符
14、合规则)和若干个无下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。效等价类(从不同角度违反规则)。例:程序输入条件为以字符例:程序输入条件为以字符a开头、长度为开头、长度为8的字的字符串,并且字符串不包含符串,并且字符串不包含a z之外的其它字之外的其它字符。符。划分原则划分原则软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试21(5)细分等价类)细分等价类 在确知已划分的等价类中各元素在程序中的处理方式在确知已划分的等价类中各元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更不同的情况下,则应再将该等价
15、类进一步划分为更小的等价类,并建立等价类表。小的等价类,并建立等价类表。划分原则划分原则软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试22从对等价类的从对等价类的覆盖程度覆盖程度从是否对无效从是否对无效数据进行检测数据进行检测等价类测试的分类等价类测试的分类在有多个输入的情形在有多个输入的情形软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试23以一个有两个输入变量以一个有两个输入变量x1和和x2的程序的程序F为例,说明上述的四种等价类测试。为例,说明上述的四种等价类测试。假设,假设,F的输入变量的输入变量
16、x1和和x2的边界以及的边界以及边界内的区间为边界内的区间为 a x1 d,区间为,区间为a,b),b,c),c,d e x2 g,区间为,区间为e,f),f,g等价类测试的分类等价类测试的分类软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试24变量变量x1和和x2的等价类分别为:的等价类分别为:v x1的有效等价类:的有效等价类:a,b),b,c),c,d v x1的无效等价类:的无效等价类:(-,a),(d,+)v x2的有效等价类:的有效等价类:e,f),f,gv x2的无效等价类的无效等价类:(-,e),(g,+)等价类测试的分类等价类测试的
17、分类软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试25“一般一般”表示只考虑有效等价类,表示只考虑有效等价类,“弱弱”表示测试用表示测试用例只需覆盖两个输入的所有的有效等价类即可,无需例只需覆盖两个输入的所有的有效等价类即可,无需考虑它们之间的组合情况考虑它们之间的组合情况。弱一般等价类测试弱一般等价类测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试26“一般一般”表示只考虑有效等价类,表示只考虑有效等价类,“强强”表示测试用表示测试用例需覆盖两个输入的所有有效等价类的可能组合。例需覆盖两个输入的所有
18、有效等价类的可能组合。强一般等价类测试强一般等价类测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试27“健壮健壮”表示不仅考虑有效等价类还要考虑无效等价表示不仅考虑有效等价类还要考虑无效等价类,类,“弱弱”表示测试用例只需覆盖两个输入的所有等表示测试用例只需覆盖两个输入的所有等价类即可,无需考虑它们之间的组合情况。价类即可,无需考虑它们之间的组合情况。弱健壮等价类测试弱健壮等价类测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试28“健壮健壮”表示不仅考虑有效等价类还要考虑无效等价表示不仅考虑有效等价
19、类还要考虑无效等价类,类,“强强”表示测试用例需覆盖两个输入的所有等价表示测试用例需覆盖两个输入的所有等价类的可能组合。类的可能组合。强健壮等价类测试强健壮等价类测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试291.划分等价类,形成等价类表,为每一个等价类规划分等价类,形成等价类表,为每一个等价类规定一个唯一的编号。定一个唯一的编号。2.设计一个新的测试用例,使它能够尽量覆盖尚未设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。有效等价类均
20、被测试用例所覆盖。3.设计一个新的测试用例,使它仅覆盖一个尚未覆设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。效等价类均被测试用例所覆盖。等价类设计测试用例的步骤等价类设计测试用例的步骤软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试30v 某保险公司的人寿保险的保费计算方式为:投保额某保险公司的人寿保险的保费计算方式为:投保额保险费率保险费率v 其中,保险费率依点数不同而有别,其中,保险费率依点数不同而有别,10点及点及10点点以上保险费率为
21、以上保险费率为0.6%,10点以下保险费率为点以下保险费率为0.1%;而点数又是由;而点数又是由 投保人的年龄、性别、婚姻投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表状况和抚养人数来决定,具体规则如表 所示:所示:保费计算问题的等价类测试保费计算问题的等价类测试年龄年龄 性别性别婚姻婚姻抚养人数抚养人数 2039 2039 4059 4059 其它其它 M M F F 已婚已婚 未婚未婚 1 1人扣人扣0.5点点 最多扣最多扣3点点(四舍五入取整)(四舍五入取整)6 6点点 4 4点点 2 2点点 5 5点点 3 3点点 3 3点点 5 5点点软件技术专业国家教学资源库软件技术专
22、业国家教学资源库软件测试软件测试课程课程软件测试软件测试31v分析程序规格说明中给出和隐含的对分析程序规格说明中给出和隐含的对输入条件的要求。输入条件的要求。年龄:一位或两位非零整数,值的有效范围为年龄:一位或两位非零整数,值的有效范围为199 性别:一位英文字符,只能取值性别:一位英文字符,只能取值M或或F 婚姻:字符,只能取值婚姻:字符,只能取值已婚已婚或或未婚未婚 抚养人数:空白或一位非零整数(抚养人数:空白或一位非零整数(19)点数点数:一位或两位非零整数,值的范围为:一位或两位非零整数,值的范围为199保费计算问题的等价类测试保费计算问题的等价类测试软件技术专业国家教学资源库软件技术
23、专业国家教学资源库软件测试软件测试课程课程软件测试软件测试32等价类表等价类表输入条件输入条件 有效等价类有效等价类 编号编号 无效等价类无效等价类 编号编号 年龄年龄 20392039岁岁 1 1 40594059岁岁 2 2 119119岁岁 60996099岁岁 3 3 小于小于1 12 12 大于大于99 13 13 性别性别 非英文字符非英文字符 14 14 非单个英文字符非单个英文字符 15 15 M M 5 5除除M和和F之外的之外的 其它单个字符其它单个字符 16 16 F F 6 6 婚姻婚姻 已婚已婚 7 7除除已婚已婚和和未婚未婚之外之外的其它字符的其它字符 17 17
24、未婚未婚 8 8 抚养抚养人数人数 空白空白 9 9 除空白和数字之外的其它字符除空白和数字之外的其它字符 18 18 1616人人 1010小于小于1 19 19 6969人人 11 11 大于大于9 20 20 软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试33测试用例测试用例测试用例编号测试用例编号 输入数据输入数据 预期输出预期输出 对应等价类对应等价类年龄年龄 性别性别 婚姻婚姻 抚养人数抚养人数 保险费率保险费率 Test1 Test1 27 27 F F 未婚未婚 空白空白 0.6%0.6%1,6,8,91,6,8,9Test 2 T
25、est 2 50 50 M M 已婚已婚 2 2 0.6%0.6%2,5,7,102,5,7,10Test 3 Test 3 70 70 F F 已婚已婚 7 7 0.1%0.1%3,6,7,113,6,7,11Test 4 Test 4 0 0 M M 未婚未婚 空白空白 无法推算无法推算 12,5,8,912,5,8,9Test 5 Test 5 100 100 F F 已婚已婚 3 3 无法推算无法推算 13,6,7,1013,6,7,10Test 6 Test 6 99 99 男男 已婚已婚 4 4 无法推算无法推算 14.14.Test 7 Test 7 1 1 Child Chil
26、d 未婚未婚 空白空白 无法推算无法推算 15.15.Test 8 Test 8 45 45 N N 已婚已婚 5 5 无法推算无法推算 16.16.Test 9 Test 9 38 38 F F 离婚离婚 1 1 无法推算无法推算 17.17.Test 10 Test 10 62 62 M M 已婚已婚 没有没有 无法推算无法推算 18.18.Test 11 Test 11 18 18 F F 未婚未婚 0 0 无法推算无法推算 19.19.Test 12 Test 12 40 40 M M 未婚未婚 10 10 无法推算无法推算 20.20.软件技术专业国家教学资源库软件技术专业国家教学资
27、源库软件测试软件测试课程课程软件测试软件测试34输出域等价类测试输出域等价类测试v使用等价类划分方法必须仔细分析程序规范说使用等价类划分方法必须仔细分析程序规范说明。在三角形问题中,输入条件须满足明。在三角形问题中,输入条件须满足3个要个要求:求:整数。整数。3个数。个数。取值在取值在1100之间。之间。v仔细分析三角形问题,其无效输入就是分别不仔细分析三角形问题,其无效输入就是分别不满足以上满足以上3个方面。因此,可以将这个方面。因此,可以将这3个要求作个要求作为为3个有效等价类,从而得出其等价类表个有效等价类,从而得出其等价类表软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软
28、件测试课程课程软件测试软件测试35等价类表等价类表Test1=(3,4,5)便可覆便可覆盖有效盖有效等价类等价类13。有效等价类有效等价类编号编号无效等价类无效等价类编号编号输入三个整数输入三个整数整数整数1一边为非整数一边为非整数4二边为非整数二边为非整数5三边为非整数三边为非整数63个数个数2只有一条边只有一条边7只有二条边只有二条边8超过三条边超过三条边91a1001b1001c1003一边为一边为010二边为二边为011三边为三边为012一边一边013二边二边014三边三边10016二边二边10017三边三边10018软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试
29、课程课程软件测试软件测试36健壮性测试用例健壮性测试用例a ab bc c覆盖的等价类覆盖的等价类a ab bc c覆盖的等价类覆盖的等价类3.5454000123.5 4.555-345133.5 4.5 3.56-3-451437-3-4-51534810155651634569101 101651704510101 101 1011800511软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试37v三角形问题有三角形问题有4种可能输出:等边三角种可能输出:等边三角形、等腰三角形,一般三角形和非三形、等腰三角形,一般三角形和非三角形。利用这些信息可
30、确定下列输出角形。利用这些信息可确定下列输出(值域)等价类。(值域)等价类。R1=边为边为a,b,c的等边三角形的等边三角形 R2=边为边为a,b,c的等腰三角形的等腰三角形 R3=边为边为a,b,c的一般三角形的一般三角形 R4=边为边为a,b,c不能组成三角形不能组成三角形 输出域等价类划分测试输出域等价类划分测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试38输出域等价类划分测试用例输出域等价类划分测试用例测试用例测试用例abc预期输出预期输出Test1101010等边三角形等边三角形Test210105等腰三角形等腰三角形Test3345
31、一般三角形一般三角形Test4412非三角形非三角形软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试39健壮性测试用例健壮性测试用例测试用例测试用例a ab bc c预期输出预期输出Test1567一般三角形一般三角形Test2-155 a值超出输入值定义域值超出输入值定义域Test35-15b值超出输入值定义域值超出输入值定义域Test455-1c值超出输入值定义域值超出输入值定义域Test510155a值超出输入值定义域值超出输入值定义域Test651015b值超出输入值定义域值超出输入值定义域Test755101c值超出输入值定义域值超出输入值
32、定义域软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试40v 使用等价类划分测试时,应注意以下几点:使用等价类划分测试时,应注意以下几点:v 如果实现的语言是强类型语言(无效值会引起运行如果实现的语言是强类型语言(无效值会引起运行时出错),则没有必要使用健壮等价类测试。时出错),则没有必要使用健壮等价类测试。v 如果错误输入检查非常重要,则应进行健壮等价类如果错误输入检查非常重要,则应进行健壮等价类测试。测试。v 如果输入数据以离散值区间或集合的形式定义,则如果输入数据以离散值区间或集合的形式定义,则等价类测试是合适的,当然也适用于变量值越界会等价类
33、测试是合适的,当然也适用于变量值越界会造成故障的系统造成故障的系统。等价类测试指导方针等价类测试指导方针软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试411.对对NextDate函数进行等价类测试与分析函数进行等价类测试与分析v NextDate函数是一个有函数是一个有3个变量个变量month(月份)、(月份)、year(日(日期)和期)和year(年)的函数。输出为输入日期后一天的日期。例如,(年)的函数。输出为输入日期后一天的日期。例如,如果输入为如果输入为1998年年6月月18日,则日,则NextDate函数的输出为函数的输出为1998年年6
34、月月19日。要求输入变量日。要求输入变量month,day和和year都是整都是整数值,并且满足以下条件:数值,并且满足以下条件:Con1 1month12 Con2 1day31 Con3 1800year2050v 如果如果month,day和和year中任何一个条件失效,则中任何一个条件失效,则NextDate都会产生一个输出,指明相应的变量超出了取值范围。例如,都会产生一个输出,指明相应的变量超出了取值范围。例如,“无效输入日期。无效输入日期。”软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试42任务任务2:边界值方法边界值方法123知识准备
35、知识准备任务实施任务实施任务陈述任务陈述45任务拓展任务拓展项目实训项目实训软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试43任务任务2陈述陈述本任务介绍了边界值测试的相关概念,本任务介绍了边界值测试的相关概念,通过通过“NextDate”函数问题,介绍了函数问题,介绍了如何使用边界值方法设计测试用例,包括如何使用边界值方法设计测试用例,包括边界条件,次边界条件,边界值健壮性测边界条件,次边界条件,边界值健壮性测试,边界值分析的局限性。试,边界值分析的局限性。软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测
36、试44知识点列表知识点列表v边界值测试的相关边界值测试的相关概念概念v边界值设计测试用边界值设计测试用例的方法例的方法软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v当循环条件本应当判断当循环条件本应当判断“c、a+cb及及b+ca时时才能构成三角形。但如果把才能构成三角形。但如果把3个不等式中个不等式中的任何一个大于号的任何一个大于号“”错写成大于等于错写成大于等于号号“”,那就无法构成三角形了。,那就无法构成三角形了。45问题引入问题引入软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v错误更可能出现
37、在输入变量的极值附近。错误更可能出现在输入变量的极值附近。v无数的测试实践表明,大量的故障往往发无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效设计测试用例,通常会取得很好的测试效果。果。46基本原理基本原理软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v如果文本输入域允许输入如果文本输入域允许输入1255个字符个字符。v尝试:尝试:输入输入1个字符和个字符和255个字符(合法区间)
38、,也可以加个字符(合法区间),也可以加入入254个字符作为合法测试。个字符作为合法测试。输入输入0个字符和个字符和256个字符作为非法区间。个字符作为非法区间。47可能的边界可能的边界软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v如果程序读写软盘如果程序读写软盘v尝试:尝试:保存一个尺寸极小,甚至只有一项的文件。保存一个尺寸极小,甚至只有一项的文件。然后保存一个很大的然后保存一个很大的刚好在软盘容量限制之内刚好在软盘容量限制之内的文件。的文件。保存空文件。保存空文件。保存尺寸大于软盘容量的文件。保存尺寸大于软盘容量的文件。48可能的边界可能的边界
39、软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v如果程序允许在一张纸上打印多个页面如果程序允许在一张纸上打印多个页面v尝试:尝试:只打印一页只打印一页 打印允许的最多页面打印允许的最多页面 打印打印0页页 多于所允许的页面(如果可能的话)多于所允许的页面(如果可能的话)49可能的边界可能的边界软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v一些可可能与边界有关的数据类型有:一些可可能与边界有关的数据类型有:数值、速度、字符、地址、位置、尺寸、数量等数值、速度、字符、地址、位置、尺寸、数量等v考虑这些数据
40、类型的下述特征:考虑这些数据类型的下述特征:第一个第一个/最后一个、最小值最后一个、最小值/最大值、开始最大值、开始/完成、超完成、超过过/在内、空在内、空/满、最短满、最短/最长、最慢最长、最慢/最快、最早最快、最早/最最迟、最高迟、最高/最低、相邻最低、相邻/最远等。最远等。50可能的边界可能的边界软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v 在多数情况下,边界值条件是基于应用程序的功能设计在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得而需要考虑的因素,可以从软件的规格说明或常识中得到,也是
41、最终用户可以很容易发现问题的。到,也是最终用户可以很容易发现问题的。v 然而,在测试用例设计过程中,某些边界值条件是不需然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。或子边界值条件。51次边界条件次边界条件软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试计算机是基于二进制进行工作的,因此,计算机是基于二进制进行工作的,因此,软件的任何数值运算都
42、有一定的范围限制。软件的任何数值运算都有一定的范围限制。522的幂次方的幂次方项项范围或值范围或值位(位(bit)0 或或 1字节(字节(byte)0 255字(字(word)065535(单字)或(单字)或 04294967295(双字)(双字)千(千(K)1024兆(兆(M)1048576吉(吉(G)1073741824软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v 假设某种通信协议支持假设某种通信协议支持256条命令,为了提高数据传输条命令,为了提高数据传输效率,通信软件总是将常用的信息压缩到一个很小的单效率,通信软件总是将常用的信息压缩到
43、一个很小的单元中,必要时再扩展为大一些的单元。比如将常用的元中,必要时再扩展为大一些的单元。比如将常用的15条命令压缩为一个半字节数据,在遇到第条命令压缩为一个半字节数据,在遇到第16256之间之间的命令时,软件转而发送一个一字节的命令。的命令时,软件转而发送一个一字节的命令。v 为了覆盖所有可能的为了覆盖所有可能的2的幂次方次边界,要考虑临近半的幂次方次边界,要考虑临近半字节边界的字节边界的14、15和和16,以及临近字节边界的,以及临近字节边界的254、255和和256532的幂次方的幂次方软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试在计算机
44、软件中,字符也是很重要的表示元素,其中在计算机软件中,字符也是很重要的表示元素,其中ASCII和和Unicode是常见的编码方式。下表中列出了一是常见的编码方式。下表中列出了一些常用字符对应的些常用字符对应的ASCII码值。码值。54ASCII表表字符字符 ASCII值值 字符字符 ASCII值值 字符字符 ASCII值值 字符字符 ASCII值值 Null0250B66a97Space32957Y89b98/47:58Z90y1210486491z122149A6596123软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v 如果输入条件规定了值的
45、范围,则应取刚达到这个范围如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入的边界值以及刚刚超过这个范围边界的值作为测试输入数据。数据。v 如果输入条件规定了值的个数,则用最大个数、最小个如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多数和比最大个数多1个、比最小个数少个、比最小个数少1个的数作为测个的数作为测试数据。试数据。v 根据程序规格说明的每个输出条件,使用原则根据程序规格说明的每个输出条件,使用原则(1)(2)。55边界值设计测试用例原则边界值设计测试用例原则软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件
46、测试课程课程软件测试软件测试v 如果程序的规格说明给出的输入域或输出域是有序集合如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合中的第一个(如有序表、顺序文件等),则应选取集合中的第一个和和 最后一个元素作为测试用例。最后一个元素作为测试用例。v 如果程序中使用了一个内部数据结构,则应当选择这个如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。内部数据结构的边界上的值作为测试用例。v 分析程序规格说明,找出其它可能的边界条件。分析程序规格说明,找出其它可能的边界条件。56边界值设计测试用例原则边界值设计测试用例原则软件技
47、术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v在最小值、略高于最小值、正常值、略低在最小值、略高于最小值、正常值、略低于最大值和最大值处取输入变量值于最大值和最大值处取输入变量值 v 表示方法表示方法min、min+、nom、max-、和、和max 57取值取值软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v 一个有两个变量一个有两个变量x1和和x2的程序的程序F,其中,其中x1a,b和和x2c,d。程序。程序F的输入空间(定义域)如图的输入空间(定义域)如图所示。带阴影矩形中的任何点都是程序所示。带阴影矩
48、形中的任何点都是程序F的有效输入。的有效输入。58组合组合X1X2abcdv 基于基于“单故障单故障”的假设的假设v 使所有变量取正常值,只使使所有变量取正常值,只使一个变量分别取最小值、略一个变量分别取最小值、略高于最小值、略低于最大值高于最小值、略低于最大值和最大值。和最大值。软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试59组合组合软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试v除了使用五个边界值分析取值,还采用:除了使用五个边界值分析取值,还采用:一个略超过最大值一个略超过最大值(max+)的取
49、值的取值 一个略小于最小值一个略小于最小值(min-)的取值的取值60边界值健壮性测试边界值健壮性测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试某酒水销售公司指派销售员销售各种酒水某酒水销售公司指派销售员销售各种酒水,其中白酒卖其中白酒卖168元元/瓶,红酒卖瓶,红酒卖120元元/瓶,啤酒卖瓶,啤酒卖5元每瓶。对于元每瓶。对于每个销售员,白酒每月的最高供应量为每个销售员,白酒每月的最高供应量为5000瓶,红酒为瓶,红酒为3000瓶,啤酒为瓶,啤酒为30000瓶,各销售员每月至少需售出瓶,各销售员每月至少需售出白酒白酒50瓶,红酒瓶,红酒30瓶,
50、啤酒瓶,啤酒300瓶。奖金计算方法如下瓶。奖金计算方法如下v2万元以下(含):万元以下(含):4%v2万元(不含)到万元(不含)到4.5万(含):万(含):1%v4.5万元以上(不含):万元以上(不含):0.5%61佣金问题的边界值测试佣金问题的边界值测试软件技术专业国家教学资源库软件技术专业国家教学资源库软件测试软件测试课程课程软件测试软件测试从输入角度分析该问题。该问题的输入有从输入角度分析该问题。该问题的输入有3个,其对应的个,其对应的等价类划分为:等价类划分为:白酒数,有效等价类白酒数,有效等价类50,5000红酒数,有效等价类红酒数,有效等价类30,3000啤酒数,有效等价类啤酒数,