版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1页/共81页软件输入不深入代码细节的测不深入代码细节的测试方法称为试方法称为动态黑盒动态黑盒测试。测试。软件测试员充当客户软件测试员充当客户来使用。来使用。输出测试对象一个黑盒子动态黑盒测试动态黑盒测试 戴上眼罩测试软件戴上眼罩测试软件第2页/共81页 1.等价分类法 所谓等价分类,就是把所有可能的输入数据(有效的和所谓等价分类,就是把所有可能的输入数据(有效的和无效的)划分成若干个无效的)划分成若干个等价类等价类( (等价类是指某个输入域的子等价类是指某个输入域的子集合。集合。 在该集合中,各个输入数据对于揭露程序中的错误在该集合中,各个输入数据对于揭露程序中的错误都是等价的都是等价的)
2、 )。 因此,可以把全部输入数据合理地划分为若因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以少量的代表性测试数据,来取得较好的测试件,这样就可以少量的代表性测试数据,来取得较好的测试结果。结果。第3页/共81页WindowsWindows计算器程序实例分析计算器程序实例分析(1 1)你测试了)你测试了1+11+1,1+2,1+31+2,1+3和和1+41+4之后,还有必要测之后,还有必要测试试1+51+5和和1+61+6吗?你能放心地认为它们正确吗?吗?你能放心地认为它们正确吗?(2
3、2)1+151+15与与1+999999999999999999999999999999991+99999999999999999999999999999999有有什么区别呢?什么区别呢?(3 3)测试计算器中)测试计算器中“菜单菜单”命令中的复制功能(单击命令中的复制功能(单击复制命令,在菜单弹出时键入复制命令,在菜单弹出时键入c c或者或者C C,或者按,或者按Ctrl+c,Ctrl+c,这几种方法在设计测试用例时可以缩减为按这几种方法在设计测试用例时可以缩减为按Ctrl+cCtrl+c组组合键合键) )注意注意:在寻找等价类划分时,考虑把软件具有相似输入、:在寻找等价类划分时,考虑把软件
4、具有相似输入、相似输出、相似操作的分在一组,这些组就是等价划分。相似输出、相似操作的分在一组,这些组就是等价划分。第4页/共81页 是指对于程序的规格说明来说,是是指对于程序的规格说明来说,是合理的合理的 有意义的输入数据有意义的输入数据构成的集合。利用它可以检构成的集合。利用它可以检 验程序是否实现预先规定的功能和性能。验程序是否实现预先规定的功能和性能。 (1)有效等价类 第5页/共81页 是指对于程序的规格说明来说,是是指对于程序的规格说明来说,是不合理不合理 的的、无意义的输入数据无意义的输入数据构成的集合。程序员主构成的集合。程序员主 要利用这一类测试用例来检查程序中功能和性要利用这
5、一类测试用例来检查程序中功能和性 能的实现是否能的实现是否不符合不符合规格说明要求。规格说明要求。 (2)无效等价类 第6页/共81页n 划分等价类不仅要要考虑代表划分等价类不仅要要考虑代表“有效有效”输入值输入值 的有效等价类,还需考虑代表的有效等价类,还需考虑代表“无效无效”输入值的无输入值的无 效等价类。效等价类。 采用等价分类法要注意以下两点: :n 每一无效等价类至少要用一个测试用例,不每一无效等价类至少要用一个测试用例,不 然就可能漏掉某一类错误,但允许若干有效等价然就可能漏掉某一类错误,但允许若干有效等价 类合用同一个测试用例,以便进一步减少测试的类合用同一个测试用例,以便进一步
6、减少测试的 次数。次数。 第7页/共81页如何划分等价类?有效等价类( (合理等价类) )无效等价类( (不合理等价类) ) 第8页/共81页p划分等价类的规则划分等价类的规则 (5 5个个) )(1)(1)如果输入条件规定了取值范围,可定义一个有效等价 类和两个无效等价类。例1.1:1.1: 输入值是学生成绩,范围是0 0100100。0 1000 100 有效等价类00成绩100100无效等价类 成绩100100 无效等价类 成绩01818岁,性别男,地区岁,性别男,地区河河南的人南的人。 答案答案: : 有效等价类:有效等价类:1 1个:年龄个:年龄1818岁岁andand性别男性别男a
7、ndand地区地区河南河南 无效等价类:无效等价类:3 3个:年龄个:年龄=18=18岁,岁,or or 性别性别!男男,oror地区地区!河南河南第13页/共81页p根据等价类创建测试用例的步骤根据等价类创建测试用例的步骤建立等价类表,列出所有划分出的等价类:建立等价类表,列出所有划分出的等价类:输入条件输入条件有效等价类有效等价类无效等价类无效等价类第14页/共81页(1)(1)为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;(2)(2)设计一个新的测试用例,使其设计一个新的测试用例,使其尽可能多地覆盖尚尽可能多地覆盖尚未被覆盖的有效等价类,未被覆盖的有效等价类,重复这一步
8、,直到所有重复这一步,直到所有的有效等价类都被覆盖为止;的有效等价类都被覆盖为止;(3)(3)设计一个新的测试用例,使其设计一个新的测试用例,使其仅覆盖一个尚未被仅覆盖一个尚未被覆盖的无效等价类,覆盖的无效等价类,重复这一步,直到所有的无重复这一步,直到所有的无效等价类都被覆盖为止。效等价类都被覆盖为止。从划分出的等价类中按以下原则设计测试用例:从划分出的等价类中按以下原则设计测试用例:第15页/共81页p常见等价类划分测试形式常见等价类划分测试形式 针对是否对无效数据进行测试,可以将等价类测试分为 标准等价类测试和健壮等价类测试。标准等价类测试标准等价类测试不考虑无效数据值,测试用例使用每个
9、等价类中的一个值。健壮等价类测试健壮等价类测试主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值; 对无效输入,一个测试用例有一个无效值,其他值均取有效值。第16页/共81页p使用等价类划分法测试的实例使用等价类划分法测试的实例 例1 三角形问题分析: 在多数情况下,是从输入域划分等价类的,但并非不能从被测程序的输出域反过来定义等价类,事实上,这对于三角形问题却是最简单的划分方法。 在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。 R1=a,b,c:边为a,b,c 的等边三角形 R2=a,b
10、,c:边为a,b,c 的等腰三角形 R3=a,b,c:边为a,b,c 的一般三角形 R4=a,b,c:边为a,b,c 不能构成三角形 标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。第17页/共81页三角形问题的4个标准等价类测试用例第18页/共81页三角形问题的7个健壮等价类测试用例第19页/共81页例例2:2:某报表处理系统要求用户输入处理报表的日期,日期某报表处理系统要求用户输入处理报表的日期,日期限制在限制在20052005年年1 1月至月至20092009年年1212月,即系统只能对该段期间月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错内
11、的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的误信息。系统日期规定由年、月的6 6位数字字符组成,前位数字字符组成,前四位代表年,后两位代表月。四位代表年,后两位代表月。 如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例, ,来测试程序的日期来测试程序的日期检查功能?检查功能?第20页/共81页第一步:等价类划分第一步:等价类划分第二步:为有效等价类设计测试用例。(多个有第二步:为有效等价类设计测试用例。(多个有效等价类可使用一个测试用例)效等价类可使用一个测试用例)第三步:为每一个无效等价类设至少第三步:为每一个无效等价类设至少 设计一个测设计一个
12、测试用例试用例第21页/共81页第一步:等价类划分第一步:等价类划分输入等价类 有效等价类 无效等价类 报表日期的类型及长度6 6位数字字符(1)(1)有非数字字符 (4)(4)少于6 6个数字字符 (5)(5)多于6 6个数字字符 (6)(6)年份范围在2005200520092009之间 (2)(2)小于2005 (7)2005 (7)大于2009 (8)2009 (8)月份范围在1 11212之间(3)(3)“报表日期报表日期”输入条件的等价类表输入条件的等价类表小于1 (9)1 (9)大于12 (10)12 (10)第22页/共81页第二步:为有效等价类设计测试用例对表中编号为1 1,
13、2 2,3 3的3 3个有效等价类用一个测试用例覆盖: 测试数据 期望结果 覆盖范围200705200705等价类(1)(2)(3)(1)(2)(3)输入有效第23页/共81页第三步:为每一个无效等价类设至少设计一个测试用例 不能出现相同不能出现相同的测试用例的测试用例 测试数据测试数据 期望结果期望结果 覆盖范围覆盖范围001001MAYMAY等价类(4)(4)输入无效2006520065等价类(5)(5)输入无效20070052007005等价类(6)(6)输入无效200420040505等价类(7)(7)输入无效201020100505等价类(8)(8)输入无效200820080000等
14、价类(9)(9)输入无效200620061313等价类(10)(10)输入无效 本例的1010个等价类至少需要8 8个测试用例第24页/共81页例3.在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下: 用户名要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字;密码要求为616位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。分析如下:分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类),如表4-5所示。第25页/共81页输入条件有效等价类编号无效等价类编号用户名416位1少于4位8多于1
15、6位9首字符为字母2首字符为除字母、数字之外的其他字符10首字符为数字3英文字母、数字、“-”、“_”组合4组合中含有除英文字母、数字、“-”、“_”之外的其他特殊字符11密码616位5少于6位12多于16位13英文字母、数字、“-”、“_”组合6组合中含有除英文字母、数字、“-”、“_”之外的其他特殊字符14确认密码内容同密码相同7内容同密码相同,但字母大小写不同15表4-5 等价类表第26页/共81页根据上述等价类表,设计测试用例如表4-6所示。测试用例用户名密码确认密码预期输出TC1abc_2000abc_123abc_123注册成功TC22000-abc123-abc123-abc注册
16、成功TC3abc1234567812345678提示用户名错误TC4abcdefghijk1234561234567812345678提示用户名错误TC5_abc1231234567812345678提示用户名错误TC6abc&1231234567812345678提示用户名错误TC7abc_1231234512345提示密码错误TC8abc_123abcdefghijk123456abcdefghijk123456提示密码错误TC9abc_123abc&123abc&123提示密码错误TC10abc_123abc_123Abc_123提示密码错误表4-6 测试用例第27页/共81页 例4.
17、保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为: 投保额保险费率 其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:第28页/共81页(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。年龄:一位或两位非零整数,值的有效范围为199性别:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚抚养人数:空白或一位非零整数(19)点数 :一位或两位非零整数,值的范围为199(2)根据(1)中的等价类表,设计能
18、覆盖所有等价类的 测试用例。第29页/共81页输入条件输入条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号年龄年龄2039岁岁14059岁岁2119岁岁6099岁岁3小于小于112大于大于9913性别性别单个英文字符单个英文字符4非英文字符非英文字符14非单个英文字符非单个英文字符15M5除除M和和F之外的之外的其它单个字符其它单个字符16F6婚姻婚姻已婚已婚7除除已婚已婚和和未婚未婚之外的其它字符之外的其它字符17未婚未婚8抚养人数抚养人数空白空白9除空白和数字之外除空白和数字之外的其它字符的其它字符1816人人10小于小于11969人人11大于大于920第30页/共81页测试用
19、例测试用例编号编号输入数据输入数据预期输出预期输出年龄年龄性别性别婚姻婚姻抚养人数抚养人数保险费率保险费率127F未婚未婚空白空白0.6%250M已婚已婚20.6%370F已婚已婚70.1%40M未婚未婚空白空白无法推算无法推算5100F已婚已婚3无法推算无法推算699男男已婚已婚4无法推算无法推算71Child未婚未婚空白空白无法推算无法推算845N已婚已婚5无法推算无法推算938F离婚离婚1无法推算无法推算1062M已婚已婚没有没有无法推算无法推算1118F未婚未婚0无法推算无法推算1240M未婚未婚10无法推算无法推算第31页/共81页2. 2. 边界值分析法(边界值分析法(Bounda
20、ry Value AnalysisBoundary Value Analysis)软件边界与悬崖很类似软件边界与悬崖很类似测试内点测试内点测试外点测试外点被测试被测试子域子域第32页/共81页v边界值分析法与等价类划分法区别边界值分析法与等价类划分法区别(1)(1)边界值分析不是从某等价类中随便挑一个作为边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为代表,而是使这个等价类的每个边界都要作为测试条件。测试条件。(2)(2)边界值分析不仅考虑输入条件,还要考虑输出边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况(空间产生的测试情况(NextDateNex
21、tDate函数用例)。函数用例)。第33页/共81页 采用边界值分析法来选择测试用例,可使采用边界值分析法来选择测试用例,可使 得被测程序能在得被测程序能在边界值及其附近边界值及其附近运行,从而更运行,从而更 有效地暴露出程序中潜藏的错误。有效地暴露出程序中潜藏的错误。边界值分析法边界值分析法第34页/共81页 边界值分析法边界值分析法第35页/共81页第36页/共81页1: Rem Creat a 10 element integer array2: Rem Initialize each element to -13: Dim data(10) As Integer4: Dim i As
22、Integer5: For i=1 To 106: data(i)= -17: Next I8: End演示边界条件缺陷的简单演示边界条件缺陷的简单BASIC程序程序第37页/共81页 边界值设计原则边界值设计原则(1 1)如果输入条件规定了值的)如果输入条件规定了值的范围范围,则应取刚达到这个,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。为测试输入数据。 例如,例如,如果程序的规格说明中规定:如果程序的规格说明中规定:“重量在重量在1010公斤公斤至至5050公斤范围内的邮件,其邮费计算公式为公斤范围内的邮件,其
23、邮费计算公式为 ”。作 为 测 试 用 例 , 我 们 应 取作 为 测 试 用 例 , 我 们 应 取 1 01 0 及及 5 05 0 , 还 应 取, 还 应 取10.01,49.99,9.9910.01,49.99,9.99及及50.0150.01等。等。第38页/共81页 (2 2)如果输入条件规定了值的)如果输入条件规定了值的个数个数,则用最大个数、,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测最小个数、比最小个数少一、比最大个数多一的数作为测试数据。试数据。 例如,例如,一个输入文件应包括一个输入文件应包括1-2551-255个记录,则测试用个记录,则测试用例
24、可取例可取1 1和和255255,还应取,还应取0 0及及256256等。等。第39页/共81页 3.3.将规则将规则1 1和和2 2应用于应用于输出条件输出条件,即设计测试用例,即设计测试用例使输出值达到边界值及其左右的值。使输出值达到边界值及其左右的值。 例如,例如,一程序属于情报检索系统,要求每次一程序属于情报检索系统,要求每次”最最少显示少显示1 1条、最多显示条、最多显示4 4条情报摘要条情报摘要”,这时我们应考,这时我们应考虑的测试用例包括虑的测试用例包括1 1和和4 4,还应包括,还应包括0 0和和5 5等。等。 再如,再如,一个学生成绩管理系统规定,只能查询一个学生成绩管理系统
25、规定,只能查询95-9895-98级大学生的各科成绩,可以设计测试用例,使级大学生的各科成绩,可以设计测试用例,使得查询范围内的某一届或四届学生的学生成绩,还需得查询范围内的某一届或四届学生的学生成绩,还需设计查询设计查询9494级、级、9999级学生成绩的测试用例(不合理级学生成绩的测试用例(不合理输出等价类)。输出等价类)。l由于输出值的边界不与输入值的边界相对应,所以要检查输出由于输出值的边界不与输入值的边界相对应,所以要检查输出值的边界不一定可能,要产生超出输出值之外的结果也不一定值的边界不一定可能,要产生超出输出值之外的结果也不一定能做到,但必要时还需试一试。能做到,但必要时还需试一
26、试。第40页/共81页(4 4)如果程序的规格说明给出的输入域或输出域是)如果程序的规格说明给出的输入域或输出域是有有序集合序集合(如顺序文件、线性表等),则应选取集合的(如顺序文件、线性表等),则应选取集合的第一个元素和最后一个元素作为测试用例。第一个元素和最后一个元素作为测试用例。 (5 5)如果程序中使用了一个内部数据结构,则应当选)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。择这个内部数据结构的边界上的值作为测试用例。 例如,例如,如果程序中定义了一个数组,其元素下如果程序中定义了一个数组,其元素下标的下界是标的下界是0 0,上界是,上界是10
27、0100,那么应选择达到这个数,那么应选择达到这个数组下标边界的值,如组下标边界的值,如0 0与与100100,作为测试用例。,作为测试用例。(6 6)分析规格说明,找出其他可能的边界条件。)分析规格说明,找出其他可能的边界条件。第41页/共81页 程序中判断输入日期(年月)是否有效,假设使用如下程序中判断输入日期(年月)是否有效,假设使用如下语句:语句: IFIF(ReportDate=MaxDateReportDate=MinDateReportDate=MinDate) THEN THEN 产生指定日期报表产生指定日期报表 ELSE ELSE 显示错误信息显示错误信息ENDIFENDIF
28、如果将程序中的如果将程序中的“=”误写为误写为“ ”,则上例的等价类划分,则上例的等价类划分中所有测试用例都不能发现这一错误,采用边界值分析法中所有测试用例都不能发现这一错误,采用边界值分析法的测试用例如下表所示。的测试用例如下表所示。 n对上述报表处理系统中的报表日期输入条件,以下对上述报表处理系统中的报表日期输入条件,以下用边界值分析设计测试用例。用边界值分析设计测试用例。第42页/共81页输入输入条件条件报表日报表日期的类期的类型及长型及长度度1 1个数字字符个数字字符5 5个数字字符个数字字符7 7个数字字符个数字字符有有1 1个非数字字符个非数字字符全部是非数字字符全部是非数字字符6
29、 6个数字字符个数字字符显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错输入有效输入有效日期日期范围范围月份月份范围范围“报表日期报表日期”边界值分析法测试用例边界值分析法测试用例测试用例说明测试用例说明测试数据测试数据期望结果期望结果选取理由选取理由5 52006520065200700520070052008.52008.5MAY-MAY-200605200605月份为月份为1 1月月月份为月份为1212月月月份月份112122005012005012005122005122005002005002005132005132005012005012009122
30、00912200500200500200913200913输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错在有效范围在有效范围边界上选取边界上选取数据数据仅有仅有1 1个合法字符个合法字符比有效长度少比有效长度少1 1比有效长度多比有效长度多1 1只有只有1 1个非法字符个非法字符6 6个非法字符个非法字符类型及长度均有效类型及长度均有效最小日期最小日期最大日期最大日期刚好小于最小日期刚好小于最小日期刚好大于最大日期刚好大于最大日期最小月份最小月份最大月份最大月份刚好小于最小月份刚好小于最小月份刚好大于最大月份刚好
31、大于最大月份第43页/共81页 边界值分析法与等价类划分法比较边界值分析法与等价类划分法比较 (1)(1)等价分类法的测试数据是在各个等价类允许的值域内等价分类法的测试数据是在各个等价类允许的值域内任意选取的,而边界值分析的测试数据必须在边界值附近任意选取的,而边界值分析的测试数据必须在边界值附近选取。选取。 (2)(2)一般地说,用边界值分析法设计的测试用例比等价分一般地说,用边界值分析法设计的测试用例比等价分类法的代表性更广,发现错误的能力也更强。但是对边界类法的代表性更广,发现错误的能力也更强。但是对边界的分析与确定比较复杂,要求测试人员具有更多的经验和的分析与确定比较复杂,要求测试人员
32、具有更多的经验和创造性。创造性。 (3)(3)还需指出,有些包含的边界情况比较简单,只需要分还需指出,有些包含的边界情况比较简单,只需要分析输入等价类。在有些情况下,除了考察输入值边界外,析输入等价类。在有些情况下,除了考察输入值边界外,还需要考察还需要考察输出值输出值和其他可能存在的边界。和其他可能存在的边界。第44页/共81页例:假定被测程序是一个计算例:假定被测程序是一个计算x x的正弦值的正弦值sinsin(x x), ,其输其输出具有出具有3 3个边界值个边界值-1-1、0 0、1 1。在选择测试用例时,应。在选择测试用例时,应使使x x的值分别产生上述的的值分别产生上述的3 3种输
33、出种输出边界值,即选取边界值,即选取- -/2/2、0 0、/2/2作为作为x x的测试数据。的测试数据。第45页/共81页 3. 3.错误猜测法 所谓猜测,就是猜测被测程序在哪些地方容易 出错,然后针对可能的薄弱环节来设计测试用例。 显然它比前两种方法更多地依靠测试人员的直觉与 经验。所以一般都先用前两方法设计测试用例,然后再用猜测法去补充一些例子作为辅助的手段。错误猜测法第46页/共81页第47页/共81页错误推测法的基本思想基本思想是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。显然,它比前两种方法更多地依靠测试人员的直觉和经验。所以,一般都先用前两种方法
34、设计测试用例,然后用猜错法补充一些例子作为辅助手段。根据经验来设计测试用例的方法:l 例如,数据测试中的:缺省值空白空值零值无第48页/共81页l 又如输入、输出数据为零是容易发生错误的情况;再如, 输入表格为空或输入表格只有一行是容易出错的情况等。例如对于一个排序程序,列出以下几项需特别测试的情况: (1)输入表为空。(2)输入表只含一个元素。(3)输入表中所有元素均相同。 (4)输入表中已排好序。l 仍以上述的报表日期为例,在已经用等价分类法和边界值分析发设计过测试用例的基础上,还可用错误猜测法补充一些测试用例,例如:第49页/共81页4. 决策表法 4.1决策表法决策表通常由四个部分组成
35、,如图4-1所示。条件桩:列出了问题的所有条件,通常认为列出的条件的先后次序无关紧要。动作桩:列出了问题规定的可能采取的操作,这些操作的排列顺序没有约束。条件项:针对条件桩给出的条件列出所有可能的取值。动作项:与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。规则:一种条件取值组合和与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成了判定表中的一个规则。条件取值组合的数目就是规则的数目。第50页/共81页图4-1 决策表的组成第51页/共81页 建立决策表的步骤: 列出条件桩和动作桩。 确定规则的个数,用来为规则编号。若有n个原因,由于每个原因可取0或1,故有2的n次方个
36、规则。 完成所有条件项的填写。 完成所有动作项的填写。 合并相似规则,用以对初始决策表进行简化(见书P56)。 建立了决策表后,可针对决策表中的每一列有效规则设计一个测试用例,用以对程序进行黑盒测试。第52页/共81页决策表最突出的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例,可以将条件理解为输入,将动作理解为输出。4.2 实例分析 举例:以下列问题为例给出构造决策表的具体过程。 如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,
37、则继续生产;若该产品销售不好,且库存量不低,则停止生产。第53页/共81页 规则选项1234条件:C1:销售好?C2:库存低?TTTFFTFF动作:a1:增加生产a2:继续生产a3:停止生产表4-2 决策表解法如下:l确定规则的个数。对于本题有2个条件(销售、库存),每 个条件可以有两个取值,故有22=4种规则。l列出所有的条件桩和动作桩。l填入条件项。l填入动作项,得到初始决策表,如表4-2所示。第54页/共81页 5. 5.因果图法因果图法 因果图法是借助因果图法是借助图形图形来设计测试用例的一种系来设计测试用例的一种系 统方法。它适用于被测程序具有多种输入条件,统方法。它适用于被测程序具
38、有多种输入条件, 程序的输出又依赖于输入条件的各种组合的情况。程序的输出又依赖于输入条件的各种组合的情况。 因果图是一种简化了的因果图是一种简化了的逻辑图逻辑图,它能直观地,它能直观地 表明程序输入条件(原因)和输出动作(结果)表明程序输入条件(原因)和输出动作(结果) 之间的相互关系。之间的相互关系。5.1 5.1 因果图法因果图法第55页/共81页 在等价类划分方法和边界值方法中未考虑输入条件的各种组合,当输入条件比较多时,输入条件组合的数目会相当大。 因果图法是一种帮助人们系统地选择一组高效测试用例的方法,它既考虑了输入条件的组合关系,又考虑了输出条件对输入条件的依赖关系,即因果关系,其
39、测试用例发现错误的效率比较高。 因果图方法的特点是:考虑输入条件的组合关系;考虑输出条件对输入条件的依赖关系,即因果关系;测试用例发现错误的效率高;能检查出功能说明中的某些不一致或遗漏。第56页/共81页 在因果图中使用4种符号分别表示4种因果关系,如图5-1所示。用直线连接左右节点,其中左节点ci表示输入状态(或称原因),右节点ei表示输出状态(或称结果)。ci和ei都可取值0或1,0表示某状态不出现,1表示某状态出现。 (a)恒等 (b)非 (c)或 (d)与图5-1 因果图的基本符号 第57页/共81页 图中左边的结点表示原因,右边的结点表示结果 原因和结果之间的关系有:恒等:若恒等:若
40、c1=1,则,则e1=1;若;若c1=0,则,则e1=0非:若非:若c1=1,则,则e1=0;若;若c1=0,则,则e1=1或:若或:若c1=1或或c2=1 或或c3=1 ,则,则e1=1;否则;否则e1=0与:若与:若c1=c2=c3=1 ,则,则e1=1;否则;否则e1=0 画因果图时原因在左,结果在右,由上向下排列,并根据功能说明中规定的原因和结果之间的关系,用上述符号连接起来。必要时还可以引入一些中间结点。第58页/共81页图5-2 约束符号第59页/共81页 图中互斥、包含、唯一、要求是对原因的约束,屏蔽是对结果的约束互斥:表示互斥:表示a、b、c中至多只有一个为中至多只有一个为1,
41、即不同时为,即不同时为1包含:表示包含:表示a、b、c中至少有一个为中至少有一个为1,即不同时为,即不同时为0唯一:表示唯一:表示a、b、c中有且仅有一个中有且仅有一个1要求:表示若要求:表示若a=1 ,则要求,则要求b必须为必须为1,即不可出现,即不可出现a=1 且且b=0屏蔽(强制):表示若屏蔽(强制):表示若a=1 ,则,则b必须为必须为0,即不可出,即不可出现现a=1 且且b=1第60页/共81页利用因果图产生测试用例的基本步骤利用因果图产生测试用例的基本步骤(1)(1) 分析软件规格说明描述中,分析软件规格说明描述中,哪些是原因哪些是原因( (即即输入条件或输入条件的等价类输入条件或
42、输入条件的等价类) ),哪些是结哪些是结果果( (即输出条件即输出条件) ),并给每个原因和结果赋予,并给每个原因和结果赋予一个标识符。一个标识符。(2)(2) 分析软件规格说明描述中的语义,找出分析软件规格说明描述中的语义,找出原因原因与结果与结果之间,之间,原因与原因原因与原因之间对应的是什么之间对应的是什么 关系关系? ? 根据这些关系,画出因果图。根据这些关系,画出因果图。第61页/共81页 (3) (3) 由于语法或环境限制,有些原因与原因之由于语法或环境限制,有些原因与原因之 间,原因与结果之间的组合情况不可能出间,原因与结果之间的组合情况不可能出 现。为表明这些特殊情况,在因果图
43、上用现。为表明这些特殊情况,在因果图上用 一些记号一些记号标明约束或限制条件标明约束或限制条件。(4)(4) 把因果图转换成决策表。把因果图转换成决策表。(5)(5) 把决策表的每一列拿出来作为依据,设计把决策表的每一列拿出来作为依据,设计测试用例。测试用例。 从因果图生成的测试用例中包括了所有输入数据的取从因果图生成的测试用例中包括了所有输入数据的取TRUETRUE与与FALSEFALSE情况,构成的测试用例数目达到最少,且测试情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。用例数目随输入数据数目的增加而线性地增加。第62页/共81页图5-3 因果图法示例第
44、63页/共81页5.2因果图法测试用例 某软件规格说明中包含这样的要求:输入的第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;但如果第一个字符不正确,则给出信息L;如果第二个字符不是数字,则给出信息M。 解法如下:(1)分析程序的规格说明,列出原因和结果。原因:C1-第一个字符是A C2-第一个字符是B C3-第二个字符是一个数字结果:e1-给出信息Le2-修改文件e3-给出信息M(2)将原因和结果之间的因果关系用逻辑符号连接起来,得到因果图,如图5-4所示。编号为11的中间节点是导出结果的进一步原因。第64页/共81页图5-4 因果图示例第65页/共81页图5-5
45、 具有E约束的因果图 因为C1和C2不可能同时为1,即第一个字符不可能既是A又是B,在因果图上可对其施加E约束,得到具有约束的因果图,如图5-5所示。第66页/共81页(3)将因果图转换成决策表,如表5-1所示。(4)设计测试用例。表5-1中的前两种情况,因为原因1和原因2不可能同时为1,所以应排除这两种情况。根据此表,可以设计出6个测试用例,如表5-2所示。 规则规则选项选项12345678条件条件C111110000C211001100C31010101011111100动作动作e1000011e2101000e3010101不可能不可能11测试用例测试用例A5A#B9B?X2Y%表5-1
46、 决策表 第67页/共81页表5-2 测试用例 编号输入数据预期输出TC1A5修改文件TC 2A#给出信息MTC 3B9修改文件TC 4B?给出信息MTC 5X2给出信息LTC 6Y%给出信息L和信息M第68页/共81页 例2 2 :某电力公司有A A、B B、C C、D D四类收费标准, ,并规定: 居民用电 100100度/ /月 按A A类收费 100100度/ /月 按B B类收费 动力用电 1000010000度/ /月,非高峰,B B类收费 1000010000度/ /月,非高峰,C C类收费 1000010000度/ /月, 高峰,C C类收费 1000010000度/ /月,
47、高峰,D D类收费第69页/共81页 输入条件(原因) 输出动作(后果)c1居民用电 e1 按A类收费c2动力用电 e2 按B类收费c3 100度/月 e3 按C类收费c410000度/月 e4 按D类收费c5高峰用电 设计测试用例的步骤:1. 列举所有存在的输入条件和输出结果。2. 根据输入条件和输出条件生成决策表。第70页/共81页把因果图转换为决策表组合条件组合条件条件条件( (原因原因) ) 动作动作( (结果结果) )e1e1e2e2e3e3c1c1c2c2c3c31 12 23 34 45 56 61 1- -1 11 1- -0 0- -1 11 1- - - -1 11 10 00 00 00 01 10 00 00 00 01 11 10 0c4c41
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型下HT公司供应链管理优化策略研究
- 2025 奇妙的静电放电实验作文课件
- 数字化转型下A公司绩效考核体系的创新与优化:基于战略导向与员工发展的双重视角
- 数字化浪潮下欧莱雅(中国)化妆品网络营销策略的创新与突破
- 数字化浪潮下企业生产管理的信息化转型与实践探索
- 数字化浪潮下IT系统风险控制策略与实践深度剖析:理论、方法与案例研究
- 2025 高中阅读理解之托物寓意深刻性课件
- 非织造布生产线项目建议书
- 城市排水管道雨污分流改造项目投标书
- 中医院数字化影像系统方案
- 北师大版六年级下册《正比例》课件市公开课一等奖省赛课获奖课件
- 餐厅装修施工方案
- 整体式铁路信号箱式机房产品介绍
- 质量文化的培训课件
- 船舶动力学与运动控制
- 地铁行业沟通技巧分析
- 地震安全性评价工作程序
- 2023年六年级小升初自荐信简历
- 南开大学有机化学答案
- 2023年国际心肺复苏指南(标注)
- 百词斩高考高分词汇电子版
评论
0/150
提交评论