软件测试与质量保证课件 第7章 黑盒测试方法_第1页
软件测试与质量保证课件 第7章 黑盒测试方法_第2页
软件测试与质量保证课件 第7章 黑盒测试方法_第3页
软件测试与质量保证课件 第7章 黑盒测试方法_第4页
软件测试与质量保证课件 第7章 黑盒测试方法_第5页
已阅读5页,还剩127页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第7章黑盒测试方法

软件测试与质量保证本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法2软件测试方法3软件测试方法白盒测试静态测试其他动态测试按是否运行系统划分按是否查看源代码划分随机测试黑盒测试冒烟测试回归测试等价类划分法错误推测法因果图法边界值分析法组合分析法手工测试自动化测试按是否使用自动化工具划分逻辑覆盖法基本路径测试法黑盒测试技术黑盒测试,也称为功能测试或基于规格说明书的测试。黑盒测试的思想——着眼于外部特征,不管内部实现。需求规格说明书是黑盒测试的主要输入。4黑盒测试技术黑盒测试的目的,主要是为发现以下几种类型的错误:软件功能能不能按照需求规格说明书的规定正常工作或有功能遗漏;数据结构和外部数据库访问错误;性能上的错误,如兼容性、效率等方面的问题;人机交互错误(界面问题)等;程序初始化和终止方面的错误等。5黑盒测试的原理黑盒测试的原理如下图所示:6被测单元输入接口输出接口驱动程序/测试员桩模块A桩模块B调用返回调用返回获取输出数据输入测试数据有效的黑盒测试数据7正常数据——在用户需求范围内的、具有代表性的测试数据,目的是检验系统的正常处理功能如何边缘数据——界于正常数据和错误数据之间的数据,目的是检验系统处理能力的极限情况。错误数据——与系统输入规范不符的数据,以及凡是可能引发异常的数据,目的是检测输入筛选、错误处理等程序分支黑盒测试的优点黑盒测试与软件如何实现无关,如果实现发生变化,黑盒测试用例仍然可用(可重用性,面向回归测试)例如:一模块实现对学生考试成绩的排序可以使用冒泡法排序、交换法排序、或者....用例设计可以与软件的实现同时进行,加快了软件测试与开发的速度8黑盒测试的缺点只能找到缺陷,难以查找错误的具体原因。没有清晰的需求规格说明书,测试用例很难被设计。相比白盒测试,测试用例产生遗漏或冗余的可能性大大增加9黑盒测试的特点从理论上讲,黑盒测试只有采用穷举法输入测试,把所有可能的输入都作为测试情况考虑,才能查出所有的错误。实际上测试情况是无穷多的,完全测试是不可能的。《完美测试》中weinberg举了一个权限验证开后门的例子。假如你是某系统的开发人员,为维测方便,在程序中加了一个后门,比如当输入:z+10空格+l+10个空格+l+10个空格、再重复10次,无论密码是什么,均可以成功进入。那么我们如何设计黑盒测试用例满足“最尽可能少的测试用例去发现尽可能多的软件缺陷”呢?10黑盒测试用例设计方法包括:等价类划分法边界值分析法因果图法基于决策表的测试法功能图法判定表组成法正交实验设计法......11本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法12等价类测试等价类的思想:物以类聚人以群分归纳抽象总结13等价类测试我们希望进行完备的测试.同时又希望避免冗余。许多测试用例表明,大量冗余和严重漏洞并存。等价类划分法的意图,是将不能穷举的测试过程进行合理分类,以设计出来具有完整性和代表性的测试用例。例如,设计一个判断等边三角形的测试用例:如果选择三元组(5,5,5)作为输入,就没有必要再设置诸如(6,6,6)和(100,100,100)这样的测试用例了对于发现程序中的故障来说,等价类中的每个元素是等效的。14什么是等价类?如何设计测试输入数据,有两个条件非常重要:整个数据的集合,必须具有形式上的正确性和完备性;不同的数据子集,必须互不相交(形式上无冗余性)。符合这样条件的集合就是等价类。等价类测试的思想,就是通过每个等价类中的一个或有限个元素设计测试用例。所有等价类的并集对应整个输入域-----提供完备性等价类的互不相交-----保证无冗余性15等价类划分法的过程在等价类划分法设计测试用例的过程中,需要使用两个过程:分类和抽象。分类:将输入(出)域按照相同特性或者类似功能进行分类,即把所有可能的输入数据,按照输入域划分成若干部分(子集)。抽象:在各个子类中抽象出相同特性并用实例来表征这个特性。这样,就可以从每一个子集中选取少数具有代表性的数据作为测试用例。16有效等价类与无效等价类有效等价类和无效等价类定义如下:有效等价类——满足需求规格说明中的约束,即有效的、有意义的输入数据所构成的集合。得到有效等价类,就可以检验程序是否满足规格说明所规定的功能和性能。无效等价类——不满足需求规格说明中的约束,即无效的、错误的输入数据构成的集合。使用无效等价类,可以鉴别程序异常情况的处理,保障在输入错误的时候能有异常保护,这样才能保证软件的可靠性。17常用的等价类划分原则(1)按区间划分如果规格说明规定了输入条件的取值范围或值的数量,则可以确定一个有效等价类和两个无效等价类。例如:如果软件规格说明“学生允许选修5到8门课……”,则一个有效等价类可取“选课5到8门”,无效等价类可取“选课不足5门”和“选课超过8门”。18你所做的系统中哪些功能模块满足按区间划分常用的等价类划分原则(2)按数值划分如果规格说明规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和1个无效等价类。例:输入条件说明学历可为:专科、本科、硕士、博士四种之一,则分别取这四个值作为四个有效等价类,另外把四种学历之外的任何学历作为无效等价类。19你所做的系统中哪些功能模块满足按数值划分常用的等价类划分原则(3)按数值集合划分如果规格说明规定了输入值的集合,则可以确定1个有效等价类和1个无效等价类。例如,某程序要求输入为TOM、DICK或HARRY这些名字之一,那么定义一个有效等价类(采用有效名字之一)和一个无效等价类(采用有效名字之外的名字,如JOE)。20你所做的系统中哪些功能模块满足按数值集合划分常用的等价类划分原则(4)按限制条件或规则划分如果规格说明规定了输入数据必须遵守的规则或限制条件,则可以确立1个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。例如,若某个输入条件说明了一个必须成立的情况(如输入数据必须是数字),则可划分一个有效等价类(输入数据是数字)和一个无效等价类(输入数据为非数字)。21你所做的系统中哪些功能模块满足按限制条件或规则划分常用的等价类划分原则(5)细分等价类在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。22输入条件有效等价类无效等价类………………等价类表实例需求是:对用户输入的分数进行评级,其中90到100为A,80-89为B,70-79为C,60-69为D,60以下为E。输入分数要求必须是正整数或0。根据分析得出以下等价类划分?23输入条件有效等价类无效等价类分数0-5960-6970-7980-8990-100空负数大于100的数小数含字母的字符串实例如果开发一个针对未成年人心理咨询平台的软件,里面有关于家庭类型的分类:家庭类型={正常家庭、单亲家庭,重组家庭、隔代家庭}该分类全吗?24函数F的功能扩展25有两个变量x1和x2的函数F。如果函数F实现为一个程序,则输入两个变量x1和x2会有一些(可能未规定)边界:

