黑盒测试及其测试实例课件

上传人:沈*** 文档编号:241849522 上传时间:2024-07-30 格式:PPT 页数:81 大小:745.50KB
返回 下载 相关 举报
黑盒测试及其测试实例课件_第1页
第1页 / 共81页
黑盒测试及其测试实例课件_第2页
第2页 / 共81页
黑盒测试及其测试实例课件_第3页
第3页 / 共81页
点击查看更多>>
资源描述
u测试的方法与技术测试的方法与技术软件测试的软件测试的策略和方法策略和方法静态测静态测试方法试方法动态测动态测试方法试方法计算机辅助静计算机辅助静态分析方法态分析方法黑盒测试方法黑盒测试方法 黑盒测试方法是在程序接口上进行测试,主要是为了黑盒测试方法是在程序接口上进行测试,主要是为了黑盒测试方法是在程序接口上进行测试,主要是为了黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:发现以下错误:发现以下错误:发现以下错误:是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能是否有不正确或遗漏了的功能?在接口上,在接口上,在接口上,在接口上,输入能否正确地接受输入能否正确地接受输入能否正确地接受输入能否正确地接受?能否输出正确能否输出正确能否输出正确能否输出正确的结果的结果的结果的结果?是否有数据结构错误或外部信息是否有数据结构错误或外部信息是否有数据结构错误或外部信息是否有数据结构错误或外部信息(例如数据文件例如数据文件例如数据文件例如数据文件)访问错误访问错误访问错误访问错误?性能上是否能够满足要求性能上是否能够满足要求性能上是否能够满足要求性能上是否能够满足要求?是否有初始化或终止性错误是否有初始化或终止性错误是否有初始化或终止性错误是否有初始化或终止性错误?软件输入输入不深入代码细节的测不深入代码细节的测试方法称为试方法称为动态黑盒动态黑盒测试。测试。软件测试员充当客户软件测试员充当客户来使用。来使用。输出输出这种方法是把这种方法是把这种方法是把这种方法是把测试对象测试对象看做看做看做看做一个黑盒子一个黑盒子,测试人员完全不考虑程序,测试人员完全不考虑程序,测试人员完全不考虑程序,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。程序的功能是否符合它的功能说明。程序的功能是否符合它的功能说明。程序的功能是否符合它的功能说明。动态黑盒测试动态黑盒测试 戴上眼罩测试软件戴上眼罩测试软件 1.等价分类法等价分类法 所所谓谓等等价价分分类类,就就是是把把所所有有可可能能的的输输入入数数据据(有有效效的的和和无无效效的的)划划分分成成若若干干个个等等价价类类(等等价价类类是是指指某某个个输输入入域域的的子子集集合合。在在该该集集合合中中,各各个个输输入入数数据据对对于于揭揭露露程程序序中中的的错错误误都都是是等等价价的的)。因因此此,可可以以把把全全部部输输入入数数据据合合理理地地划划分分为为若若干干等等价价类类,在在每每一一个个等等价价类类中中取取一一个个数数据据作作为为测测试试的的输输入入条条件件,这这样样就就可可以以少少量量的的代代表表性性测测试试数数据据,来来取取得得较较好好的的测测试试结果。结果。WindowsWindows计算器程序实例分析计算器程序实例分析(1 1)你测试了)你测试了1+11+1,1+2,1+31+2,1+3和和1+41+4之后,还有必要测试之后,还有必要测试1+51+5和和1+61+6吗?你能放心地认为它们正确吗?吗?你能放心地认为它们正确吗?(2 2)1+151+15与与1+999999999999999999999999999999991+99999999999999999999999999999999有有什么区别呢?什么区别呢?(3 3)测试计算器中)测试计算器中“菜单菜单”命令中的复制功能(单击命令中的复制功能(单击复制命令,在菜单弹出时键入复制命令,在菜单弹出时键入c c或者或者C C,或者按,或者按Ctrl+c,Ctrl+c,这几种方法在设计测试用例时可以缩减为按这几种方法在设计测试用例时可以缩减为按Ctrl+cCtrl+c组合组合键键)注意注意:在寻找等价类划分时,考虑把软件具有相似输入、:在寻找等价类划分时,考虑把软件具有相似输入、相似输出、相似操作的分在一组,这些组就是等价划分。相似输出、相似操作的分在一组,这些组就是等价划分。是指对于程序的规格说明来说,是是指对于程序的规格说明来说,是合理的合理的 有意义的输入数据有意义的输入数据构成的集合。利用它可以检构成的集合。利用它可以检 验程序是否实现预先规定的功能和性能。验程序是否实现预先规定的功能和性能。(1)有效等价类)有效等价类 是指对于程序的规格说明来说,是是指对于程序的规格说明来说,是不合理不合理 的的、无意义的输入数据无意义的输入数据构成的集合。程序员主构成的集合。程序员主 要利用这一类测试用例来检查程序中功能和性要利用这一类测试用例来检查程序中功能和性 能的实现是否能的实现是否不符合不符合规格说明要求。规格说明要求。(2)无效等价类)无效等价类 n 划分等价类不仅要要考虑代表划分等价类不仅要要考虑代表“有效有效”输入值输入值 的有效等价类,还需考虑代表的有效等价类,还需考虑代表“无效无效”输入值的无输入值的无 效等价类。效等价类。采用等价分类法要注意以下两点采用等价分类法要注意以下两点:n 每一无效等价类至少要用一个测试用例,不每一无效等价类至少要用一个测试用例,不 然就可能漏掉某一类错误,但允许若干有效等价然就可能漏掉某一类错误,但允许若干有效等价 类合用同一个测试用例,以便进一步减少测试的类合用同一个测试用例,以便进一步减少测试的 次数。次数。如何划分等价类?如何划分等价类?有效等价类有效等价类(合理等价类合理等价类)无效等价类无效等价类(不合理等价类不合理等价类)p划分等价类的规则划分等价类的规则 (5 5个个)(1)(1)如果输入条件规定了如果输入条件规定了取值范围取值范围,可定义一个有效等价,可定义一个有效等价 类和两个无效等价类。类和两个无效等价类。例例1.1:1.1:输入值是学生成绩,范围是输入值是学生成绩,范围是0 0100100。0 1000 100 有效有效等价类等价类00成绩成绩100100无效等价类无效等价类 成绩成绩100100 无效等价类无效等价类 成绩成绩01818岁,性别男,地区岁,性别男,地区河南河南的人的人。答案答案:有效等价类:有效等价类:1 1个:年龄个:年龄1818岁岁andand性别男性别男andand地区地区河南河南 无效等价类:无效等价类:3 3个:年龄个:年龄=18=18岁,岁,or or 性别性别!男男,oror地区地区!河南河南p根据等价类创建测试用例的步骤根据等价类创建测试用例的步骤建立等价类表,列出所有划分出的等价类:建立等价类表,列出所有划分出的等价类:(1)(1)为每一个等价类规定一个唯一编号;为每一个等价类规定一个唯一编号;(2)(2)设计一个新的测试用例,使其设计一个新的测试用例,使其尽可能多地覆盖尚未被尽可能多地覆盖尚未被覆盖的有效等价类,覆盖的有效等价类,重复这一步,直到所有的有效重复这一步,直到所有的有效等价类都被覆盖为止;等价类都被覆盖为止;(3)(3)设计一个新的测试用例,使其设计一个新的测试用例,使其仅覆盖一个尚未被覆盖仅覆盖一个尚未被覆盖的无效等价类,的无效等价类,重复这一步,直到所有的无效等价重复这一步,直到所有的无效等价类都被覆盖为止。类都被覆盖为止。从划分出的等价类中按以下原则设计测试用例:从划分出的等价类中按以下原则设计测试用例:p常见等价类划分测试形式常见等价类划分测试形式针对是否对无效数据进行测试,可以将等价类测试分为 标准等价类测试和健壮等价类测试。标准等价类测试标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。健壮等价类测试健壮等价类测试主要的出发点是考虑了无效等价类。对有效输入,测试用例从每个有效等价类中取一个值;对无效输入,一个测试用例有一个无效值,其他值均取有效值。p使用等价类划分法测试的实例使用等价类划分法测试的实例例1 三角形问题分析:在多数情况下,是从输入域划分等价类的,但并非不能从被测程序的输出域反过来定义等价类,事实上,这对于三角形问题却是最简单的划分方法。在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。R1=a,b,c:边为a,b,c 的等边三角形R2=a,b,c:边为a,b,c 的等腰三角形R3=a,b,c:边为a,b,c 的一般三角形R4=a,b,c:边为a,b,c 不能构成三角形标准等价类测试不考虑无效数据值,测试用例使用每个等价类中的一个值。例例2:2:某报表处理系统要求用户输入处理报表的日期,日期某报表处理系统要求用户输入处理报表的日期,日期限制在限制在20052005年年1 1月至月至20092009年年1212月,即系统只能对该段期间月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错内的报表进行处理,如日期不在此范围内,则显示输入错误信息。系统日期规定由年、月的误信息。系统日期规定由年、月的6 6位数字字符组成,前位数字字符组成,前四位代表年,后两位代表月。四位代表年,后两位代表月。如何用等价类划分法设计测试用例如何用等价类划分法设计测试用例,来测试程序的日期来测试程序的日期检查功能?检查功能?步骤步骤:第一步:等价类划分第一步:等价类划分第二步:为有效等价类设计测试用例。(多个有效等第二步:为有效等价类设计测试用例。(多个有效等价类可使用一个测试用例)价类可使用一个测试用例)第三步:为每一个无效等价类设至少第三步:为每一个无效等价类设至少 设计一个测试设计一个测试用例用例第一步:等价类划分第一步:等价类划分输入等价类输入等价类 有效等价类有效等价类 无效等价类无效等价类 报表日期的报表日期的类型及长度类型及长度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)第二步:为有效等价类设计测试用例对表中编号为第二步:为有效等价类设计测试用例对表中编号为1 1,2 2,3 3的的3 3个有效等价类用一个测试用例覆盖:个有效等价类用一个测试用例覆盖:测试数据 期望结果 覆盖范围200705200705等价类等价类(1)(2)(3)(1)(2)(3)输入有效输入有效第三步:为每一个无效等价类设至少设计一个测试用例第三步:为每一个无效等价类设至少设计一个测试用例 不能出现相同不能出现相同的测试用例的测试用例 测试数据测试数据 期望结果期望结果 覆盖范围覆盖范围001001MAYMAY等价类等价类(4)(4)输入无效输入无效2006520065等价类等价类(5)(5)输入无效输入无效等价类等价类(6)(6)输入无效输入无效200420040505等价类等价类(7)(7)输入无效输入无效201020100505等价类等价类(8)(8)输入无效输入无效200820080000等价类等价类(9)(9)输入无效输入无效200620061313等价类等价类(10)(10)输入无效输入无效 本例的本例的1010个等价类至个等价类至少需要少需要8 8个测试用例个测试用例例3.在某网站申请免费信箱时,要求用户必须输入用户名、密码及确认密码,对每一项输入条件的要求如下:用户名要求为4位以上,16位以下,使用英文字母、数字、“-”、“_”,并且首字符必须为字母或数字;密码要求为616位之间,只能使用英文字母、数字以及“-”、“_”,并且区分大小写。分析如下:分析程序的规格说明,列出等价类表(包括有效等价类和无效等价类),如表4-5所示。表4-5 等价类表根据上述等价类表,设计测试用例如表4-6所示。表4-6 测试用例例4.保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为:投保额保险费率 其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由 投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。年龄:一位或两位非零整数,值的有效范围为199性别:一位英文字符,只能取值M或F婚姻:字符,只能取值已婚或未婚抚养人数:空白或一位非零整数(19)点数:一位或两位非零整数,值的范围为199(2)根据(1)中的等价类表,设计能覆盖所有等价类的 测试用例。2.2.边界值分析法(边界值分析法(Boundary Value AnalysisBoundary Value Analysis)软件边界与悬崖很类似软件边界与悬崖很类似测试内点测试内点测试外点测试外点被测试被测试子域子域v边界值分析法与等价类划分法区别边界值分析法与等价类划分法区别(1)(1)边界值分析不是从某等价类中随便挑一个作为边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为代表,而是使这个等价类的每个边界都要作为测试条件。测试条件。(2)(2)边界值分析不仅考虑输入条件,还要考虑输出边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况(空间产生的测试情况(NextDateNextDate函数用例)。函数用例)。采用边界值分析法来选择测试用例,可使采用边界值分析法来选择测试用例,可使 得被测程序能在得被测程序能在边界值及其附近边界值及其附近运行,从而更运行,从而更 有效地暴露出程序中潜藏的错误。有效地暴露出程序中潜藏的错误。边界值分析法边界值分析法 边界值分析法边界值分析法边界值分析法是对等价类划分方法的补充。边界值分析法是对等价类划分方法的补充。边界值分析法是对等价类划分方法的补充。边界值分析法是对等价类划分方法的补充。人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,人们从长期的测试工作经验得知,大量的错误是发生大量的错误是发生大量的错误是发生大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内在输入或输出范围的边界上,而不是在输入范围的内在输入或输出范围的边界上,而不是在输入范围的内在输入或输出范围的边界上,而不是在输入范围的内部部部部。因此针对各种边界情况设计测试用例,。因此针对各种边界情况设计测试用例,。因此针对各种边界情况设计测试用例,。因此针对各种边界情况设计测试用例,可以查出可以查出可以查出可以查出更多的错误更多的错误更多的错误更多的错误。边界值分析的边界值分析的边界值分析的边界值分析的基本思想基本思想基本思想基本思想是把测试的重点放在各个等价是把测试的重点放在各个等价是把测试的重点放在各个等价是把测试的重点放在各个等价类的边界上,使用在类的边界上,使用在类的边界上,使用在类的边界上,使用在最小值、略小于最小值、略高于最小值、略小于最小值、略高于最小值、略小于最小值、略高于最小值、略小于最小值、略高于最小值、正常值、最大值、略低于最大值和略超过最最小值、正常值、最大值、略低于最大值和略超过最最小值、正常值、最大值、略低于最大值和略超过最最小值、正常值、最大值、略低于最大值和略超过最大值处大值处大值处大值处的值做为测试数据,并据此设计出相应的测试的值做为测试数据,并据此设计出相应的测试的值做为测试数据,并据此设计出相应的测试的值做为测试数据,并据此设计出相应的测试用例。用例。用例。用例。比如,在做三角形计算时,要输入三角形的三比如,在做三角形计算时,要输入三角形的三比如,在做三角形计算时,要输入三角形的三比如,在做三角形计算时,要输入三角形的三个边长:个边长:个边长:个边长:A A、B B和和和和C C。我们应注意到这三个数我们应注意到这三个数我们应注意到这三个数我们应注意到这三个数值应当满足值应当满足值应当满足值应当满足 A A0 0、B B0 0、C C0 0、A AB BC C、A AC CB B、B BC CA A,才能构成才能构成才能构成才能构成三角形。但如果把六个不等式中的任何一个大三角形。但如果把六个不等式中的任何一个大三角形。但如果把六个不等式中的任何一个大三角形。但如果把六个不等式中的任何一个大于号于号于号于号“”错写成大于等于号错写成大于等于号错写成大于等于号错写成大于等于号“”“”,那就不能构,那就不能构,那就不能构,那就不能构成三角形。问题恰出现在容易被疏忽的边界附成三角形。问题恰出现在容易被疏忽的边界附成三角形。问题恰出现在容易被疏忽的边界附成三角形。问题恰出现在容易被疏忽的边界附近。近。近。近。1:Rem Creat a 10 element integer array2:Rem Initialize each element to -13:Dim data(10)As Integer4:Dim i As Integer5:For i=1 To 106:data(i)=-17:Next I8:End演示边界条件缺陷的简单演示边界条件缺陷的简单BASIC程序程序 边界值设计原则边界值设计原则(1 1)如果输入条件规定了值的)如果输入条件规定了值的范围范围,则应取刚达到这个范,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。输入数据。例例如如,如如果果程程序序的的规规格格说说明明中中规规定定:“重重量量在在1010公公斤斤至至5050公公斤斤范范围围内内的的邮邮件件,其其邮邮费费计计算算公公式式为为 ”。作作为为测测试试用用例例,我我们们应应取取1010及及5050,还还应应取取10.01,49.99,9.9910.01,49.99,9.99及及50.0150.01等。等。(2 2)如如果果输输入入条条件件规规定定了了值值的的个个数数,则则用用最最大大个个数数、最最小小个个数数、比比最最小小个个数数少少一一、比比最最大大个个数数多多一一的的数数作作为为测测试试数数据。据。例例如如,一一个个输输入入文文件件应应包包括括1-2551-255个个记记录录,则则测测试试用用例例可可取取1 1和和255255,还应取,还应取0 0及及256256等。等。3.3.将将规规则则1 1和和2 2应应用用于于输输出出条条件件,即即设设计计测测试试用用例例使使输输出值达到边界值及其左右的值。出值达到边界值及其左右的值。例例如如,一一程程序序属属于于情情报报检检索索系系统统,要要求求每每次次”最最少少显显示示1 1条条、最最多多显显示示4 4条条情情报报摘摘要要”,这这时时我我们们应应考考虑虑的的测测试用例包括试用例包括1 1和和4 4,还应包括,还应包括0 0和和5 5等。等。再如,再如,一个学生成绩管理系统规定,只能查询一个学生成绩管理系统规定,只能查询95-9895-98级大学生的各科成绩,可以设计测试用例,使得查询范级大学生的各科成绩,可以设计测试用例,使得查询范围内的某一届或四届学生的学生成绩,还需设计查询围内的某一届或四届学生的学生成绩,还需设计查询9494级、级、9999级学生成绩的测试用例(不合理输出等价类)。级学生成绩的测试用例(不合理输出等价类)。l由于输出值的边界不与输入值的边界相对应,所以要检查输出值的由于输出值的边界不与输入值的边界相对应,所以要检查输出值的边界不一定可能,要产生超出输出值之外的结果也不一定能做到,边界不一定可能,要产生超出输出值之外的结果也不一定能做到,但必要时还需试一试。但必要时还需试一试。(4 4)如果程序的规格说明给出的输入域或输出域是)如果程序的规格说明给出的输入域或输出域是有序有序集合集合(如顺序文件、线性表等),则应选取集合的第一(如顺序文件、线性表等),则应选取集合的第一个元素和最后一个元素作为测试用例。个元素和最后一个元素作为测试用例。(5 5)如果程序中使用了一个内部数据结构,则应当选择)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。这个内部数据结构的边界上的值作为测试用例。例如,例如,如果程序中定义了一个数组,其元素下标的下如果程序中定义了一个数组,其元素下标的下界是界是0 0,上界是,上界是100100,那么应选择达到这个数组下标边界,那么应选择达到这个数组下标边界的值,如的值,如0 0与与100100,作为测试用例。,作为测试用例。(6 6)分析规格说明,找出其他可能的边界条件。)分析规格说明,找出其他可能的边界条件。程序中判断输入日期(年月)是否有效,假设使用如下语句:程序中判断输入日期(年月)是否有效,假设使用如下语句:IFIF(ReportDate=MaxDateReportDate=MinDateReportDate=MinDate)THEN THEN 产生指定日期报表产生指定日期报表 ELSE ELSE 显示错误信息显示错误信息ENDIFENDIF如果将程序中的如果将程序中的“=”误写为误写为“”,则上例的等价类划分中所有,则上例的等价类划分中所有测试用例都不能发现这一错误,采用边界值分析法的测试用例测试用例都不能发现这一错误,采用边界值分析法的测试用例如下表所示。如下表所示。n对上述报表处理系统中的报表日期输入条件,以下用对上述报表处理系统中的报表日期输入条件,以下用边界值分析设计测试用例。边界值分析设计测试用例。输入输入条件条件报表日报表日期的类期的类型及长型及长度度1 1个数字字符个数字字符5 5个数字字符个数字字符7 7个数字字符个数字字符有有1 1个非数字字符个非数字字符全部是非数字字符全部是非数字字符6 6个数字字符个数字字符显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错显示出错输入有效输入有效日期日期范围范围月份月份范围范围“报表日期报表日期”边界值分析法测试用例边界值分析法测试用例测试用例说明测试用例说明测试数据测试数据期望结果期望结果选取理由选取理由5 520065200652008.52008.5MAY-MAY-200605200605月份为月份为1 1月月月份为月份为1212月月月份月份11212200501200501200512200512200500200500200513200513200501200501200912200912200500200500200913200913输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错输入有效输入有效输入有效输入有效显示出错显示出错显示出错显示出错在有效范围在有效范围边界上选取边界上选取数据数据仅有仅有1 1个合法字符个合法字符比有效长度少比有效长度少1 1比有效长度多比有效长度多1 1只有只有1 1个非法字符个非法字符6 6个非法字符个非法字符类型及长度均有效类型及长度均有效最小日期最小日期最大日期最大日期刚好小于最小日期刚好小于最小日期刚好大于最大日期刚好大于最大日期最小月份最小月份最大月份最大月份刚好小于最小月份刚好小于最小月份刚好大于最大月份刚好大于最大月份 边界值分析法与等价类划分法比较边界值分析法与等价类划分法比较 (1)(1)等价分类法的测试数据是在各个等价类允许的值域内任意等价分类法的测试数据是在各个等价类允许的值域内任意选取的,而边界值分析的测试数据必须在边界值附近选取。选取的,而边界值分析的测试数据必须在边界值附近选取。(2)(2)一般地说,用边界值分析法设计的测试用例比等价分类法一般地说,用边界值分析法设计的测试用例比等价分类法的代表性更广,发现错误的能力也更强。但是对边界的分析的代表性更广,发现错误的能力也更强。但是对边界的分析与确定比较复杂,要求测试人员具有更多的经验和创造性。与确定比较复杂,要求测试人员具有更多的经验和创造性。(3)(3)还需指出,有些包含的边界情况比较简单,只需要分析输还需指出,有些包含的边界情况比较简单,只需要分析输入等价类。在有些情况下,除了考察输入值边界外,还需要入等价类。在有些情况下,除了考察输入值边界外,还需要考察考察输出值输出值和其他可能存在的边界。和其他可能存在的边界。例:假定被测程序是一个计算例:假定被测程序是一个计算x x的正弦值的正弦值sinsin(x x),其输出其输出具有具有3 3个边界值个边界值-1-1、0 0、1 1。在选择测试用例时,应使。在选择测试用例时,应使x x的的值分别产生上述的值分别产生上述的3 3种输出种输出边界值,即选取边界值,即选取-/2-/2、0 0、/2/2作为作为x x的测试数据。的测试数据。3.3.错误猜测法错误猜测法 所谓猜测,就是猜测被测程序在哪些地方容易所谓猜测,就是猜测被测程序在哪些地方容易 出错,然后针对可能的薄弱环节来设计测试用例。出错,然后针对可能的薄弱环节来设计测试用例。显然它比前两种方法更多地依靠测试人员的直觉与显然它比前两种方法更多地依靠测试人员的直觉与 经验。所以一般都先用前两方法设计测试用例,然经验。所以一般都先用前两方法设计测试用例,然后再用猜测法去补充一些例子作为辅助的手段。后再用猜测法去补充一些例子作为辅助的手段。错误猜测法错误猜测法错误推测法的基本思想基本思想是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。显然,它比前两种方法更多地依靠测试人员的直觉和经验。所以,一般都先用前两种方法设计测试用例,然后用猜错法补充一些例子作为辅助手段。根据经验来设计测试用例的方法:根据经验来设计测试用例的方法:l例如,数据测试中的:例如,数据测试中的:缺省值缺省值空白空白空值空值零值零值无无l 又如输入、输出数据为零是容易发生错误的情况;再如,输入表格为空或输入表格只有一行是容易出错的情况等。例如对于一个排序程序,列出以下几项需特别测试的情况:(1)输入表为空。(2)输入表只含一个元素。(3)输入表中所有元素均相同。(4)输入表中已排好序。l 仍以上述的报表日期为例,在已经用等价分类法和边界值分析发设计过测试用例的基础上,还可用错误猜测法补充一些测试用例,例如:报表日期为:报表日期为:报表日期为:报表日期为:“0 0”漏送漏送漏送漏送“报表日期报表日期报表日期报表日期”年月次序颠倒,例如将年月次序颠倒,例如将年月次序颠倒,例如将年月次序颠倒,例如将“200112200112”误输为误输为误输为误输为“122001122001”4.决策表法决策表法 4.1决策表法决策表法决策表通常由四个部分组成,如图4-1所示。条件桩条件桩:列出了问题的所有条件,通常认为列出的条件的先后次序无关紧要。动作桩:动作桩:列出了问题规定的可能采取的操作,这些操作的排列顺序没有约束。条件项:条件项:针对条件桩给出的条件列出所有可能的取值。动作项:动作项:与条件项紧密相关,列出在条件项的各组取值情况下应该采取的动作。规则:规则:一种条件取值组合和与其对应的动作组合(即判定表中贯穿条件项和动作项的一列)构成了判定表中的一个规则。条件取值组合的数目就是规则的数目。图4-1 决策表的组成建立决策表的步骤:建立决策表的步骤:列出条件桩和动作桩。确定规则的个数,用来为规则编号。若有n个原因,由于每个原因可取0或1,故有2的n次方个规则。完成所有条件项的填写。完成所有动作项的填写。合并相似规则,用以对初始决策表进行简化(见书P56)。建立了决策表后,可针对决策表中的每一列有效规则设计一个测试用例,用以对程序进行黑盒测试。决策表最突出的优点:决策表最突出的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。运用决策表设计测试用例,可以将条件理解为输入,将动作理解为输出。4.2 实例分析实例分析 举例:以下列问题为例给出构造决策表的具体过程。举例:以下列问题为例给出构造决策表的具体过程。如果某产品销售好并且库存低,则增加该产品的生产;如果该产品销售好,但库存量不低,则继续生产;若该产品销售不好,但库存量低,则继续生产;若该产品销售不好,且库存量不低,则停止生产。表4-2 决策表解法如下:解法如下:l确定规则的个数。对于本题有2个条件(销售、库存),每 个条件可以有两个取值,故有22=4种规则。l列出所有的条件桩和动作桩。l填入条件项。l填入动作项,得到初始决策表,如表4-2所示。5.5.因果图法因果图法 因果图法是借助因果图法是借助图形图形来设计测试用例的一种系来设计测试用例的一种系 统方法。它适用于被测程序具有多种输入条件,统方法。它适用于被测程序具有多种输入条件,程序的输出又依赖于输入条件的各种组合的情况。程序的输出又依赖于输入条件的各种组合的情况。因果图是一种简化了的因果图是一种简化了的逻辑图逻辑图,它能直观地,它能直观地 表明程序输入条件(原因)和输出动作(结果)表明程序输入条件(原因)和输出动作(结果)之间的相互关系。之间的相互关系。5.1 5.1 因果图法因果图法在等价类划分方法和边界值方法中未考虑输入条件的各在等价类划分方法和边界值方法中未考虑输入条件的各种组合,当输入条件比较多时,输入条件组合的数目会种组合,当输入条件比较多时,输入条件组合的数目会相当大。相当大。因果图法是一种帮助人们系统地选择一组高效测试用例因果图法是一种帮助人们系统地选择一组高效测试用例的方法,它既考虑了输入条件的组合关系,又考虑了输的方法,它既考虑了输入条件的组合关系,又考虑了输出条件对输入条件的依赖关系,即因果关系,其测试用出条件对输入条件的依赖关系,即因果关系,其测试用例发现错误的效率比较高。例发现错误的效率比较高。因果图方法的因果图方法的特点特点是:是:考虑输入条件的组合关系;考虑输入条件的组合关系;考虑输出条件对输入条件的依赖关系,即因果关系;考虑输出条件对输入条件的依赖关系,即因果关系;测试用例发现错误的效率高;测试用例发现错误的效率高;能检查出功能说明中的某些不一致或遗漏。能检查出功能说明中的某些不一致或遗漏。n n在因果图中出现的基本符号在因果图中出现的基本符号在因果图中出现的基本符号在因果图中出现的基本符号 在因果图中使用4种符号分别表示4种因果关系,如图5-1所示。用直线连接左右节点,其中左节点ci表示输入状态(或称原因),右节点ei表示输出状态(或称结果)。ci和ei都可取值0或1,0表示某状态不出现,1表示某状态出现。l l主要的原因和结果之间的关系有主要的原因和结果之间的关系有主要的原因和结果之间的关系有主要的原因和结果之间的关系有:(a)恒等 (b)非 (c)或 (d)与图5-1 因果图的基本符号 图中左边的结点表示原因,右边的结点表示结果图中左边的结点表示原因,右边的结点表示结果原因和结果之间的关系有:原因和结果之间的关系有:恒等:若恒等:若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画因果图时原因在左,结果在右,由上向下排列,并根据功能画因果图时原因在左,结果在右,由上向下排列,并根据功能说明中规定的原因和结果之间的关系,用上述符号连接起来。说明中规定的原因和结果之间的关系,用上述符号连接起来。必要时还可以引入一些必要时还可以引入一些中间结点中间结点。n n表示约束条件的符号表示约束条件的符号表示约束条件的符号表示约束条件的符号 为了表示原因与原因之间,结果与结果之间可能存为了表示原因与原因之间,结果与结果之间可能存为了表示原因与原因之间,结果与结果之间可能存为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条在的约束条件,在因果图中可以附加一些表示约束条在的约束条件,在因果图中可以附加一些表示约束条在的约束条件,在因果图中可以附加一些表示约束条件的符号。见图件的符号。见图件的符号。见图件的符号。见图5-2.5-2.图5-2 约束符号图中图中互斥、包含、唯一、要求互斥、包含、唯一、要求是对是对原因原因的约束,的约束,屏蔽屏蔽是对是对结果结果的约束的约束互斥:表示互斥:表示a、b、c中至多只有一个为中至多只有一个为1,即不同时为,即不同时为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利用因果图产生测试用例的基本步骤利用因果图产生测试用例的基本步骤(1)(1)分析软件规格说明描述中,分析软件规格说明描述中,哪些是原因哪些是原因(即即输入条件或输入条件的等价类输入条件或输入条件的等价类),哪些是结哪些是结果果(即输出条件即输出条件),并给每个原因和结果赋予,并给每个原因和结果赋予一个标识符。一个标识符。(2)(2)分析软件规格说明描述中的语义,找出分析软件规格说明描述中的语义,找出原因原因与结果与结果之间,之间,原因与原因原因与原因之间对应的是什么之间对应的是什么 关系关系?根据这些关系,画出因果图。根据这些关系,画出因果图。(3)(3)由于语法或环境限制,有些原因与原因之由于语法或环境限制,有些原因与原因之 间,原因与结果之间的组合情况不可能出间,原因与结果之间的组合情况不可能出 现。为表明这些特殊情况,在因果图上用现。为表明这些特殊情况,在因果图上用 一些记号一些记号标明约束或限制条件标明约束或限制条件。(4)(4)把因果图转换成决策表。把因果图转换成决策表。(5)(5)把决策表的每一列拿出来作为依据,设计把决策表的每一列拿出来作为依据,设计测试用例。测试用例。从因果图生成的测试用例中包括了所有输入数据的取从因果图生成的测试用例中包括了所有输入数据的取TRUETRUE与与FALSEFALSE情况,构成的测试用例数目达到最少,且测试情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加。用例数目随输入数据数目的增加而线性地增加。图5-3 因果图法示例5.2因果图法测试用例因果图法测试用例 某软件规格说明中包含这样的要求:输入的第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;但如果第一个字符不正确,则给出信息L;如果第二个字符不是数字,则给出信息M。解法如下:解法如下:(1)分析程序的规格说明,列出原因和结果。原因:C1-第一个字符是A C2-第一个字符是B C3-第二个字符是一个数字结果:e1-给出信息Le2-修改文件e3-给出信息M(2)将原因和结果之间的因果关系用逻辑符号连接起来,得到因果图,如图5-4所示。编号为11的中间节点是导出结果的进一步原因。图5-4 因果图示例图5-5 具有E约束的因果图 因为C1和C2不可能同时为1,即第一个字符不可能既是A又是B,在因果图上可对其施加E约束,得到具有约束的因果图,如图5-5所示。(3)将因果图转换成决策表,如表5-1所示。(4)设计测试用例。表5-1中的前两种情况,因为原因1和原因2不可能同时为1,所以应排除这两种情况。根据此表,可以设计出6个测试用例,如表5-2所示。表5-1 决策表 表5-2 测试用例 例例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度度/月,月,高峰,高峰,D D类收费类收费 输入条件(原因)输入条件(原因)输出动作(后果)输出动作(后果)c1居民用电居民用电 e1 按按A类收费类收费c2动力用电动力用电 e2 按按B类收费类收费c3 100度度/月月 e3 按按C类收费类收费c410000度度/月月 e4 按按D类收费类收费c5高峰用电高峰用电 设计测试用例的步骤设计测试用例的步骤:1.列举所有存在的输入条件和输出结果。列举所有存在的输入条件和输出结果。2.根据输入条件和输出条件生成决策表。根据输入条件和输出条件生成决策表。把因果图转换为决策表把因果图转换为决策表组合条件组合条件条件条件(原因原因)动作动作(结果结果)e1e1e2e2e3e3c1c2c31234561-11-0-11-11000010000110c41010c50011e4e4000110010000测试用例测试用例-1 1列列 居民电居民电,90,90度度/月月 A A2 2列列 居民电居民电,110,110度度/月月 B B3 3列列 动力电动力电,非高峰非高峰,8000,8000度度/月月 B B4 4列列 动力电动力电,非高峰非高峰,1.2,1.2万度万度/月月 C C5 5列列 动力电动力电,高峰高峰,0.9,0.9万度万度/月月 C C6 6列列 动力电动力电,高峰高峰,1.1,1.1万度万度/月月 D D 条件条件 测试用例测试用例 预期结果预期结果组合组合 (输入数据输入数据)()(输出动作输出动作)3.针对决策表的每一列产生一个测试用例。针对决策表的每一列产生一个测试用例。例例3 3,有一个处理单价为,有一个处理单价为5 5角钱的饮料自动售货机软件,角钱的饮料自动售货机软件,其规格说明如下:其规格说明如下:饮料自动售货机允许投入饮料自动售货机允许投入5 5角或角或1 1元的硬币,用户可通元的硬币,用户可通过过“橙汁橙汁”和和“啤酒啤酒”按钮选择饮料,售货机还装有一按钮选择饮料,售货机还装有一个表示个表示“零钱找完零钱找完”的指示灯,当售货机中有零钱找时的指示灯,当售货机中有零钱找时指示灯暗,当售货机中无零钱找时指示灯亮。当用户指示灯暗,当售货机中无零钱找时指示灯亮。当用户投投入入5 5角角硬币并硬币并押下押下“橙汁橙汁”或或“啤酒啤酒”按钮后,售货机按钮后,售货机送送出出“橙汁橙汁”或或“啤酒啤酒”。当用户。当用户投入投入1 1元元硬币并押下硬币并押下“橙汁橙汁”或或“啤酒啤酒”按钮后,如果售货机有零钱找,则送按钮后,如果售货机有零钱找,则送出相应的饮料,并出相应的饮料,并退还退还5 5角角硬币;如果售货机没有零钱找,硬币;如果售货机没有零钱找,则饮料不送出,并且则饮料不送出,并且退还退还1 1元元硬币。硬币。(1)分析规格说明,列出原因和结果分析规格说明,列出原因和结果规格说明中的规格说明中的红色部分红色部分是输入条件(原因),是输入条件(原因),蓝色部分蓝色部分是输是输出条件(结果)。出条件(结果)。由于由于“售货机有零钱找售货机有零钱找”是在投入是在投入1元硬币时判断是否能找零钱的元硬币时判断是否能找零钱的依据,所以也可把它看作是一个输入条件,即原因。与之对依据,所以也可把它看作是一个输入条件,即原因。与之对应的结果是应的结果是售货机指示灯亮售货机指示灯亮(或暗)。(或暗)。售货机有零售货机有零售货机有零售货机有零钱找钱找钱找钱找投入投入投入投入1 1 1 1元元元元硬币硬币硬币硬币投入投入投入投入5 5 5 5角角角角硬币硬币硬币硬币押下橙汁押下橙汁押下橙汁押下橙汁按钮按钮按钮按钮押下啤酒押下啤酒押下啤酒押下啤酒按钮按钮按钮按钮6.测试方法的选择测试方法的选择 为了最大程度地减少测试遗留的缺陷,同时也为了最大限度地发现存在的缺陷,在测试实施之前,测试工程师必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试方案。通常,一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果。如何才能确定好的测试策略和测试方法呢?通常,在确定测试如何才能确定好的测试策略和测试方法呢?通常,在确定测试方法时,应该遵循以下原则:方法时,应该遵循以下原则:根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。认真选择测试策略,以便能尽可能少地使用测试用例,发现尽可能多的程序错误。因为一次完整的软件测试过后,如果程序中遗留的错误过多并且严重,则表明该次测试是不足的,而测试不足则意味着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费。因此,测试需要找到一个平衡点。以下是各种测试方法选择的综合策略,可在实际应用过程以下是各种测试方法选择的综合策略,可在实际应用过程中参考。中参考。l首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率的最有效方法。l在任何情况下都必须使用边界值分析方法。经验表明用这种方法设计出测试用例发现程序错误的能力最强。l对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。l如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用决策表法或者因果图法。7.小小 结结 测试用例的设计方法不是单独存在的,具体到每个测试项目里都会用到多种方法,每种类型的软件有各自的特点,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,在实际测试中,往往是综合使用各种方法才能有效提高测试效率和测试覆盖度,这就需要认真掌握这些方法的原理,积累更多的测试经验,以有效提高测试水平。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!