黑盒测试方法教材课件

上传人:仙*** 文档编号:241849525 上传时间:2024-07-30 格式:PPT 页数:80 大小:1.31MB
返回 下载 相关 举报
黑盒测试方法教材课件_第1页
第1页 / 共80页
黑盒测试方法教材课件_第2页
第2页 / 共80页
黑盒测试方法教材课件_第3页
第3页 / 共80页
点击查看更多>>
资源描述
Mardi28septembre,prsdAlberta,notreregardseperddanslaprairiecanadiennesurplombeparlesoliennes.Cettergionestlunedesplusventeusesaupays.第第3 3章章 黑盒测试方法黑盒测试方法黑盒测试法概述黑盒测试法概述1边界值测试边界值测试2等价类测试等价类测试3基于决策表的测试基于决策表的测试4主主要要内内容容错误推测法错误推测法53.1 3.1 黑盒测试黑盒测试把程序和系统看成一个黑盒子,完全不考虑程序的内部把程序和系统看成一个黑盒子,完全不考虑程序的内部结构和处理程序,只是在程序的接口进行测试,以检查程序结构和处理程序,只是在程序的接口进行测试,以检查程序功能是否正常,程序是否能适当接收输入数据产生正确的输功能是否正常,程序是否能适当接收输入数据产生正确的输出数据。出数据。p检查程序功能是否按照需求规格说明书的规定正检查程序功能是否按照需求规格说明书的规定正常使用,测试每个功能是否有遗漏,检测性能等常使用,测试每个功能是否有遗漏,检测性能等特性要求是否满足要求。特性要求是否满足要求。p检测模块接口是否存在问题。检测模块接口是否存在问题。p检测程序初始化和终止方面的错误。检测程序初始化和终止方面的错误。3.1 3.1 黑盒测试法概述黑盒测试法概述n通过测试(通过测试(Test-to-passTest-to-pass)就是通过执行测试用例看看)就是通过执行测试用例看看软件基本功能是否实现,以确信软件在普通情况下能够软件基本功能是否实现,以确信软件在普通情况下能够正确运行。正确运行。n失败测试(失败测试(Test-to-failTest-to-fail)则是采取各种手段通过搞垮)则是采取各种手段通过搞垮软件来找出缺陷,是纯粹为了破坏软件而设计和执行测软件来找出缺陷,是纯粹为了破坏软件而设计和执行测试用例。试用例。在设计黑盒测试用例时,考虑到测试用例数量和测试数据的有限在设计黑盒测试用例时,考虑到测试用例数量和测试数据的有限性性,测试数据的选取起到了关键作用。性性,测试数据的选取起到了关键作用。1 1、如何找到一组符合测试目标、具有代表性的测试数据?、如何找到一组符合测试目标、具有代表性的测试数据?2 2、如何通过测试数据优化来提高测试质量和效率?、如何通过测试数据优化来提高测试质量和效率?3.1 3.1 黑盒测试法概述黑盒测试法概述n本章重点本章重点测试数据选择测试数据选择p边界值测试边界值测试p等价类测试等价类测试p决策表测试决策表测试p经验预测测试经验预测测试黑盒测试黑盒测试1 13 35 54 42 2等价类划分法等价类划分法边界值分析法边界值分析法其它决策表法决策表法错误推测法错误推测法3.1 3.1 黑盒测试法概述黑盒测试法概述n边界值测试边界值测试-起因起因p长长期期的的测测试试工工作作经经验验可可以以得得到到一一个个结结论论:大大量量缺缺陷陷发发生生在在输输入入域域或或输输出出域域的的边边界界(即即极极值值)上上,而而非非输输入入或输出域的内部。或输出域的内部。p通常可作为等价类测试的补充通常可作为等价类测试的补充p并非黑盒测试的特权并非黑盒测试的特权如:日期的计算(第一天、最后一天如:日期的计算(第一天、最后一天.)学号的划分(年级、班级、专业的学号的划分(年级、班级、专业的minmin和和maxmax值)值)银行信用卡利息罚款计算规则银行信用卡利息罚款计算规则 3.2 3.2 边界值测试边界值测试n考虑的问题考虑的问题p如何寻找边界点如何寻找边界点 p如何限定边界点的附近邻域的大小如何限定边界点的附近邻域的大小p在边界点附近的邻域内应选择多少个测试数据在边界点附近的邻域内应选择多少个测试数据p当存在多个输入条件时,应如何处理边界条件的组当存在多个输入条件时,应如何处理边界条件的组合情况合情况3.2边界值测试边界值测试n针对每个局部的输入条件,确定边界点的基本原则:针对每个局部的输入条件,确定边界点的基本原则:p若输入条件规定了取值范围,则以该范围作为边界;若输入条件规定了取值范围,则以该范围作为边界;p若输入条件规定了值的个数,则以值的个数为边界;若输入条件规定了值的个数,则以值的个数为边界;p在输出域中,针对每个输出条件,使用原则(在输出域中,针对每个输出条件,使用原则(1)和)和(2););p若输入域或输出域是有序集合(如有序表、顺序文件若输入域或输出域是有序集合(如有序表、顺序文件等),则选取集合中特定次序的元素作为边界,如第等),则选取集合中特定次序的元素作为边界,如第一个、最后一个元素等。一个、最后一个元素等。3.2边界值测试边界值测试n基本边界值分析:基本思想基本边界值分析:基本思想p对于每个边界点,在该点附近确定大小为对于每个边界点,在该点附近确定大小为1的邻域,的邻域,并直接取略高于其值的点和略低于其值的点作为测并直接取略高于其值的点和略低于其值的点作为测试数据。试数据。p不考虑无效数据。不考虑无效数据。p不考虑输入条件的边界组合情况。不考虑输入条件的边界组合情况。3.2边界值测试边界值测试3.2边界值测试边界值测试n任何程序都可以看成是一个函数任何程序都可以看成是一个函数p程序的输入构成函数的定义域程序的输入构成函数的定义域p程序的输出构成函数的值域程序的输出构成函数的值域n基本原理基本原理p错误更可能出现在输入变量的极值附近错误更可能出现在输入变量的极值附近p例如:程序把例如:程序把=误写成了误写成了n基本思想是测试时输入变量取基本思想是测试时输入变量取p最小值最小值(min)p略高于最小值略高于最小值(min+)p正常值正常值(nom)p略低于最大值略低于最大值(max-)p最大值最大值(max)3.2 3.2 边界值测试边界值测试n基本边界值分析:一个输入条件基本边界值分析:一个输入条件基本思想是测试时输入变量取基本思想是测试时输入变量取p最小值最小值(min)(min)p略高于最小值略高于最小值(min+)(min+)p正常值正常值(nom)(nom)p略低于最大值略低于最大值(max-)(max-)p最大值最大值(max)(max)3.2 3.2 边界值测试边界值测试n基本边界值分析:两个输入条件基本边界值分析:两个输入条件n边界值分析设计测试用例的获得边界值分析设计测试用例的获得p通过使所有变量取正常值,只使一个变量按边界值基本思通过使所有变量取正常值,只使一个变量按边界值基本思想循环取值。想循环取值。p例如:两变量函数的边界值分析测试用例为:例如:两变量函数的边界值分析测试用例为:(X1nom,X2min)(X1nom,X2min+)(X1nom,X2nom)(X1nom,X2max-)(X1nom,X2max)(X1min,X2nom)(X1min+,X2nom)(X1max-,X2nom)(X1max,X2nom)p对于一个对于一个n变量函数,测试用例数为变量函数,测试用例数为4n+1个个3.2边界值测试边界值测试n健壮性测试健壮性测试p是边界值分析的一种简单扩展,用于观察例外处理是边界值分析的一种简单扩展,用于观察例外处理情况情况p基本思想是测试时输入变量取基本思想是测试时输入变量取最小值最小值(min)略高于最小值略高于最小值(min+)正常值正常值(nom)略低于最大值略低于最大值(max-)最大值最大值(max)略超过最大值略超过最大值(max+)略低于最小值略低于最小值(min-)3.2边界值测试边界值测试n最坏情况测试最坏情况测试p考虑多个变量取极值的情况考虑多个变量取极值的情况p最坏情况测试用例的获得最坏情况测试用例的获得所有变量均可取最小值所有变量均可取最小值(min)、略高于最小值略高于最小值(min+)、正正常值常值(nom)、略低于最大值略低于最大值(max-)、最大值最大值(max)这五个这五个元素中的任何一个。元素中的任何一个。测试用例为五个集合的笛卡儿乘积测试用例为五个集合的笛卡儿乘积N变量的最坏情况测试会产生变量的最坏情况测试会产生5n个测试用例个测试用例p健壮最坏情况测试健壮最坏情况测试N变量的健壮最坏情况测试会产生变量的健壮最坏情况测试会产生7n个测试用例个测试用例3.2边界值测试边界值测试案例分析案例分析-三角形问题三角形问题n案例一:三角形问题案例一:三角形问题n三角形问题接受三个整数三角形问题接受三个整数a a、b b、c c作为输入,代表三角形的三条边。作为输入,代表三角形的三条边。a,b,ca,b,c必须满足以下条件:必须满足以下条件:pC1.1=a=200C1.1=a=200pC2.1=b=200C2.1=b=200pC3.1=c=200C3.1=c=200pC4.aC4.ab+cb+cpC5.bC5.ba+ca+cpC6.cC6.ca+ba+bn程序的输出是由这三条边确定的三角形类型程序的输出是由这三条边确定的三角形类型p等边三角形等边三角形p等腰三角形等腰三角形p不等边三角形不等边三角形p非三角形非三角形3.2边界值测试边界值测试三角形问题的测试用例三角形问题的测试用例-边界值分析边界值分析用例abc预期输出11001001等腰三角形21001002等腰三角形3100100100等边三角形4100100199非三角形5100100200等腰三角形61001100等腰三角形71002100等腰三角形8100100100等边三角形9100199100等腰三角形10100200100非三角形111100100等腰三角形122100100等腰三角形13100100100等边三角形14199100100等腰三角形15200100100非三角形3.2边界值测试边界值测试三角形问题的最坏情况测试用例三角形问题的最坏情况测试用例n三个变量:三个变量:a,b,cn产生产生53=125个测试用例个测试用例n存在大量冗余存在大量冗余3.2边界值测试边界值测试案例分析案例分析-NextDate函数函数nNextDate是一个有三个变量(月份、日期和年)的函数。函是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。数返回输入日期后面的那个日期。n变量月份、日期和年都为整数,且满足以下条件:变量月份、日期和年都为整数,且满足以下条件:nC1.1=月份月份=12nC2.1=日期日期=31nC3.1912=年年=2050n测试用例设计测试用例设计3.2边界值测试边界值测试3.2边界值测试边界值测试3.3 3.3 等价类测试等价类测试n n等价类测试等价类测试等价类测试等价类测试-起因起因起因起因p穷举测试不可能穷举测试不可能p希望达到测试的完备和无冗余希望达到测试的完备和无冗余例子例子例子例子1 1 1 1:你买了一个新手机,你想测试(黑盒)两个主要功能:你买了一个新手机,你想测试(黑盒)两个主要功能:你买了一个新手机,你想测试(黑盒)两个主要功能:你买了一个新手机,你想测试(黑盒)两个主要功能 1 1 1 1、手机通讯和短信功能、手机通讯和短信功能、手机通讯和短信功能、手机通讯和短信功能 2 2 2 2、音乐播放功能、音乐播放功能、音乐播放功能、音乐播放功能 怎样测试比较合理?怎样测试比较合理?怎样测试比较合理?怎样测试比较合理?例子例子例子例子2 2 2 2:测试作业提交系统的功能时选择用户问题:测试作业提交系统的功能时选择用户问题:测试作业提交系统的功能时选择用户问题:测试作业提交系统的功能时选择用户问题3.3等价类测试等价类测试n等价类的划分等价类的划分p根据等价关系对输入或输出数据的集合进行根据等价关系对输入或输出数据的集合进行划分划分p将集合划分为互不相交的将集合划分为互不相交的子集子集(无冗余性)(无冗余性)p这些子集的并是整个集合(完备性)这些子集的并是整个集合(完备性)n测试思想测试思想p通过每个等价类中的一个元素标识测试用例通过每个等价类中的一个元素标识测试用例p例如,在三角形问题中,测试用例(例如,在三角形问题中,测试用例(5,5,5)、()、(6,6,6)、()、(100,100,100)都)都可以测试等边三角形,但可以认为在程序中可以测试等边三角形,但可以认为在程序中这三个测试用例具有这三个测试用例具有“相同的处理相同的处理”,因此,因此这些用例是冗余的。这些用例是冗余的。等价类等价类3.3 3.3 等价类测试等价类测试-基本原理基本原理n动机;希望进行完备的测试,希望避免冗余动机;希望进行完备的测试,希望避免冗余n等价类的划分等价类的划分p根据等价关系对输入或输出数据的集合进行划分根据等价关系对输入或输出数据的集合进行划分p将集合划分为互不相交的将集合划分为互不相交的子集子集(无冗余性)(无冗余性)p这些子集的并是整个集合(完备性)这些子集的并是整个集合(完备性)n测试思想测试思想p通过每个等价类中的一个元素标识测试用例通过每个等价类中的一个元素标识测试用例p例如,在三角形问题中,测试用例(例如,在三角形问题中,测试用例(5,5,5)、()、(6,6,6)、)、(100,100,100)都可以测试等边三角形,但可以认为在程序中)都可以测试等边三角形,但可以认为在程序中这三个测试用例具有这三个测试用例具有“相同的处理相同的处理”,因此这些用例是冗余的。,因此这些用例是冗余的。设计测试用例时,要同时考虑这两种等设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。经过正反据,也要能经受意外的考验。经过正反的测试才能确保软件具有更高的可靠性。的测试才能确保软件具有更高的可靠性。all inputsi1i4i2i3n等价类是某个输入域的子集,在该子集中每个输入数据的作用是等价类是某个输入域的子集,在该子集中每个输入数据的作用是等效的等效的n将程序可能的输入数据分成若干个子集,从每个子集选取一个代将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例表性的数据作为测试用例,、,、n在分析需求规格说明的基础上划分等价类,列出等价类表在分析需求规格说明的基础上划分等价类,列出等价类表3.3等价类测试等价类测试-基本原理基本原理n在规定了输入数据的一组值在规定了输入数据的一组值(假定假定n n个个),并且程序要对每一个输入,并且程序要对每一个输入值分别处理,这种情况下可确立值分别处理,这种情况下可确立n n个有效等价类和一个无效等价类。个有效等价类和一个无效等价类。n在规定了输入数据必须遵守的规则的情况下,可确立一个有效等在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类价类(符合规则符合规则)和若干个无效等价类和若干个无效等价类(从不同角度违反规则从不同角度违反规则)。个人月收入个人月收入-x税率税率x=16000%D11600 x21005%D22100=x360010%D33600=x660015%D46600=x2160020%D521600=x10160045%Dn3.3等价类测试等价类测试-基本原理基本原理等价类等价类等价类测试用例等价类测试用例-Example等价类等价类D1:IntegerD1:Integer等价类等价类D2:DecimalD2:Decimal等价类等价类D3:NegativeD3:Negative等价类等价类D4:Invalid inputD4:Invalid input3.3等价类测试等价类测试-基本原理基本原理3.3 3.3 等价类测试等价类测试n有效等价类有效等价类p对对于于规规格格说说明明而而言言,是是合合理理的的、有有意意义义的的输入数据构成的集合。输入数据构成的集合。n无效等价类无效等价类p对对于于规规格格说说明明而而言言,是是不不合合理理的的、无无意意义义的输入数据构成的集合。的输入数据构成的集合。3.3 3.3 等价类测试等价类测试n等价类划分的基本原则:等价类划分的基本原则:p若输入条件规定了取值范围,且取值范围上、下限若输入条件规定了取值范围,且取值范围上、下限之间的数据是有意义的数据,则可确立一个有效等之间的数据是有意义的数据,则可确立一个有效等价类和两个无效等价类;价类和两个无效等价类;p若输入条件规定了若输入条件规定了“必须如何必须如何”的条件,则可确立的条件,则可确立一个有效等价类和一个无效等价类;一个有效等价类和一个无效等价类;p若输入条件是一个布尔量,则可确定一个有效等价若输入条件是一个布尔量,则可确定一个有效等价类和一个无效等价类;类和一个无效等价类;p若输入条件是一个逻辑量,则可为每一个输入值确若输入条件是一个逻辑量,则可为每一个输入值确立一个有效等价类,并针对这组值确立一个无效等立一个有效等价类,并针对这组值确立一个无效等价类。价类。n弱一般等价类测试弱一般等价类测试p考虑单缺陷假设考虑单缺陷假设p测试用例使用每个等价类中的一个值测试用例使用每个等价类中的一个值p设两变量设两变量x1和和x2函数有以下边界和等价区间:函数有以下边界和等价区间:a=x1=d,区间为:区间为:a,b),b,c),c,de=x2=g,区间为:区间为:e,f),f,g)3.3等价类测试等价类测试n强一般等价类测试强一般等价类测试p考虑多缺陷假设考虑多缺陷假设p测试用例集合为等价类笛卡儿积测试用例集合为等价类笛卡儿积p设两变量设两变量x1和和x2函数有以下边界和等价区间:函数有以下边界和等价区间:a=x1=d,区间为:区间为:a,b),b,c),c,de=x2=D6=a=b+cb+c pD7=b=D7=b=a+ca+c pD8=c=D8=c=a+ba+b n同学们可自己设计等价类测试用例同学们可自己设计等价类测试用例3.3等价类测试等价类测试案例分析案例分析-NextDate函数的等价类测试用例函数的等价类测试用例n确定等价类(方法一)pM1=月份:1=月份=12pD1=日期:1=日期=31pY1=年:1912=年=2012pM2=月份:月份12pD2=日期:日期31pY2=年:年20123.3等价类测试等价类测试n弱一般等价类测试弱一般等价类测试p三个独立变量的有效等价类都只有一个三个独立变量的有效等价类都只有一个,因此弱一般等因此弱一般等价类测试与强一般等价类测试相同价类测试与强一般等价类测试相同测试用例测试用例月份月份日期日期年年预期输出预期输出WN1,SN1615191219121912年年6 6月月1616日日3.3等价类测试等价类测试n弱健壮等价类测试弱健壮等价类测试测试用例月份日期年预期输出WR161519121912年年6月月16日日WR2-1151912月份不在有效值内月份不在有效值内WR313151811月份不在有效值内月份不在有效值内WR46-11912日期不在有效值内日期不在有效值内WR56321912日期不在有效值内日期不在有效值内WR66151811年不在有效值内年不在有效值内WR76152013年不在有效值内年不在有效值内3.3等价类测试等价类测试n强健壮等价类测试强健壮等价类测试以下是强健壮等价类测试用例三维立方的一个角以下是强健壮等价类测试用例三维立方的一个角测试用例月份日期年预期输出SR1-1151912月份不在有效值内月份不在有效值内SR26-11912日期不在有效值内日期不在有效值内SR36151811年不在有效值内年不在有效值内SR4-1-11912月份和日期不在有效值内月份和日期不在有效值内SR56-11811日期和年不在有效值内日期和年不在有效值内SR6-1151811月份和年不在有效值内月份和年不在有效值内SR7-1-11811月份月份,日期和年不在有效值内日期和年不在有效值内3.3等价类测试等价类测试案例分析案例分析-NextDate函数的等价类测试用例函数的等价类测试用例n确定等价类确定等价类(方法二方法二)pM1=月份月份:每月有每月有30天天pM2=月份月份:每月有每月有31天天pM3=月份月份:此月是此月是2月月pD1=日期日期:1=日期日期=28pD2=日期日期:日期日期=29pD3=日期日期:日期日期=30pD4=日期日期:日期日期=31pY1=年年:年是闰年年是闰年pY2=年年:年是平年年是平年3.3等价类测试等价类测试n等价类测试用例等价类测试用例p弱一般等价类测试用例应该有弱一般等价类测试用例应该有4个个p强一般等价类测试用例应该有强一般等价类测试用例应该有3个(月份类)个(月份类)x4个(日期类)个(日期类)x2(年类)年类)=24个个p强健壮等价类测试用例强健壮等价类测试用例对每个变量加上对每个变量加上2个无效类个无效类测试用例数为:测试用例数为:5x6x4=120个个n请同学自己思考各测试用例。请同学自己思考各测试用例。n弱一般等价类测试弱一般等价类测试:测试用例使用每个等价类中的一个值测试用例使用每个等价类中的一个值n强一般等价类测试强一般等价类测试:测试用例集合为等价类笛卡儿积测试用例集合为等价类笛卡儿积3.3等价类测试等价类测试3.4基于决策表的测试基于决策表的测试n定义定义p也称判定表,是分析和表达多逻辑条件下执行不同操作的也称判定表,是分析和表达多逻辑条件下执行不同操作的情况的工具情况的工具n决策表的用途决策表的用途p能够将复杂的问题按照各种可能的情况全部列举出来,简能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完整的测试用例集合。明并避免遗漏,设计出完整的测试用例集合。决策表举例决策表举例12345678问问题题你觉得疲倦吗?你觉得疲倦吗?YYYYNNNN你对内容感兴趣吗?你对内容感兴趣吗?YYNNYYNN书中内容使你胡涂吗?书中内容使你胡涂吗?YNYNYNYN建建议议请回到本章开头重读请回到本章开头重读继续读下去继续读下去跳到下一章去读跳到下一章去读停止阅读,请休息停止阅读,请休息读书指南决策表读书指南决策表3.4基于决策表的测试基于决策表的测试决策表的组成n条件桩:列出了问题得所有条件。通常认为列出的条件的次序无关紧要。条件桩:列出了问题得所有条件。通常认为列出的条件的次序无关紧要。n动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。n条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。条件项:列出针对它左列条件的取值。在所有可能情况下的真假值。n动作项:列出在条件项的各种取值情况下应该采取的动作。动作项:列出在条件项的各种取值情况下应该采取的动作。n规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。规则:任何一个条件组合的特定取值及其相应要执行的操作称为规则。3.4基于决策表的测试基于决策表的测试规则合并(化简)规则合并(化简)n将具有相同动作,并且其条件项之间存在着极为相似关系的两将具有相同动作,并且其条件项之间存在着极为相似关系的两条或多条规则合并为一条规则条或多条规则合并为一条规则1234问问 题题 你觉得疲倦吗?你觉得疲倦吗?YNNN你对内容感兴趣吗?你对内容感兴趣吗?-YYN书中内容使你胡涂吗?书中内容使你胡涂吗?-YN-建建 议议 请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 1 12 23 34 45 56 67 78 8问问题题你觉得疲倦吗?你觉得疲倦吗?Y YY YY YY YN NN NN NN N你对内容感兴趣吗?你对内容感兴趣吗?Y YY YN NN NY YY YN NN N书中内容使你胡涂吗?书中内容使你胡涂吗?Y YN NY YN NY YN NY YN N建建议议请回到本章开头重读请回到本章开头重读 继续读下去继续读下去 跳到下一章去读跳到下一章去读 停止阅读,请休息停止阅读,请休息 3.4基于决策表的测试基于决策表的测试决策表的建立步骤 1 1列出所有的条件桩和动作桩列出所有的条件桩和动作桩 2 2 确定规则的个数确定规则的个数 3 3 填入条件项填入条件项 4 4 填入动作项填入动作项 5 5 合并相似规则合并相似规则 实战演习实战演习n问题要求:问题要求:”对功率大于对功率大于50马力的机器、维修记马力的机器、维修记录不全或已运行录不全或已运行10年以上的机器,应给予优先的维修年以上的机器,应给予优先的维修处理处理”。这里假定,。这里假定,“维修记录不全维修记录不全”和和“优先维修优先维修处理处理”均已在别处有更严格的定义。请建立决策表。均已在别处有更严格的定义。请建立决策表。3.4基于决策表的测试基于决策表的测试决策表的类型决策表的类型有限条目决策表有限条目决策表所有条件都是二所有条件都是二叉条件叉条件(真真/假假)决策表决策表扩展条目决策表扩展条目决策表条件可以有多个条件可以有多个值值3.4基于决策表的测试基于决策表的测试案例分析案例分析-三角形问题三角形问题1 1列出所有的条件桩和行动桩列出所有的条件桩和行动桩 C1:ab+c?C2:ba+c?C3:Ca+b?C4:a=b?C5:a=c?C6:b=c?条件桩条件桩非三角形非三角形不等边三角形不等边三角形等腰三角形等腰三角形等边三角形等边三角形不可能不可能行动桩行动桩 2 2 确定规则的个数确定规则的个数 26=64规则数规则数3.4基于决策表的测试基于决策表的测试 3 3 填入条件项填入条件项 4 4 填入动作项填入动作项 C1:ab+c?FFFFFFFFFFC2:ba+c?FFFFFFFFFFC3:Ca+b?FFFFFFFFTTC4:a=b?FFFFTTTTFFC5:a=c?FFTTFFTTFFC6:b=c?FTFTFTFTFTA1:A1:非三角形非三角形A2:A2:不等边三角形不等边三角形A3:A3:等腰三角形等腰三角形A4:A4:等边三角形等边三角形A5:A5:不可能不可能3.4基于决策表的测试基于决策表的测试 5 5 合并相似规则合并相似规则 C1:ab+c?FFFFFFFFFFC2:ba+c?FFFFFFFFFFC3:Ca+b?FFFFFFFFTTC4:a=b?FFFFTTTTFFC5:a=c?FFTTFFTTFFC6:b=c?FTFTFTFTFTA1:A1:非三角形非三角形A2:A2:不等边三角形不等边三角形A3:A3:等腰三角形等腰三角形A4:A4:等边三角形等边三角形A5:A5:不可能不可能3.4基于决策表的测试基于决策表的测试C1:ab+c?FTTTTTTTTTTC2:ba+c?-FTTTTTTTTTC3:Ca+b?-FTTTTTTTTC4:a=b?-TTTTFFFFC5:a=c?-TTFFTTFFC6:b=c?-TFTFTFTFA1:A1:非三角形非三角形A2:A2:不等边三角形不等边三角形A3:A3:等腰三角形等腰三角形A4:A4:等边三角形等边三角形A5:A5:不可能不可能3.4基于决策表的测试基于决策表的测试 6 6 得到测试用例得到测试用例 用例用例IDabc预期输出预期输出DT1412非三角形非三角形DT2142非三角形非三角形DT3124非三角形非三角形DT4555等边三角形等边三角形DT5?不可能不可能DT6?不可能不可能DT7223等腰三角形等腰三角形DT8?不可能不可能DT9232等腰三角形等腰三角形DT10322等腰三角形等腰三角形DT11345不等边三角形不等边三角形3.4基于决策表的测试基于决策表的测试案例分析-NextDate函数(方法一)nNextDate是一个有三个变量(月份、日期和年)的函数。函数是一个有三个变量(月份、日期和年)的函数。函数返回输入日期后面的那个日期。返回输入日期后面的那个日期。n变量月份、日期和年都为整数,且满足以下条件:变量月份、日期和年都为整数,且满足以下条件:uC1.1=月份月份=12uC2.1=日期日期=31uC3.1912=年年=20503.4基于决策表的测试基于决策表的测试1=M=12?FFFFTTTT1=D=31FFTTFFTT1912=Y=2050FTFTFTFTA1:无效输入无效输入A2:?列出所有的条件桩和行动桩列出所有的条件桩和行动桩 为什么?为什么?3.4基于决策表的测试基于决策表的测试n等价类等价类M1=月份月份:每月有每月有30天天M2=月份月份:每月有每月有31天天M3=月份月份:此月是此月是2月月D1=日期日期:1=日期日期=28D2=日期日期:日期日期=29D3=日期日期:日期日期=30D4=日期日期:日期日期=31Y1=年年:年是闰年年是闰年Y2=年年:年是平年年是平年n条件桩条件桩C1:月份在月份在M1中中C2:月份在月份在M2中中C3:月份在月份在M3中中C4:日期在日期在D1中中C5:日期在日期在D2中中C6:日期在日期在D3中中C7:日期在日期在D4中中C8:年是闰年年是闰年C9:年是平年年是平年29=512太大!太大!规则数规则数?3.4基于决策表的测试基于决策表的测试n等价类等价类M1=月份月份:每月有每月有30天天M2=月份月份:每月有每月有31天天M3=月份月份:此月是此月是2月月D1=日期日期:1=日期日期=28D2=日期日期:日期日期=29D3=日期日期:日期日期=30D4=日期日期:日期日期=31Y1=年年:年是闰年年是闰年Y2=年年:年是平年年是平年n条件桩条件桩nC1:月份在月份在M1,M2,M3中之一中之一nC2:日期在日期在D1,D2,D3,D4中之一中之一nC3:年在年在Y1,Y2中之一中之一3.4基于决策表的测试基于决策表的测试条件条件12345678910111213.C1:月份在月份在M1M1M1M1M1M1M1M1M2M2M2M2M2.C2:日在日在D1D1D2D2D3D3D4D4D1D1D2D2D3.C3:年在年在Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1Y2Y1.有多少条规则有多少条规则有多少条规则有多少条规则?n条件桩条件桩nC1:月份在月份在M1,M2,M3中之一中之一nC2:日期在日期在D1,D2,D3,D4中之一中之一nC3:年在年在Y1,Y2中之一中之一3.4基于决策表的测试基于决策表的测试案例分析-NextDate函数的测试用例nA1:不可能不可能nA2:日期增日期增1nA3:日期复位日期复位(置置1)nA4:月份增月份增1nA5:月份复位月份复位(置置1)nA6:年增年增13.4基于决策表的测试基于决策表的测试NextDate函数的扩展条目决策表函数的扩展条目决策表条件12345678910 11 12 13 14C1:月份在 M1 M1 M1 M1M2 M2 M2 M2 M3 M3 M3 M3 M3 M3C2:日在D1 D2 D3 D4D1 D2 D3 D4 D1 D1 D2 D2 D3 D4C3:年在-Y1 Y2 Y1 Y2-A1:不可能A2:日增1?A3:日复位?A4:月增1?A5:月复位?A6:年增1?注意规则注意规则8,103.4基于决策表的测试基于决策表的测试案例分析-NextDate函数(方法二)n利用等价类利用等价类M1=月份月份:每月有每月有30天天M2=月份月份:每月有每月有31天天,12月除外月除外M3=月份月份:此月是此月是12月月M4=月份月份:此月是此月是2月月D1=日期日期:1=日期日期=27D2=日期日期:日期日期=28D3=日期日期:日期日期=29D4=日期日期:日期日期=30D5=日期日期:日期日期=31Y1=年年:年是闰年年是闰年Y2=年年:年是平年年是平年n条件条件C1:月份在月份在M1,M2,M3,m4中之一中之一C2:日期在日期在D1,D2,D3,D4,D5中之中之一一C3:年在年在Y1,Y2中之一中之一问题:可得到问题:可得到?条规则?条规则3.4基于决策表的测试基于决策表的测试新的新的NextDate函数的扩展条目决策表函数的扩展条目决策表:条件条件12345678910C1:月份在月份在M1M1M1M1M1M2M2M2M2M2C2:日在日在D1D2D3D4D5D1D2D3D4D5C3:年在年在-A1:不可能不可能A2:日增日增1A3:日复位日复位A4:月增月增1A5:月复位月复位A6:年增年增13.4基于决策表的测试基于决策表的测试新的新的NextDate函数的扩展条目决策表续函数的扩展条目决策表续:(结合不关心条目结合不关心条目,可得到有可得到有22条规则的决策表条规则的决策表)条件条件111213141516171819202122C1:月份在月份在M3M3M3M3M3M4M4M4M4M4M4M4C2:日在日在D1D2D3D4D5D1D2D2D3D3D4D5C3:年在年在-Y1Y2Y1Y2-A1:不可能不可能A2:日增日增1A3:日复位日复位A4:月增月增1A5:月复位月复位A6:年增年增13.4基于决策表的测试基于决策表的测试同步练习同步练习用例用例ID月份月份日期日期年年预期输出预期输出123456789请写出请写出NextDate函数的前函数的前9个测试用例:个测试用例:3.4基于决策表的测试基于决策表的测试案例分析案例分析-NextDate函数的测试用例函数的测试用例用例用例ID月份月份日期日期年年预期输出预期输出1-341220012001年年4月月12日日443020012001年年5月月1日日54312001不可能不可能6-911520012001年年1月月16日日1013120012001年年2月月1日日11-14121520012001年年12月月16日日15123120012002年年1月月1日日1621520012001年年2月月16日日1722820042004年年2月月29日日1822820012001年年3月月1日日1922920042005年年3月月1日日202292001不可能不可能21,222302001不可能不可能3.4基于决策表的测试基于决策表的测试3.5错误推测法错误推测法n依靠经验和直觉猜测程序中可能存在的各种错误,从而有针依靠经验和直觉猜测程序中可能存在的各种错误,从而有针对性地编写检查这些故障的测试用例。对性地编写检查这些故障的测试用例。功能性测试方法总结功能性测试方法总结精细程度精细程度方法评价方法评价工作量工作量精细程度精细程度测试用例数测试用例数精细程度精细程度边界值边界值等价类等价类决策表决策表低低高高各种测试方法的测试用例趋势线各种测试方法的测试用例趋势线功能性测试方法总结功能性测试方法总结设计测试用例的工作量设计测试用例的工作量精细程度精细程度边界值边界值等价类等价类决策表决策表低低高高各种测试方法的测试用例设计工作量各种测试方法的测试用例设计工作量工作量工作量功能性测试方法总结功能性测试方法总结总结总结n边界值分析边界值分析p基于定义域基于定义域,不识别数据或逻辑关系不识别数据或逻辑关系p很容易自动化实现很容易自动化实现p设计工作量小设计工作量小p生成的测试用例数比较多生成的测试用例数比较多p测试用例执行时间长测试用例执行时间长n等价类技术等价类技术p考虑数据依赖关系考虑数据依赖关系p标识等价类时需要更多的判断和技巧标识等价类时需要更多的判断和技巧p等价类标识出以后的处理也是机械的等价类标识出以后的处理也是机械的p设计工作量和测试用例数属中等设计工作量和测试用例数属中等n决策表技术决策表技术p又要考虑数据的逻辑依赖关系又要考虑数据的逻辑依赖关系p所得测试用例可以是完备的所得测试用例可以是完备的p测试数量在一定意义上讲是最少的测试数量在一定意义上讲是最少的p需要通过多次迭代需要通过多次迭代p设计工作量很大设计工作量很大综合案例综合案例n保险金计算程序保险金计算程序p保险金保险金=500 x年龄系数年龄系数安全驾驶折扣安全驾驶折扣安全驾驶折扣是投保人驾驶执照上当前点数的函数安全驾驶折扣是投保人驾驶执照上当前点数的函数年龄系数是投保人年龄的函数年龄系数是投保人年龄的函数若点数低于等于与年龄有关的点数门限,则给予安全驾驶折扣若点数低于等于与年龄有关的点数门限,则给予安全驾驶折扣p程序输入程序输入:年龄年龄,点数点数p驾驶人年龄范围为驾驶人年龄范围为16-100岁岁p点数范围为点数范围为0-12p输出:保险金输出:保险金年龄范围年龄范围年龄系数年龄系数门限点数门限点数安全驾驶折扣安全驾驶折扣16=年龄年龄252.815025=年龄年龄351.835035=年龄年龄451.0510045=年龄年龄600.8715060=年龄年龄=1001.55200年龄系数和安全驾驶折扣计算表年龄系数和安全驾驶折扣计算表综合案例综合案例变量变量最小值最小值略大于最略大于最小值小值正常值正常值略小于最略小于最大值大值最大值最大值年龄年龄16175499100点数点数0161112输入变量年龄和点数的边界值条件输入变量年龄和点数的边界值条件1 1综合案例综合案例变量变量最小值最小值略大于最小值略大于最小值正常值正常值略小于最大值略小于最大值最大值最大值年龄年龄16172024-年龄年龄25263034-年龄年龄35364044-年龄年龄45465359-年龄年龄60617599100点数点数0-1点数点数2-3点数点数4-5点数点数6-7点数点数89101112输入变量年龄和点数的边界值条件输入变量年龄和点数的边界值条件2 2点数边界值共有点数边界值共有1313个,年龄边界值共有个,年龄边界值共有2121个个笛卡儿乘积(最坏情况边界值测试用例)共有笛卡儿乘积(最坏情况边界值测试用例)共有273273个元素,存在严重冗余个元素,存在严重冗余 综合案例综合案例等价类划分方法等价类划分方法w年龄等价类集合年龄等价类集合wA1=16=年龄年龄25wA2=25=年龄年龄35wA3=35=年龄年龄45wA4=45=年龄年龄60wA5=60=年龄年龄=100w点数等价类集合点数等价类集合wP1=点数点数=0,1wP2=点数点数=2,3wP3=点数点数=4,5wP4=点数点数=6,7wP5=点数点数=8,9,10,11,12综合案例综合案例保险金程序的强等价类测试用例保险金程序的强等价类测试用例用例用例ID年龄年龄点数点数118021823184418651810630073028304930610301011400124021340414406用例用例ID年龄年龄点数点数1540101650017502185041950620501021800228022380424806258010 等价类测试明显可以缓解冗余,等价类测试明显可以缓解冗余,但仍然有改进的余地但仍然有改进的余地综合案例综合案例决策表方法决策表方法年龄年龄16-2516-2525-3525-3535-4535-45点数点数0-12-120-34-120-56-12年龄系数年龄系数2.82.81.81.811安全驾驶折扣安全驾驶折扣5005001000年龄年龄45-6045-6060-10060-100点数点数0-78-120-56-12年龄系数年龄系数0.80.81.51.5安全驾驶折扣安全驾驶折扣15002000综合案例综合案例保险金程序的决策表测试用例保险金程序的决策表测试用例用例用例ID年龄年龄点数点数11802182330043045405640675078508980510806w该方案也存在一些问题该方案也存在一些问题w没有考虑边界的问题没有考虑边界的问题w没有考虑没有考虑16岁以下和岁以下和100岁以上的年龄岁以上的年龄w没有考虑点数大于没有考虑点数大于12的的情况情况w可将三种方法结合起来考虑可将三种方法结合起来考虑以得到更好的测试方案以得到更好的测试方案综合案例综合案例
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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


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

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


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