a≤x1≤d区间为[a,b),[b,c),[c,d]e≤x2≤g区间为[e,f),[f,g]abegcdfx1x2弱一般等价类测试弱一般等价类测试是基于单缺陷假设的;弱一般等价类测试通过使用一个测试用例中的每个等价类(区间)的一个变量实现。26abegcdf强一般等价类测试强一般等价类测试是基于多缺陷假设的;等价类笛卡儿积的每个元素对应的测试用例;27abegcdf弱健壮等价类测试对于有效输入,使用每个有效类的一个值(就像我们在所谓弱一般等价类测试中所做的一样。)对于无效输入,测试用例将拥有一个无效值,并保持其余的值都是有效的28abegcdf强健壮等价类测试所有等价类笛卡儿积的每个元素中获得测试用例29abegcdf等价类划分法示意图30弱一般等价类测试用例强一般等价类测试用例弱健壮等价类测试用例强健壮等价类测试用例有效等价类有效等价类含无效等价类含无效等价类使用等价类设计测试用例的要点为每个等价类规定惟一的编号。设计一个新的测试用例,尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到测试用例覆盖了所有的有效等价类。设计一个新的测试用例,使其覆盖并且只覆盖一个还没有被覆盖的无效等价类。重复这一步,直至测试用例覆盖了所有的无效等价类。31编号操作数取值所属等价类11—100之间的整数有效等价类2小于1的整数无效等价类13大于100的整数无效等价类24小数无效等价类35字母或汉字无效等价类46特殊字符无效等价类57空格无效等价类68空值无效等价类71个有效等价类、7个无效等价类等价类测试用例设计示例测试一个加法器。约束:两个操作数的取值范围是1—100的整数。32思考:该测试用例全面吗?不全面。无效等价类没有被全部覆盖到。编号操作数1操作数2预期结果所属等价类134043有效等价类20-1提示出错无效等价类13102123提示出错无效等价类2表加法器测试用例1分析:还有多少无效等价类?见下表:加法器的有效等价类和无效等价类编号操作数取值所属等价类11—100之间的整数有效等价类2小于1的整数无效等价类13大于100的整数无效等价类24小数无效等价类35字母或汉字无效等价类46特殊字符无效等价类57空格无效等价类68空值无效等价类7重新设计加法器的测试用例:编号操作数1操作数2预期结果所属等价类134043有效等价类20-1提示出错无效等价类13102123提示出错无效等价类241.20.8提示出错无效等价类35A好提示出错无效等价类46¥@提示出错无效等价类57空格空格提示出错无效等价类68空值空值提示出错无效等价类7表加法器测试用例2思考:“出错信息”怎样提示?出错:请输入1—100之间的整数。等价类划分的测试运用:三角形类型假定3个输入a、b和c在1~100之间取值,三角形问题可以更详细地描述为:输入3个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件:Con1.1≤a≤100Con2.1≤b≤100Con3.1≤c≤100Con4.a<b+cCon5.b<a+cCon6.c<a+b输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形。等价类划分的测试运用(续)程序输出是由这3条边构成的三角形类型:等边三角形、等腰三角形、一般三角形或非三角形。如果a、b和c满足Con1、Con2和Con3,则输出下列4种情况之一:如果不满足条件Con4、Con5和Con6中有一个,则程序输出为“非三角形”。如果三条边相等,则程序输出为“等边三角形”。如果恰好有两条边相等,则程序输出为“等腰三角形”。如果三条边都不相等,则程序输出为“一般三角形”。显然,这四种情况相互排斥。输

