《第3讲黑盒测试及其用例的设计优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第3讲黑盒测试及其用例的设计优秀PPT.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3讲黑盒黑盒测试及其及其用例的用例的设计现在学习的是第1页,共70页本讲教学目标本讲教学目标n n理解黑盒测试方法的基本概念理解黑盒测试方法的基本概念n n理解黑盒测试的两个典型问题理解黑盒测试的两个典型问题n n掌握黑盒测试的等价类划分法掌握黑盒测试的等价类划分法n n掌握黑盒测试的边界值分析法掌握黑盒测试的边界值分析法n n掌握黑盒测试的因果图测试法和决策表法掌握黑盒测试的因果图测试法和决策表法现在学习的是第2页,共70页3.1 测试用例设计概述测试用例设计概述3.1.1 测试用例的定义和特征测试用例的定义和特征3.1.2 3.1.2 测试用例的基本准则测试用例的基本准则3.1.3 3
2、.1.3 测试用例设计书写标准测试用例设计书写标准Return现在学习的是第3页,共70页3.1.1 测试用例的定义和特征测试用例的定义和特征n n测试用例的定义:测试用例的定义:(1 1)测测试试用用例例是是为为特特定定的的目目的的而而设设计计的的一一组组测测试试输输入入、执执行条件和预期的结果。行条件和预期的结果。(2 2)测试用例是执行的最小实体。)测试用例是执行的最小实体。n n良好测试用例的特征:良好测试用例的特征:(1 1)最有可能抓住错误的;)最有可能抓住错误的;(2 2)不是重复的、多余的;)不是重复的、多余的;(3 3)一组相似测试用例中最有效的;)一组相似测试用例中最有效的
3、;(4 4)既不过分复杂、也不能过分简单既不过分复杂、也不能过分简单现在学习的是第4页,共70页3.1.2 设计测试用例的基本准则设计测试用例的基本准则n n测试用例的代表性测试用例的代表性 能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的能够代表并覆盖各种合理的和不合理的、合法的和非法的、边界的和越界的以及极限的输入数据、操作和环境设置等。和越界的以及极限的输入数据、操作和环境设置等。n n测试结果的可判定性测试结果的可判定性 即测试执行结果的正确性是可判定的,每一个测试用例都应有即测试执行结果的正确性是可判定的,每一个测试用例都应有相应的期望结果。相应的期望结果。n n测试结果的
4、可再现性测试结果的可再现性 即对同样的测试用例,系统的执行结果应当是相同的。即对同样的测试用例,系统的执行结果应当是相同的。现在学习的是第5页,共70页3.1.3 测试用例设计书写标准测试用例设计书写标准 在在ANSI/IEEE829-1983ANSI/IEEE829-1983标准中列出了和测试设计相关的测试用标准中列出了和测试设计相关的测试用例编写规范和模板。标准模板中主要元素如下:例编写规范和模板。标准模板中主要元素如下:n n标识符标识符惟一标识每一个测试用例惟一标识每一个测试用例n n测试项测试项准确的描述所需要测试的项及其特征准确的描述所需要测试的项及其特征n n测试环境要求测试环境
5、要求表征执行该测试用例需要的测试环境表征执行该测试用例需要的测试环境n n输入标准输入标准执行测试用例的输入需求(这些输入可能包括执行测试用例的输入需求(这些输入可能包括数据、文件或者操作)数据、文件或者操作)n n输出标准输出标准按照指定的环境和输入标准得到的期望输出结按照指定的环境和输入标准得到的期望输出结果果n n测试用例之间的关联测试用例之间的关联标识该测试用例与其它的测试(或其标识该测试用例与其它的测试(或其它测试用例)之间的依赖关系它测试用例)之间的依赖关系现在学习的是第6页,共70页测试用例的组成元素与范例测试用例的组成元素与范例n n测试用例编号测试用例编号IDIDn n测试的
6、模块测试的模块n n测试用例标题测试用例标题n n测试输入条件测试输入条件n n期望的输出结果期望的输出结果n n其它说明其它说明IDID测试测试项项标题标题测试步骤测试步骤期望的结果期望的结果说明说明001001登录登录输入正确密输入正确密码码用户在登录界面输入正确的密用户在登录界面输入正确的密码后,按回车键码后,按回车键程序提示登录成程序提示登录成功功002002登录登录输入错误密输入错误密码码用户在登录界面输入错误的密用户在登录界面输入错误的密码后,按回车键码后,按回车键程序提示输入密程序提示输入密码错误,请重新码错误,请重新输入输入003003登录登录不输入的空不输入的空密码密码用户在
7、登录界面没有输入任何用户在登录界面没有输入任何密码使密码为空后,按回车键密码使密码为空后,按回车键程序提示用户没程序提示用户没有输入密码,请有输入密码,请输入输入程序应该告知程序应该告知用户没有输入用户没有输入密码,而不是密码,而不是密码错误密码错误范例:范例:205页测试用例页测试用例现在学习的是第7页,共70页 3.2 黑盒测试法的概念黑盒测试法的概念Returnn n黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视黑盒测试被称为功能测试或数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的为一个不能打开的黑盒子,在完全不考虑程序内部
8、结构和内部特性的情况下进行。情况下进行。n n采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基采用黑盒测试的目的主要是在已知软件产品所应具有的功能的基础上,进行:础上,进行:(1 1)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功)检查程序功能能否按需求规格说明书的规定正常使用,测试各个功能是否有遗漏,检测性能等特性要求是否满足。能是否有遗漏,检测性能等特性要求是否满足。(2 2)检测人机交互是否错误,程序是否能适当地接收输入数据)检测人机交互是否错误,程序是否能适当地接收输入数据而产生正确的输出结果,并保持外部信息(如数据库或文件)而产生正确的输出结果,并保持外部信息(如
9、数据库或文件)的完整性。的完整性。(3 3)检测程序初始化和终止方面的错误。)检测程序初始化和终止方面的错误。现在学习的是第8页,共70页3.3 三角形问题与三角形问题与NextDate函数函数 1 1、三角形问题 输入三个整数输入三个整数a a、b b、c c,分别作为三角形的三条边,现通过程序,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及构不成三角形。三角形(特殊的还有直角三角形),以及构不成三角形。现在要求输入三个整数现在要求输入三个整数a a
10、、b b、c c,必须满足以下条件:,必须满足以下条件:条件条件1 1a100 1 1a100 条件条件4 ab+c4 ab+c 条件条件2 1b100 2 1b100 条件条件5 ba+c 5 ba+c 条件条件3 1c100 3 1c100 条件条件6 ca+b6 ca+b Return现在学习的是第9页,共70页三角形问题与三角形问题与NextDate函数函数(续)(续)n n如果输入值如果输入值a a、b b、c c不满足不满足条件条件1 1、条件、条件2 2和条件和条件3 3 ,程序给出,程序给出“边边的取值超出允许范围的取值超出允许范围”的信息。的信息。n n如果输入值如果输入值a
11、 a、b b、c c 满足满足条件条件1 1、条件、条件2 2和条件和条件3 3,则输出下列四种,则输出下列四种情况之一:情况之一:(1 1)如果不满足条件)如果不满足条件4 4、条件、条件5 5和条件和条件6 6中的一个,则程序输出为中的一个,则程序输出为“非非三角形三角形”。(2 2)如果三条边相等,则程序输出为)如果三条边相等,则程序输出为“等边三角形等边三角形”。(3 3)如果恰好有两条边相等,则程序输出为)如果恰好有两条边相等,则程序输出为“等腰三角形等腰三角形”。(4 4)如果三条边都不相等,则程序输出为)如果三条边都不相等,则程序输出为“一般三角形一般三角形”。n n结论结论结论
12、结论:三角形问题的复杂之处在于输入与输出之间的关系比较复:三角形问题的复杂之处在于输入与输出之间的关系比较复杂。杂。现在学习的是第10页,共70页三角形问题与三角形问题与NextDate函数函数(续)(续)2 2、NextDate函数函数 NextDateNextDate函函数数说说明明另另一一种种复复杂杂的的关关系系,即即输输入入变变量量之之间间逻逻辑辑关关系系的的复杂性。复杂性。NextDate NextDate函数包含三个变量函数包含三个变量monthmonth、dayday和和yearyear,函数的输出为输函数的输出为输入日期后一天的日期。入日期后一天的日期。要求输入变量要求输入变量
13、monthmonth、dayday和和yearyear均为整数值,均为整数值,并且满足下列条件:并且满足下列条件:条件条件1 1 month 121 1 month 12 条件条件2 1 day 312 1 day 31 条件条件3 1912 year 20503 1912 year 2050n n结论:结论:结论:结论:在在NextDateNextDate函数中有两种复杂性的输入来源,一是输入域的函数中有两种复杂性的输入来源,一是输入域的复杂性,二是确定闰年的规则并要增加复杂性,二是确定闰年的规则并要增加“额外天额外天”。现在学习的是第11页,共70页3.4 等价类划分法等价类划分法3.4.
14、1 3.4.1 等价类的划分原则等价类的划分原则3.4.2 等价类划分法的测试用例设计等价类划分法的测试用例设计3.4.33.4.3使用等价类划分法测试的实例使用等价类划分法测试的实例Return现在学习的是第12页,共70页等价类划分法等价类划分法n n等价类划分法是一种重要的、常用的黑盒测试方法,它将不等价类划分法是一种重要的、常用的黑盒测试方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。用例具有完整性和代表性。n n举例:设计这样的测试用例,来实现一个对所有实数进行开举例:设计这样的测试用例,来实
15、现一个对所有实数进行开平方运算(平方运算(y=sqrt(x)y=sqrt(x))的程序的测试。)的程序的测试。n n思考方向:思考方向:由于开平方运算只对非负实数有效,这时需要将所有的实数由于开平方运算只对非负实数有效,这时需要将所有的实数(输入域(输入域x x)进行划分,可以分成:正实数、)进行划分,可以分成:正实数、0 0 和和 负实数。假设我们负实数。假设我们选定选定+1.4444+1.4444代表正实数,代表正实数,-2.345-2.345代表负实数,则为该程序设计代表负实数,则为该程序设计的测试用例的输入为的测试用例的输入为+1.4444+1.4444、0 0 和和 -2.345-2
16、.345。现在学习的是第13页,共70页等价类划分法等价类划分法(续)(续)n n等价类划分法等价类划分法等价类划分法等价类划分法把所有可能的输入数据(有效的和无效的)划把所有可能的输入数据(有效的和无效的)划把所有可能的输入数据(有效的和无效的)划把所有可能的输入数据(有效的和无效的)划分成若干个等价的子集,使得每个子集中的一个典型值在测分成若干个等价的子集,使得每个子集中的一个典型值在测分成若干个等价的子集,使得每个子集中的一个典型值在测分成若干个等价的子集,使得每个子集中的一个典型值在测试中的作用与这一子集中其他值的作用相同。试中的作用与这一子集中其他值的作用相同。试中的作用与这一子集中
17、其他值的作用相同。试中的作用与这一子集中其他值的作用相同。n n等价类的分类:等价类的分类:等价类的分类:等价类的分类:有效等价类有效等价类有效等价类有效等价类和和和和无效等价类无效等价类无效等价类无效等价类。有效等价类是有。有效等价类是有。有效等价类是有。有效等价类是有意义的、合理的输入数据,可以检查程序是否实现了规格说意义的、合理的输入数据,可以检查程序是否实现了规格说意义的、合理的输入数据,可以检查程序是否实现了规格说意义的、合理的输入数据,可以检查程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的意义明中所规定的功能和性能。无效等价类与有效等价类的意义明中所规定的功能
18、和性能。无效等价类与有效等价类的意义明中所规定的功能和性能。无效等价类与有效等价类的意义相反。相反。相反。相反。n n设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件收合理的数据,也要能经受意外的考验。这样的测试才能确保软件收合理的数据,也要能经受意外的考验。这样的测试才能确保软件收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。
19、具有更高的可靠性。具有更高的可靠性。具有更高的可靠性。现在学习的是第14页,共70页3.4.1 等价类的划分原则等价类的划分原则n n等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。等价类是输入域的某个子集合,而所有等价类的并集就是整个输入域。因此,等价类对于测试有两个重要的意义:因此,等价类对于测试有两个重要的意义:n n完备性完备性完备性完备性整个输入域提供一种形式的完备性整个输入域提供一种形式的完备性n n无冗余性无冗余性无冗余性无冗余性若互不相交则可保证一种形式的无冗余性若互不相交则可保证一种形式的无冗余性n n如何划分?如何划分?如何划分?如何划分?先从程序的规格说明书
20、中找出各个输入条件,再先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分两个或多个等价类,形成若干的互不相交为每个输入条件划分两个或多个等价类,形成若干的互不相交的子集。的子集。n n采用等价类划分法设计测试用例通常分两步进行:采用等价类划分法设计测试用例通常分两步进行:(1 1)确定等价类,列出等价类表。确定等价类,列出等价类表。确定等价类,列出等价类表。确定等价类,列出等价类表。(2 2)确定测试用例。)确定测试用例。)确定测试用例。)确定测试用例。现在学习的是第15页,共70页等价类的划分原则等价类的划分原则(续)(续)n n进行等价类划分的依据:进行等价类划分的依据:(1)按
21、照区间划分 在输入条件规定了取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类。例:例:程序输入条件为小于程序输入条件为小于100100大于大于1010的整数的整数x x,则有效等价类为,则有效等价类为1010 x x100100,两个无效等价类为,两个无效等价类为x10 x10和和x100 x100。例:例:输入值是学生成绩,范围是输入值是学生成绩,范围是01000100,则有效等价类是,则有效等价类是0=0=成绩成绩=100=100,无效等价类为:成绩,无效等价类为:成绩0100100现在学习的是第16页,共70页等价类的划分原则等价类的划分原则(续)(续)n n进行等价类
22、划分的依据:进行等价类划分的依据:例:例:程序输入程序输入x x取值于一个固定的枚举类型取值于一个固定的枚举类型1,3,7,151,3,7,15,且程序,且程序 中对这中对这4 4个数值分别进行了处理,则有效等价类为个数值分别进行了处理,则有效等价类为x=1x=1、x=3x=3、x=7 x=7、x=15x=15,无效等价类为,无效等价类为x1,3,7,15x1,3,7,15的值的集合。的值的集合。(2)按照数值划分 在规定了一组输入数据(假设包括 n个 输入值),并且程序要对每一个输入值分别进行处理的情况下,可确定 n 个有效等价类(每个值确定一个有效等价类)和一个无效等价类(所有不允许的输入
23、值的集合)。例:例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四种作为四个有效等价类,把四种学历之外的任何学则分别取这四种作为四个有效等价类,把四种学历之外的任何学历作为无效等价类。历作为无效等价类。现在学习的是第17页,共70页等价类的划分原则等价类的划分原则(续)(续)(3)按照数值集合划分 在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类(该集合有效值之外)。例:例:程序输入条件为取值为奇数的整数程序输入条件为取值为奇数的整数x x,则有效等价类为,则有效等价类为x
24、 x的值为的值为奇数的整数,无效等价类为奇数的整数,无效等价类为x x的值不为奇数的整数。的值不为奇数的整数。例:例:程序输入条件为以字符程序输入条件为以字符 aa开头、长度为开头、长度为8 8的字符串,并且字符的字符串,并且字符串不包含串不包含 a a z z之外的其它字符,则有效等价类为满足了上述所之外的其它字符,则有效等价类为满足了上述所有条件的字符串,无效等价类为不以有条件的字符串,无效等价类为不以 aa开头的字符串、长度不为开头的字符串、长度不为8 8的的字符串和包含了字符串和包含了 a a z z之外其它字符的字符串。之外其它字符的字符串。(5)细分等价类 在确知已划分的等价类中各
25、元素在程序中的处理方式不同的情况下,则应再将该等价类进一步划分为更小的等价类,并建立等价类表。(4)按照限制条件或规则划分 在规定了输入数据必须遵守的规则或限制条件的情况下,可确定一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。现在学习的是第18页,共70页3.4.2 等价类划分法的测试用例设计等价类划分法的测试用例设计n n在设计测试用例时,应同时考虑在设计测试用例时,应同时考虑有效等价类和无效等价类有效等价类和无效等价类测试用测试用例的设计。例的设计。n n根据已列出的等价类表可确定测试用例,具体过程如下:根据已列出的等价类表可确定测试用例,具体过程如下:(1 1)首先
26、为等价类表中的每一个等价类分别规定一个唯一的)首先为等价类表中的每一个等价类分别规定一个唯一的编号。编号。(2 2)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价)设计一个新的测试用例,使它能够尽量覆盖尚未覆盖的有效等价类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。类。重复这个步骤,直到所有的有效等价类均被测试用例所覆盖。(3 3)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等)设计一个新的测试用例,使它仅覆盖一个尚未覆盖的无效等价类。重复这一步骤,直到所有的无效等价类均被测试用例所价类。重复这一步骤,直到所有的无效等价类均被测试用例所覆盖。覆盖。现在学习的是第19
27、页,共70页3.4.3使用等价类划分法测试的实例使用等价类划分法测试的实例n n实例实例实例实例1 1 某报表处理系统要求用户输入处理报表的日期,日期限制某报表处理系统要求用户输入处理报表的日期,日期限制某报表处理系统要求用户输入处理报表的日期,日期限制某报表处理系统要求用户输入处理报表的日期,日期限制在在在在20032003年年年年1 1月至月至月至月至20112011年年年年1212月,及系统只能对该段期间内的报表进行月,及系统只能对该段期间内的报表进行月,及系统只能对该段期间内的报表进行月,及系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误。系统日期规定由年、处理,
28、如日期不在此范围内,则显示输入错误。系统日期规定由年、处理,如日期不在此范围内,则显示输入错误。系统日期规定由年、处理,如日期不在此范围内,则显示输入错误。系统日期规定由年、月的月的月的月的6 6位数字字符组成,前四位代表年,后两位代表月。如何用等价位数字字符组成,前四位代表年,后两位代表月。如何用等价位数字字符组成,前四位代表年,后两位代表月。如何用等价位数字字符组成,前四位代表年,后两位代表月。如何用等价类划分法设计测试用例,来测试程序的日期检查功能?类划分法设计测试用例,来测试程序的日期检查功能?类划分法设计测试用例,来测试程序的日期检查功能?类划分法设计测试用例,来测试程序的日期检查功
29、能?现在学习的是第20页,共70页(1 1)划分等价类)划分等价类)划分等价类)划分等价类n n根据对报表日期的限制可以划分为根据对报表日期的限制可以划分为3 3个有效等价类,个有效等价类,7 7个无效等个无效等价类。价类。输入数据有效等价类无效等价类报表日期的类型及报表日期的类型及长度长度(1 1)6 6位数字字位数字字符符(4 4)有非数字字符)有非数字字符(5 5)少于)少于6 6个数字符个数字符(6 6)多于)多于6 6个数字符个数字符年份范围年份范围(2 2)在)在2003201120032011之间之间(7 7)200320112011月份范围月份范围(3 3)在)在112112之
30、之间间(9 9)11212“报表日期”输入条件的等价类表现在学习的是第21页,共70页(2 2)为有效等价类设计测试用例)为有效等价类设计测试用例n n对上表中(对上表中(1 1)、()、(2 2)、()、(3 3)的)的3 3个有效等价类,用一个测试用例个有效等价类,用一个测试用例覆盖。覆盖。测试数据测试结果覆盖范围200405输入有效等价类(1)(2)(3)有效等价类测试用例现在学习的是第22页,共70页(3 3)为无效等价类设计测试用例)为无效等价类设计测试用例n n为每一个无效等价类至少设计一个测试用例。为每一个无效等价类至少设计一个测试用例。测试数据测试数据测试结果测试结果覆盖范围覆
31、盖范围2004my2004my输入无效输入无效等价类(等价类(4 4)2004520045输入无效输入无效等价类(等价类(5 5)20050032005003输入无效输入无效等价类(等价类(6 6)200106200106年份错误年份错误等价类(等价类(7 7)202005202005年份错误年份错误等价类(等价类(8 8)200900200900月份错误月份错误等价类(等价类(9 9)200919200919月份错误月份错误等价类(等价类(1010)无效等价类测试用例现在学习的是第23页,共70页3.4.4 使用等价类划分法测试的实例使用等价类划分法测试的实例n n实例实例实例实例2 2 三
32、角形问题三角形问题三角形问题三角形问题分析:分析:分析:分析:在多数情况下,是从输入域划分等价类的,但并非不能从被测在多数情况下,是从输入域划分等价类的,但并非不能从被测程序的输出域反过来定义等价类,事实上,这对于三角形问题却程序的输出域反过来定义等价类,事实上,这对于三角形问题却是最简单的划分方法。是最简单的划分方法。在三角形问题中,有四种可能的输出:等在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。能够确定下列输出(值域)等价类。R1=:R1=:边为边为a,b
33、,ca,b,c的等边三角形的等边三角形 R2=R2=:边为边为a,b,ca,b,c的等腰三角形的等腰三角形 R3=:R3=:边为边为a,b,ca,b,c的一般三角形的一般三角形 R4=:R4=:边边为为a,b,ca,b,c不能组成三角形不能组成三角形 现在学习的是第24页,共70页使用等价类划分法测试的实例使用等价类划分法测试的实例(续)(续)n n实例实例实例实例3 3 保险公司计算保费费率的程序保险公司计算保费费率的程序保险公司计算保费费率的程序保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为:某保险公司的人寿保险的保费计算方式为:投保额投保额 保险费率保险费率 其中,保险
34、费率依点数不同而有别,其中,保险费率依点数不同而有别,1010点及点及1010点以上保险费率点以上保险费率为为0.6%0.6%,1010点以下保险费率为点以下保险费率为0.1%0.1%;而点数又是由;而点数又是由 投保人的投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄年龄 性别性别婚姻婚姻抚养人数抚养人数 20392039 40594059 其它其它 M M F F 已婚已婚 未婚未婚 1 1人扣人扣0.50.5点点 最多扣最多扣3 3点点(四舍五入取整)(四舍五入取整)6 6点点 4 4点点 2 2点点 5 5点点 3 3
35、点点 3 3点点 5 5点点现在学习的是第27页,共70页计算保费费率的程序计算保费费率的程序(1 1)分析程序规格说明中给出和隐含的对输入条件的要求,列)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。出等价类表(包括有效等价类和无效等价类)。n n年龄:一位或两位非零整数,值的有效范围为年龄:一位或两位非零整数,值的有效范围为199199n n性别:一位英文字符,只能取值性别:一位英文字符,只能取值 MM或或 FFn n婚姻:字符,只能取值婚姻:字符,只能取值 已婚已婚 或或 未婚未婚 n n抚养人数:空白或一位非零整数抚养人数:空白或一位非零整
36、数(2 2)根据()根据(1 1)中的等价类表,设计能覆盖所有等价类的)中的等价类表,设计能覆盖所有等价类的 测试用例。测试用例。等价类表等价类表测试用例测试用例现在学习的是第28页,共70页习题习题n nNextDateNextDate函数函数函数函数 请使用等价类划分法为请使用等价类划分法为NextDateNextDate函数列出输入域等价函数列出输入域等价类表,并设计相应的测试用例。类表,并设计相应的测试用例。现在学习的是第31页,共70页3.5 边界值分析法边界值分析法3.5.1 3.5.1 边界值分析法概要边界值分析法概要3.5.2 3.5.2 边界值分析法测试用例边界值分析法测试用
37、例3.5.3 3.5.3 边界值分析法测试举例边界值分析法测试举例现在学习的是第32页,共70页3.5.1 边界值分析法概要边界值分析法概要n n边边界界值值分分析析法法就就是是对对输输入入或或输输出出的的边边界界值值进进行行测测试试的的一一种种黑黑盒盒测测试试方方法法。通通常常边边界界值值分分析析法法是是作作为为对对等等价价类类划划分分法法的的补补充充,这这种种情况下,其测试用例来自等价类的边界。情况下,其测试用例来自等价类的边界。n n为什么使用边界值分析法?为什么使用边界值分析法?无无数数的的测测试试实实践践表表明明,大大量量的的故故障障往往往往发发生生在在输输入入定定义义域域或或输输出
38、出值值域域的的边边界界上上,而而不不是是在在其其内内部部。因因此此,针针对对各各种种边边界界情情况况设计测试用例,通常会取得很好的测试效果。设计测试用例,通常会取得很好的测试效果。n n怎样用边界值分析法设计测试用例?怎样用边界值分析法设计测试用例?(1 1)首首先先确确定定边边界界情情况况。通通常常输输入入或或输输出出等等价价类类的的边边界界就就是是应应该该着着重测试的边界情况。重测试的边界情况。(2 2)选选取取正正好好等等于于、刚刚刚刚大大于于或或刚刚刚刚小小于于边边界界的的值值作作为为测测试试数数据据,而而不是选取等价类中的典型值或任意值。不是选取等价类中的典型值或任意值。现在学习的是
39、第33页,共70页举例举例 常见的边界值常见的边界值n n对对16-bit 16-bit 的整数而言的整数而言 32767 32767 和和 -32768-32768 是边界是边界n n屏幕上光标在最左上、最右下位置屏幕上光标在最左上、最右下位置n n报表的第一行和最后一行报表的第一行和最后一行n n数组元素的第一个和最后一个数组元素的第一个和最后一个n n循环的第循环的第 0 0 次、第次、第 1 1 次和倒数第次和倒数第 2 2 次、最后一次次、最后一次现在学习的是第34页,共70页边界值分析边界值分析(续)(续)n n通常情况下,软件测试所包含的边界检验有几种类型:通常情况下,软件测试所
40、包含的边界检验有几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、数字、字符、位置、质量、大小、速度、方位、尺寸、空空间等间等n n相应地,以上类型的边界值应该在:相应地,以上类型的边界值应该在:最大最大/最小、首位最小、首位/末位、上末位、上/下、最快下、最快/最慢、最高最慢、最高/最低、最低、最短最短/最长、最长、空空/满等情况下满等情况下实例分析实例分析现在学习的是第35页,共70页举例举例 利用边界值作为测试数据利用边界值作为测试数据项项边界值边界值测试用例的设计思路测试用例的设计思路字符字符起始起始-1-1个字个字符符/结束结束+1+1个字符个字符假设一个文本输入区域允许输入
41、假设一个文本输入区域允许输入1 1个到个到255255个个 字字符,输入符,输入1 1个和个和255255个字符作为有效等价类;输个字符作为有效等价类;输入入0 0个和个和256256个字符作为无效等价类,这几个数个字符作为无效等价类,这几个数值都属于边界条件值。值都属于边界条件值。数值数值最小值最小值-1/-1/最大值最大值+1+1假设某软件的数据输入域要求输入假设某软件的数据输入域要求输入5 5位的数据值,位的数据值,可以使用可以使用1000010000作为最小值、作为最小值、9999999999作为最大值;作为最大值;然后使用刚好小于然后使用刚好小于5 5位和大于位和大于5 5位的位的
42、数值来作为数值来作为边界条件。边界条件。空间空间小于空余小于空余空间一点空间一点/大于满空大于满空间一点间一点例如在用例如在用U U盘存储数据时,使用比剩余磁盘空间盘存储数据时,使用比剩余磁盘空间大一点(几大一点(几KBKB)的文件作为边界条件。)的文件作为边界条件。现在学习的是第36页,共70页内部边界值分析内部边界值分析n n在多数情况下,边界值条件是基于应用程序的功能设计而需在多数情况下,边界值条件是基于应用程序的功能设计而需要考虑的因素,可以从软件的规格说明或常识中得到,也是要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户可以很容易发现问题的。然而,在测试用例设计过最终用户
43、可以很容易发现问题的。然而,在测试用例设计过程中,某些边界值条件是不需要呈现给用户的,或者说用户程中,某些边界值条件是不需要呈现给用户的,或者说用户是很难注意到的,但同时确实属于检验范畴内的边界条件,是很难注意到的,但同时确实属于检验范畴内的边界条件,称为内部边界值条件或子边界值条件。称为内部边界值条件或子边界值条件。n n内部边界值条件主要有下面几种:内部边界值条件主要有下面几种:n n数值的边界值检验数值的边界值检验 n n字符的边界值检验字符的边界值检验n n其它边界值检验其它边界值检验n 小结:小结:在实际的测试用例设计中,需要将基本的软件设计要求和程序定义的要求结合起来,即结合基本边
44、界值条件和内部边界值条件来设计有效的测试用例。现在学习的是第37页,共70页选择测试用例的原则选择测试用例的原则(1)(1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界如果输入条件规定了值的范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围边界的值作为测试输入数据。值以及刚刚超过这个范围边界的值作为测试输入数据。(2)(2)如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个如果输入条件规定了值的个数,则用最大个数、最小个数和比最大个数多数多1 1个、比最小个数少个、比最小个数少1 1个的数作为测试数据。个的数作为测试数据。(3)(3)根据程序规格说明的每个输出条件,使用
45、原则根据程序规格说明的每个输出条件,使用原则 (1)(1)。(4)(4)根据程序规格说明的每个输出条件,使用原则根据程序规格说明的每个输出条件,使用原则 (2)(2)。(5)(5)如果程序的规格说明给出的输入域或输出域是有序集合如果程序的规格说明给出的输入域或输出域是有序集合 (如有(如有序表、顺序文件等),则应选取集合中的第一个和序表、顺序文件等),则应选取集合中的第一个和 最后一个元素最后一个元素作为测试用例。作为测试用例。(6)(6)如果程序中使用了一个内部数据结构,则应当选择这个内部数如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。据结构的边界上的
46、值作为测试用例。(7)(7)分析程序规格说明,找出其它可能的边界条件。分析程序规格说明,找出其它可能的边界条件。现在学习的是第40页,共70页n n实例实例实例实例1 1 三角形问题的边界值分析测试用例三角形问题的边界值分析测试用例三角形问题的边界值分析测试用例三角形问题的边界值分析测试用例 在三角形问题描述中,除了要求边长是整数外,没有给出其它在三角形问题描述中,除了要求边长是整数外,没有给出其它的限制条件。在此,我们将三角形每边边长的取范围值设值为的限制条件。在此,我们将三角形每边边长的取范围值设值为1,1,100100 。说明:如果程序规格说明中没有显式地给出边界值,则可以在设计测说明:
47、如果程序规格说明中没有显式地给出边界值,则可以在设计测试用例前先设定取值的下限值和上限值。试用例前先设定取值的下限值和上限值。n n实例实例实例实例2 NextDate2 NextDate函数的边界值分析测试用例函数的边界值分析测试用例函数的边界值分析测试用例函数的边界值分析测试用例 在在NextDateNextDate函数中,隐含规定了变量函数中,隐含规定了变量mouthmouth和变量和变量dayday的取值的取值范围为范围为1mouth121mouth12和和1day311day31,并设定变量,并设定变量yearyear的取值范围为的取值范围为1912year2050 1912year
48、2050。3.5.3 边界值分析法测试举例边界值分析法测试举例测试用例测试用例测试用例测试用例现在学习的是第41页,共70页习题习题n n找零钱最佳组合找零钱最佳组合找零钱最佳组合找零钱最佳组合 假设商店货品价格假设商店货品价格(R)(R)都不大于都不大于100100元(且为整数),若顾客元(且为整数),若顾客付款付款(P)(P)在在100100元内,现有一个程序能在每位顾客付款后给出找零钱的元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。最佳组合(找给顾客货币张数最少)。假定此商店的货币面值只包括:假定此商店的货币面值只包括:5050元元(N50)(N50)
49、、1010元元(N10)(N10)、5 5元元(N5)(N5)、1 1元元(N1)(N1)四种。四种。请结合等价类划分法和边界值分析法为上述程序设计请结合等价类划分法和边界值分析法为上述程序设计 出相应出相应的测试用例。的测试用例。现在学习的是第44页,共70页3.6 因果图法因果图法3.6.1 3.6.1 因果图法的简介3.6.2 3.6.2 因果图因果图3.6.3 3.6.3 因果图法测试举例因果图法测试举例现在学习的是第45页,共70页3.6.1 因果图法的简介因果图法的简介n n因果图法产生的背景:因果图法产生的背景:等价类划分法和边界值分析方法都是着重考虑输入条件,等价类划分法和边界
50、值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。但多个输入条件组合起来可能出错的情况却被忽视了。如果在测试时必须考虑输入条件的各种组合,则可能的如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例多种条件