三个

数有效等价类编号无效等价类编号整数1一边为非整数二边为非整数三边均为非整数567三个数2只有一条边只有二条边多余三条边89101≤a≤1001≤b≤1001≤c≤1003一边为零二边为零三边为零111213一边

<零二边

<零三边

<零141516一边

>100二边

>100三边

>100171819a<b+cb<a+cc<a+c4a≥b+cb≥a+cc≥a+c202122三角形问题的等价类(输入域):测试用例Test1=(3,4,5)便可覆盖有效等价类1-4。测试用例输入a,b,c期望输出覆盖等价类Test21.5,4,5提示“请输入1~100之间的整数”5Test33.5,2.5,5提示“请输入1~100之间的整数”6Test42.5,4.5,5.5提示“请输入1~100之间的整数”7Test53提示“请输入三条边长”8Test64,5提示“请输入三条边长”9Test72,3,4,5提示“请输入三条边长”10Test83,0,8提示“边长不能为0”11Test90,6,0提示“边长不能为0”12Test100,0,0提示“边长不能为0”13Test11-3,4,6提示“边长不能为负”14Test122,-7,-5提示“边长不能为负”15Test13-3,-5,-7提示“边长不能为负”16Test14101,4,8提示“请输入1~100之间的整数”17Test153,101,101提示“请输入1~100之间的整数”18Test16101,101,101提示“请输入1~100之间的整数”19Test1720,4,5提示“请输入满足是三角形的整数”20Test184,20,5提示“请输入满足是三角形的整数”21Test194,5,20提示“请输入满足是三角形的整数”22等价类划分的测试运用(续)从输出域定义等价类,三角形问题有四种可能输出:等边三角形,等腰三角形,一般三角形和非三角形。利用这些信息从输出(值域)划分等价类为:①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不能形成三角形}测试用例abc预期输出Test1555等边三角形Test2223等腰三角形Test3345一般三角形Test4412非三角形三角形问题的4个等价类测试用例课堂练习:划分系统的等价类并设计测试用例汽车销售系统中的某款汽车价格计算的规格说明:汽车价格的起点是:基准价(baseprice)减去折扣(discount),其中基准价是汽车的基本价格,折扣是销售商给予的在基准价基础上的价格折扣。增加特殊设备的特殊价格(specialprice)和附加设备的附加价格(extraprice)。如果选择了3个或更多的附加设备(这些设备不包括在特殊设备中),这些附加设备可以有10%的折扣。如果选择了5个或更多的附加设备,这些附加设备的折扣可以增加到15%。销售商提供的折扣只针对基准价,附加设备的折扣只能用在附加设备上。这些折扣不能相互叠加。下面是某编码人员写C函数计算总的价格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)40本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法41边界边界是容易出现问题与争议的区域42边界值测试边界值分析法(BoundaryValueAnalysis)就是对输入或输出的边界值进行测试的一种黑盒测试方法。无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域的边界上,而不是在其内部。因此,针对各种边界情况设计测试用例,通常会取得很好的测试效果。43边界值测试软件测试中,边界检验的情况很多,常见类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等;这些类型的边界值应该在最大/最小,首位/末尾,上/下,最快/最慢,最高/最低,最短/最长,空/满等情况下。思考:如果一个加法器可实现对任意int型(4字节)整数的加法,考虑对其进行测试的边界值。44边界值测试测试人员必须对软件特性的边界值进行详细的分析和测试,才能保证测试的完整性。在实际的测试中,经常会把等价类测试法和边界值分析法结合使用,设计测试用例。45边界值测试边界值分析法,是对输入的边界值进行测试。在测试过程中,错误大都发生在输入范围的边界上。在测试用例设计中,需要对输入的条件进行分析,并提取其中的边界值,通过对这些边界值的测试来查出更多的错误。46边界值测试边界值分析利用输入变量的最小值(min),稍大于最小值(min+),域内任意值(nom),稍小于最大值(max-),最大值(max)来设计测试用例。即通过使所有变量取正常值,只使一个变量分别取最小值、略高于最小值、略低于最大值和最大值47边界值测试为便于理解边界值,这里讨论一个有两个变量x1和x2的程序P。假设输入变量x1和x2在下列范围内取值:a≤x1≤b,c≤x2≤d。48如果考虑边界值分析,加法器(1-100的数)测试用例扩展如下表。编号操作数1操作数2预期结果备注134043有效等价类2-4-1提示出错无效等价类13106123提示出错无效等价类241.20.8提示出错无效等价类35A好提示出错无效等价类46¥@提示出错无效等价类57空格空格提示出错无效等价类68空值空值提示出错无效等价类79112下界10224下界加111100100200上界129999198上界减1表加法器测试用例课堂练习:应用边界值测试设计测试用例汽车销售系统中的某款汽车价格计算的规格说明:汽车价格的起点是:基准价(baseprice)减去折扣(discount),其中基准价是汽车的基本价格,折扣是销售商给予的在基准价基础上的价格折扣。增加特殊设备的特殊价格(specialprice)和附加设备的附加价格(extraprice)。如果选择了3个或更多的附加设备(这些设备不包括在特殊设备中),这些附加设备可以有10%的折扣。如果选择了5个或更多的附加设备,这些附加设备的折扣可以增加到15%。销售商提供的折扣只针对基准价,附加设备的折扣只能用在附加设备上。这些折扣不能相互叠加。下面是某编码人员写C函数计算总的价格。doublecalculate_price(doublebaseprice,doublespecialprice,doubleextraprice,intextras,doublediscount)50附加条件:基本价格在80,000到140,000元之间特殊价格在1000到10,000元之间最多可有25个可能的附加选择,价格在200到4000元之间经销商给出的最大折扣为25%边界值测试思考:边界值测试只测边界值吗?边界值测试范围:下界、上界;下界减一、下界加一;上界减一、上界加一。51健壮性测试边界值测试通常直接应用于健壮(容错)性测试,最有意义的部分不是输入,而是预期的输出,观察对例外情况如何处理。健壮性是指在异常情况下,软件还能正常运行的能力。健壮性有两层含义:容错能力恢复能力52健壮性测试的基本思想健壮性测试是边界值分析的一种简单扩展,除了使用五个边界值分析取值,还要过采用:一个略超过最大值(max+)的取值一个略小于最小值(min-)的取值53健壮性测试两个变量函数的健壮性测试用例54X2健壮性测试的讨论健壮性测试最有意思的部分不是输入而是预期的输出

健壮性测试的主要价值是观察异常情况的处理

软件质量要素的衡量标准:软件的容错性软件容错性的度量:从非法输入中恢复55健壮性测试56健壮性测试的测试用例个数

一个变量个数为n的函数的健壮性测试会产生多少个测试用例??思考:最坏情况测试最坏情况测试的基本思想边界值测试分析采用了可靠性理论的单缺陷假设

最坏情况测试拒绝这种假设,关心当多个变量取极值时会出现什么情况?57最坏情况测试用例设计方法对每一个变量首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值五个元素集合的测试,然后对这些集合进行笛卡尔积计算,以生成测试用例。一个变量个数为n的函数的最坏情况测试会产生5n个测试用例。58健壮性测试两变量函数的最坏情况测试用例59X2最坏情况与边界值分析的比较基本边界值分析测试用例是最坏情况测试用例的真子集

最坏情况测试显然更彻底最坏情况测试工作量大得多n变量函数的最坏情况测试会产生5n个测试用例边界值分析只产生4n+1个测试用例60最坏情况测试举例一三角形问题三条边a,b,c取整数值,且各边的取值范围是:[1,200]最坏情况测试用例每条边的取值:1,2,100,199,200测试用例数目:5n

三角形问题(n=3):用例数为12561最坏情况测试举例二NextDate的测试用例输入条件1≤月份≤121≤日期≤311812≤年≤2017最坏情况测试用例设计月份取值:1,2,6,11,12日期取值:1,2,15,30,31年取值:1812,1813,1912,2016,201762健壮最坏情况测试对每一个变量,首先进行包含最小值、略高于最小值、正常值、略低于最大值、最大值五个元素集合的测试还要采用一个略超过最大值的取值,以及一个略小于最小值的取值。然后对这些集合进行笛卡尔积计算以生成测试用例。63健壮性测试两变量函数的健壮最坏情况测试用例64本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法65基于决策表的测试适用情况:在有些软件中,如果存在着一些数据处理,而且某些操作是否实施依赖于多个逻辑条件的取值;在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。什么是决策表?决策表是把作为条件的所有输入的各种组合值以及对应输出值都罗列出来而形成的表格。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。从20世纪60年代初以来,决策表一直被用来表示和分析复杂的逻辑关系,描述不同条件集合下采取行动的若干组合情况。基于决策表的测试

①条件桩:列出问题的所有条件。

③动作桩:列出问题规定可能采取的操作。

②条件项:针对条件桩给出的条件列出所有可能的取值。

④动作项:指出在条件项的各组取值情况下应采取的动作。基于决策表的测试

规则

选项

12345678910111213141516问题能编写程序?NNNNNNNNYYYYYYYY熟悉软件工程?NNNNYYYYNNNNYYYY对书中内容感兴趣?NNYYNNYYNNYYNNYY理解书中内容?NYNYNYNYNYNYNYNY建议学习C/C++语言

学习软件工程

继续阅读

放弃学习

一本书的阅读指南的决策表一条规则基于决策表的测试构造决策表的步骤:(1)列出所有的条件桩和动作桩。(2)确定规则的个数。有n个条件的决策表有2n个规则(每个条件取真、假值)(3)填入条件项。(4)填入动作项,得到初始决策表。(5)简化决策表,合并相似规则。若表中有两条以上规则具有相同的动作,并且在条件项之间存在极为相似的关系,便可以合并。合并后的条件项用符号“-”表示,说明执行的动作与该条件的取值无关,称为无关条件。基于决策表的测试

规则

选项

12345678910111213141516问题能编写程序?NNNNNNNNYYYYYYYY熟悉软件工程?NNNNYYYYNNNNYYYY对书中内容感兴趣?NNYYNNYYNNYYNNYY理解书中内容?NYNYNYNYNYNYNYNY建议学习C/C++语言

学习软件工程

继续阅读

放弃学习

一本书的阅读指南的决策表基于决策表的测试

规则

选项

1,52,436,7,89,1110,1213,1415,16问题能编写程序?NNNNYYYY熟悉软件工程?-NNYNNYY对书中内容感兴趣?N-Y---NY理解书中内容?NYN-NY--建议学习C/C++语言

学习软件工程

继续阅读

放弃学习

化简后的“阅读指南”基于决策表的测试输入三个整数a、b和c分别作为三角形的3条边,通过程序判断由这3条边构成的三角形类型是:等边三角形、等腰三角形、一般三角形或非三角形(不能构成一个三角形)。假定3个输入a、b和c为整数取值,三角形问题可以更详细地描述为:

举例:三角形问题的决策表输入3个整数a、b和c分别作为三角形的三条边,要求a、b和c必须满足以下条件:Con1.a<b+cCon2.b<a+cCon3.c<a+b基于决策表的测试(续)程序输出是由这3条边构成的三角形类型:等边三角形、等腰三角形、一般三角形或非三角形。如果a、b和c满足都是大于0的整数,则输出下列4种情况之一:①如果不满足条件Con1、Con2和Con3中有一个,则程序输出为“非三角形”。②如果三条边相等,则程序输出为“等边三角形”。③如果恰好有两条边相等,则程序输出为“等腰三角形”。④如果三条边都不相等,则程序输出为“一般三角形”。显然,这四种情况相互排斥。举例:三角形问题的决策表基于决策表的测试(续)规则1-8规则9规则10规则11规则12规则13规则14规则15规则16条件:c1:a,b,c构成三角形?c2:a=b?c3:a=c?c4:b=c?

N---

YYYY

YYYN

YYNY

YYNN

YNYY

YNYN

YNNY

YNNN动作:a1:非三角形a2:一般三角形a3:等腰三角形a4:等边三角形a5:不可能

√√√√√√举例:三角形问题的决策表基于决策表的测试基于决策表的测试76举例:三角形问题的决策表用例IDabc预期输出1412非三角形2142非三角形3123非三角形4555等边三角形5???不可能6???不可能7223等腰三角形8???不可能9232等腰三角形10332等腰三角形11345一般三角形基于决策表的测试基于决策表测试的优点和缺点优点:

它能把复杂的问题按各种可能的情况一一列举出来,简明而易于理解,也可避免遗漏。缺点:不能表达重复执行的动作,例如循环结构。实例:航空服务

某航空公司有如下规定:中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影中国国内的航班的商务仓有食物供应,但是不可以播放电影中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影

78实例:航空服务1、列出所有条件桩和动作桩等价类:

A1={航线为国外欧美航线}

A2={航线为国外非欧美航线}

A3={航线为国内航线}

P1={舱位为经济舱}

P2={舱位为商务舱}

T1={飞行时间大于2小时}

T2={飞行时间不大于2小时}条件桩

C1:航线为{A1,A2,A3}之一

C2:舱位为{P1,P2}之一

C3:飞行时间为{T1,T2}之一79动作桩

A1:食物供应

A2:电影播放实例:航空服务2、确定规则的个数

3x2x2=1280实例:航空服务填入条件项和动作项,得到初始决策表81实例:航空服务4、简化决策表,合并相似规则82实例:航空服务5、根据决策表设计测试用例83本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法84

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。因果图法鱼骨图方法输入与输出关系在因果图中使用4种符号分别表示4种因果关系。用直线连接左右节点,其中左节点Ci表示输入状态(原因),右节点ei表示输出状态(结果)。Ci和ei都可取值0或1,0表示某状态不出现,1表示某状态出现。86恒等:若C1是1,则e1也是1,否则e1为0非:若C1是1,则e1是0,否则e1为1或:若C1或C2或C3是1,则e1是1,否则e1为0与:若C1和C2都是1,则e1是1,否则e1为0因果图的基本符号输入的约束关系在实际问题中,输入状态相互之间还可能存在某些依赖关系,我们称之为约束。E约束(异):a和b中最多有一个可能为1,即a和b不能同时为1I约束(或):a、b和c中至少有一个必须是1,即a、b和c不能同时为0O约束(惟一):a和b中必须有一个且仅有一个为1R约束(要求):a是1时,b必须是1,即a是1时,b不能是0输出的约束关系M约束(强制):若结果a是1,则结果b强制为0输出状态之间也往往存在约束,在因果图中以特定的符号标明这些约束。因果图法测试用例的设计步骤确定软件规格中的原因和结果分析规格说明中哪些是原因(即输入条件),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。确定原因和结果之间的逻辑关系分析软件规格说明中的语义,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图。确定因果图中的各个约束由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。把因果图转换为决策表根据决策表设计测试用例90因果图法生成测试用例实例(1)分析软件规格说明书,找出原因和结果。

原因:c1:第一个字符是#c2:第一个字符是*c3:第二个字符是一个数字

结果:e1:给出信息Ne2:修改文件e3:给出信息M91输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M软件规格说明书规定(1)分析软件规格说明书,找出原因和结果

原因:c1:第一个字符是#,c2:第一个字符是*,c3:第二个字符是一个数字

结果:e1:给出信息N,e2:修改文件,e3:给出信息M92输入的第一个字符必须是#或*,第二个字符必须是一个数字,此情况下进行文件的修改;如果第一个字符不是#或*,则给出信息N,如果第二个字符不是数字,则给出信息M(2)找出原因与结果之间的因果关系、原因与原因之间的约束关系,画出因果图。将原因和结果用相应的逻辑符号连接起来,可得到其因果图,其中编号为10的中间结点是导出结果的进一步原因。因为原因c1和c2不可能同时为1,即第一个字符不可能即是#又是*,在因果图上可对其施加E约束,这样便得到了具有约束的因果图。因果图法生成测试用例实例(3)将因果图转换成决策表9312345678条件:C111110000C211001100C31010101010111100动作:e1√√e2√√e3√√√不可能√√(1)分析软件规格说明书,找出原因和结果

原因:c1:第一个字符是#,c2:第一个字符是*,c3:第二个字符是一个数字

结果:e1:给出信息N,e2:修改文件,e3:给出信息M因果图法生成测试用例实例测试用例编号输入数据预期输出1#3修改文件2#A给出信息M3*6修改文件4*B给出信息M5A1给出信息N6GT给出信息N和信息M94(4)根据决策表设计测试用例的输入数据和预期输出(1)分析软件规格说明书,找出原因和结果

原因:c1:第一个字符是#,c2:第一个字符是*,c3:第二个字符是一个数字

结果:e1:给出信息N,e2:修改文件,e3:给出信息M12345678条件:C111110000C211001100C31010101010111100动作:e1√√e2√√e3√√√不可能√√本章内容黑盒测试技术概述等价类划分边界值分析决策表法因果图法正交实验法95正交实验法为什么要采用正交试验法?在许多应用系统的测试工作中,不会象判断三角形那样简单,输入条件的因素很多,而且每个因素也不能简单用“是”和“否”来回答。PowerPoint的打印,考虑4个因素,每个因素多个选项打印范围分:全部、当前幻灯片、给定范围打印内容分:幻灯片、讲义、备注页、大纲视图打印颜色/灰度分:彩色、灰度、黑白打印效果分:幻灯片加框和幻灯片不加框。96测试组合会变得很多,如果按照传统的测试方法,会导致很大的测试工作量

正交表的由来97古希腊是一个多民族的国家,国王在检阅臣民时要求每个方队中每行有一个民族代表,每列也要有一个民族的代表数学家在设计方阵时,以每一个拉丁字母表示一个民族,所以设计的方阵称为拉丁方正交实验法什么是n阶拉丁方?用n个不同的拉丁字母排成一个n阶方阵(n<26),如果每行的n个字母均不相同,每列的n个字母均不相同,则称这种方阵为n*n拉丁方或n阶拉丁方。每个字母在任一行、任一列中只出现一次。98正交实验法什么是正交拉丁方?假设有两个n阶的拉丁方,如果将它们叠合在一起,恰好出现n2个不同的有序数对,则称为这两个拉丁方为互相正交的拉丁方,简称正交拉丁方。99正交实验法依据Galois理论,从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(条件组合),从而合理地安排实验(测试)的一种科学实验设计方法。就是从全面测试(完全组合)优化为有代表性的测试(正交组合)。100正交实验法正交实验从大量的实验点中挑选出适量的、有代表性的点,依据相应的正交表,合理地安排实验的一种科学的实验设计方法有效地、合理地减少需进行的实验数量相关概念:因子:有可能影响实验指标的条件因子的水平(或状态):影响实验因子的因素正交表:记为L次数(水平数因子数),例如L8(41×24)表示实验次数为8,1个4水平的因子,4个2水平的因子。101选择正交表已经公布了很多正交表,可以从下面的渠道获得正交表因特网/techsup/technote/ts723_Designs.txthttp://www.york.ac.uk/depts/maths/www.york.ac.uk/depts/maths/tables/orthogonal.htmnote/ts723_Designs.数理统计书籍相关软件正交实验法L4(23)因子因子的状态正交实验法L8(41×24)正交表特点正交表的性质每一列中,不同的数字出现的次数相等任意两列中数字的排列方式齐全而且均衡L8(41×24)均匀分散整齐可比正交实验法示例:有5个因子A,B,C,D,E,其中:A因子的水平数为4,其水平分别为(A1、A2、A3、A4),另外四个因子的水平数为2,其中B因子的水平为(B1、B2),C因子的水平为(C1、C2),D因子的水平为(D1、D2),E因子的水平为(E1、E2),因此选用正交表为:L8(41×24)正交实验法正交表可分为统一水平数正交表:表中各个因子的水平数是一样的混合水平数正交表:表中的各个因子数的水平数不同测试思想根据被测软件的规格说明书找出影响其功能实现的操作对象和外部因素,把它们当作因子,而把各个因子的取值当作状态,构造出二元的因素分析表;然后,利用正交表进行各因子的状态组合,构造有效的测试输入数据集正交表的因子对应被测对象的测试因素因子的水平可以看成是各测试因素的取值。正交实验法设计步骤依据被测对象说明构造因子—状态表加权筛选,生成因素分析表选取合适的正交表,生成测试数据集根据被测对象的特征,补充由正交表无法得到的测试用例构造因子-状态表案例,某系统的文件查询功能如下描述:某系统文件查询功能面向系统注册用户和非注册用户开放查询条件有简单查询和高级查询之分非注册用户只能查询公开文件并且查询结果只能在终端屏幕上显示系统注册用户可以查询公开文件和授权文件并且查询结果可以输出到指定的文件或在终端上显示加权筛选步骤确定各因子/状态的权值,参见下页权值处理的活动图计算权值将各个因子的权值(Wi)相加,计算权总和(SUM)将各个因子的权分别除以权总和,得到各因子的权比例ri采用因子数倒数的一半,即1/2n作为权比例标准值,将各个因子的权比例ri与1/2n比较,若ri>1/2n,则保留,否则舍去该因子加权筛选测试者是否曾经给过因子及状态的权值是否是否需要修改权值是否需要给出权值是否需要修改所有权值引用前次测试的权重新输入所有因子和状态的权值修改部分因子或状态的权值输入所有因子和状态的权值用缺省值0作为因子和状态的权值是否是否是否选择正交表根据前面获得的因子数和状态数选择正交表,选择正交表可能遇到下面的情况因子数和水平数与正交表相吻合因子数和水平数与正交表不吻合,可以遵循下面的原则正交表的列数不能小于因子数;正交表的水平数不能小于因子的最大状态数。正交表的行数取最小值选择正交表对于前面的例题由于有3个两水平因子因此可以选用L4(23)选择正交表

某系统有:5个独立变量(A,B,C,D,E)变量A和B都有两个取值(A1、A2)和(B1、B2)变量C和D都有三个可能的取值(C1、C2、C3)和(D1、D2、D3)变量E有六个可能的取值(E1、E2、E3、E4、E5、E6)选择的正交表,必须满足表中因子数>=5水平数2个因子的水平数>=22个因子的水平数>=31个因子的水平数>=6满足上面条件的正交表有两个:L49(78),L18(3661)取行数最小的L18(3661)选择正交表L18(3661)正交表选择正交表最终的结果A:0->A1,1->A2B:0->B1,1->B2C:0->C1,1->C2,2->C3D:0->D1,1->D2,2->D3E:0->E1,1->E2,2->E3,3->E4,4->E5,5->E6实例1员工号(ID)。员工姓名(Name)。员工邮件地址(MailAddress)信息系统中,员工信息查询功能是常见的。例如,设有3个独立的查询条件,以获得特定员工的个人信息实例2PowerPoint的打印,考虑4个因素,每个因素多个选项打印范围分:全部、当前幻灯片、给定范围打印内容分:幻灯片、讲义、备注页、大纲视图打印颜色/灰度分:彩色、灰度、黑白打印效果分:幻灯片加框和幻灯片不加框。有4个因子,水平数(从2到4)是不相等的。由于水平数不等,采用包含和组合的方法选取合适的正交表公式表中的因子数>=4表中至少有4个因子的水平数>=2行数取最少的一个

118最后选中正交表公式:L16(45)

实例2(续)L16(45)123451000002011113022224033335101236110327123018132109202311021320112201312231021330312143120315321301633021123451A1B1C1D102A1B2C2D213A1B3C3224A1B43335A2B1C2236A2B2C1327A2B33D118A2B4C3D209A3B1C33110A3B232011A3B3C1D2312A3B4C2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论