版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章软件测试的基本技术软件测试山西大学经济与管理学院
导读软件测试的方法有多种多样,可以对其从不同角度加以分类。比如说:
可以从是否需要执行被测试的软件的角度
从是否对系统的外部功能还是系统的内容结构的角度
从软件测试的策略和过程的角度
从不同的角度划分,有不同的分类方式。这一章作为软件测试的技术,主要介绍了上述分类中的静态测试、动态测试、黑盒测试和白盒测试的技术。3.1软件测试技术的分类3.1.1从是否需要执行被测软件的角度分类
从是否需要执行被测试软件的角度划分,软件测试可以分成动态测试(DynamicTesting)和静态测试(StaticTesting)两类。
(1)静态测试:就是通过对被测程序的静态审查,发现代码中潜在的错误的测试。也成人工测试或者代码评审。
(2)动态测试:动态测试是通常意义上的测试,即通过使用和运行被测软件,发现潜在错误。动态测试的对象必须是能够由计算机真正运行的被测试的程序。它又包括:黑盒测试和白盒测试。3.1软件测试技术的分类3.1.2从软件测试用例设计方法的角度分类
从软件测试用例设计方法的角度进行分类,软件测试的技术分为黑盒测试(Black-boxTesting)和白盒测试(White-boxTesting)。
(1)黑盒测试:是一种从用户角度出发的测试,又称为功能测试或者数据驱动测试、基于规格说明的测试等。简单地说,若测试用例的设计时基于产品的功能,目的是检查程序各个功能是否实现,并检查其中的功能错误,则这种测试方法称为黑盒测试。
(2)白盒测试:基于产品的内部结构来进行测试,检查内容操作是否按规定执行,软件各个功能部分是否得到充分应用。白盒测试又称为结构测试或者逻辑驱动测试或基于程序的测试。3.1软件测试技术的分类3.1.3从软件测试的策略和过程的角度分类
从软件测试的策略和过程的角度进行分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。
(1)单元测试:是针对每个单元的测试,是软件测试的最小单位。
(2)集成测试:是对已测试过的模块进行组装,对组装以后的集成块进行测试。
(3)确认测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。3.1软件测试技术的分类3.1.3从软件测试的策略和过程的角度分类
从软件测试的策略和过程的角度进行分类,软件测试可分为单元测试(UnitTesting)、集成测试(IntegrationTesting)、确认测试(ValidationTesting)、系统测试(SystemTesting)和验收测试(VerificationTesting)。
(4)系统测试:主要任务是检测被测软件与系统其他部分的协调性,通常采用黑盒测试的方法。
(5)验收测试:是软件产品质量额最后一关,在这一环节,测试主要从用户的角度着手,参与者主要是用户及少量的程序开发人员,通常采用的测试方法为黑盒测试。3.2静态测试和动态测试3.2.1静态测试静态测试就是通过对被测程序的静态审查,发现代码中潜在的错误的测试,它和动态测试的区别就是是否需要程序被运行。
也就是说,在进行测试的过程中,只要是不需要执行代码,就可以对软件进行测试的方法,可以看成是静态测试方法。反之,需要对软件执行对应代码的测试方法则为动态测试。静态测试(汽车停止中)踩油门看车漆打开前盖检查动态测试(发动机运行中)发动汽车听发动机的声音上路行驶图3-1静态测试与动态测试比喻图3.2静态测试和动态测试3.2.1静态测试静态测试方法的主要特征是在测试源程序时,计算机并不真正运行被测试的程序,只对被测程序进行特性分析,因此,静态方法常称为“分析”,静态分析是对被测程序进行特性分析的一些方法的总称。
所谓静态分析,就是不需要执行所测试的程序,而只是通过扫描程序正文,对程序的数据流和控制流等信息进行分析,找出系统的缺陷,得出测试报告的过程。
静态测试包括代码检查、静态结构分析、代码质量度量等。它可以由人工进行,充分发挥人的逻辑思维又是,也可以借助软件工具自动进行。3.2静态测试和动态测试3.2.1静态测试通常在静态测试阶段进行以下一些测试活动:
(1)检查算法的逻辑正确性
(2)检查模块接口的正确性
(3)检查输入参数是否有合法性检查
(4)检查调用其他模块的接口是否正确,检查实参类型、实参个数是否正确,返回值是否正确
(5)检查是否设置了适当地出错处理
(6)检查表达式、语句是否正确,是否含有二义性3.2静态测试和动态测试3.2.1静态测试通常在静态测试阶段进行以下一些测试活动:
(7)检查常量或全局变量使用是否正确
(8)检查标识符的使用是否规范、一致,变量命名是否能做到忘名知意、简洁、规范和易记
(9)检查程序风格的一致性、规范性,代码是否符合行业规范,是否所有模块的代码风格一致、规范
(10)检查代码是否可以优化,算法效率是否最高
(11)检查代码注释是否完整,是否正确反映了代码的功能,并查找错误的注释。3.2静态测试和动态测试3.2.2动态测试动态测试是通常意义上的测试,即通过使用和运行被测软件,发现潜在错误。动态测试的对象必须是能够由计算机真正运行的被测试的程序。它是通过源程序运行时所体现出来的特征,来进行执行跟踪、时间分析以及测试覆盖等方面的测试。
动态测试方法的基本步骤如下:
(1)选取定义域的有效值,或选取定义域外的无效值。
(2)对已选取值决定预期的结果。
(3)用选取值执行程序。
(4)将执行结果与预期的结果进行对比,不吻合则说明程序有误。3.3黑盒测试方法3.3.1黑盒测试方法概述
黑盒测试是一种从用户角度出发的测试,又称为功能测试或者数据驱动测试、基于规格说明的测试。黑盒测试的基本观点是:任何程序都可以看做是从输入定义域映射到输出值域的函数过程。它将被测程序视为一个打不开的黑盒子,盒子中的内容完全不知道,只知道盒子是要做成什么样子的。
黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试主要是为了发现以下的错误:
(1)是否有不正确的功能或者是遗漏的功能;
(2)接口能否正确地接收输入数据并产生正确的输出结果;3.3黑盒测试方法3.3.1黑盒测试方法概述黑盒测试方法着重测试软件的功能需求,是在程序接口上进行测试主要是为了发现以下的错误:
(3)是否有数据结构错误或外部信息访问错误;
(4)性能是否能够满足要求;
(5)是否有程序初始化和终止方面的错误。3.3黑盒测试方法3.3.1黑盒测试方法概述黑盒测试有两个显著的特点:
(1)黑盒测试不考虑软件的具体实现过程,当在软件实现的过程发生变化时,测试用例仍然可以使用;
(2)黑盒测试用例的设计可以喝软件实现同时进行,这样能够压缩总的开发时间。
黑盒测试有两种基本方法,即通过测试和失败测试。3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述
等价类划分法是黑盒测试用例设计中一种常用的设计方法,它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。
等价类划分法把所有可能的输入数据,即程序的输入域划分成若干部分,然后每一个子集中选取少数具有代表性的数据作为测试用例。
所谓等价类是指输入域的某个子集合。所有等价类的并集就是整个输入域。对揭露程序中的故障来说,等价类中的每个元素是等效的。
3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述软件不能只接收合理有效的数据,也要具有处理异常数据的功能,这样的测试才能确保软件具有更高的可靠性。因此,在划分等价类的过程中,不但要考虑有效等价类划分,同时也要考虑无效等价类的划分。
有效等价类是指对软件规格说明来说,合理、有意义的输入数据所构成的集合。
无效等价类则和有效等价类相反,即不满足程序输入要求,或者无效输入的数据所构成的集合。abcdefg3.3黑盒测试方法3.3.2等价类划分法(1)等价类划分法概述使用等价类划分法,首先必须在分析需求规格说明的基础上划分等价类。
其次,建立等价类表,列出所有的等价类。
再次根据已列出的等价类表,按下述步骤确定测试用例:
(1)为每一个等价类规定一个唯一的编号
(2)设计一个新的测试用例,使其能尽肯能多的覆盖有效等价类
(3)设计一个新的测试用例,使其仅覆盖一个无效等价类3.3黑盒测试方法3.3.2等价类划分法等价类划分测试举例在三角形问题中,输入条件要求:
整数;三个数;取值在1到100之间3.3黑盒测试方法3.3.2等价类划分法等价类划分测试举例
输入三个整数有效等价类号码无效等价类号码整数1一边为非整数二边为非整数三边均为非整数456三个数2只有一条边只有二条边多余三条边7893一边为零二边为零三边为零101112一边<零二边<零三边<零131415一边>100二边>100三边>1001617183.3黑盒测试方法3.3.2等价类划分法三角形问题的无效等价类测试用例abc覆盖的等价类abc覆盖的等价类1.5,4,540,0,0123.5,2.5,55-3,4,6132.5,4.5,5.562,-7,-51437-3,-5,-7154,58101,4,8162,3,4,593,101,101173,0,810101,101,101180,6,0113.3黑盒测试方法3.3.2等价类划分法(2)常见等价划分形式针对是否对无效数据进行测试,可以将等价类测试分为以下几种具体的形式:
标准等价类测试
健壮等价类测试
对等区间划分3.3黑盒测试方法3.3.2等价类划分法标准等价类和健壮等价类测试三角形问题有四种可能输出:非三角形,一般三角形,等腰三角形和等边三角形。利用这些信息来确定输出(值域)等价类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不能形成三角形}3.3黑盒测试方法3.3.2等价类划分法四个标准等价类测试用例是:测试用例abc预期输出Test1Test2Test3Test4523452415352等边三角形等腰三角形一般三角形非三角形3.3黑盒测试方法3.3.2等价类划分法考虑a,b,c的无效值产生了下面7个健壮等价类测试用例是:测试用例abc预期输出Test1Test2Test3Test4Test5Test6Test73-1551015545-1551015555-155101一般三角形a值不在允许的范围内b值不在允许的范围内c值不在允许的范围内a值不在允许的范围内b值不在允许的范围内c
值不在允许的范围内3.3黑盒测试方法3.3.3等价类的指导方针如果执行语言是强类型的,则没有必要使用健壮等价类测试。如果错误输入检查非常重要,则应进行健壮等价类测试。如果输入数据以离散值区间或集合的形式定义,则等价类测试是合适的。在发现“合适”的等价关系之前,可能需要进行多次尝试。3.3黑盒测试方法3.3.3边界值分析法(1)边界值分析法
边界值分析法是一种补充等价类划分法的测试用例设计技术,不同于等价类划分法选择等价类的任意元素,它选择等价类的边界来设计测试用例。使用边界值分析方法设计测试用例时,首先应确定边界情况。比如,在作三角形计算时,要输入三角形的三个边长:a、b和a。当满足a+b>c、a+c>b及b+c>a才能构成三角形。但如果把三个不等式的任何一个大于号“>”错写成大于等于号“≥”,那就无法构成三角形了。3.3黑盒测试方法3.3.3边界值分析法
/*Createa10elementintegerarray*//*Initiatizeeachelementto–1*/main(){intdata[10];inti;For(i=1;10;i++)data(i)=-1;}
这段代码的意图是创建包含10个元素的数组,并为数组中的每一个元素赋初值-1,即数组中从第1个元素到第10个元素被赋予数值-1。3.3黑盒测试方法3.3.3边界值分析法data(0)=0;data(1)=-1;data(2)=-1;data(3)=-1;data(4)=-1;data(5)=-1;data(6)=-1;data(7)=-1;data(8)=-1;data(9)=-1;data(10)=-1
data(0)的值是0,而不是-1。3.3黑盒测试方法3.3.3边界值分析法(1)边界值分析法在应用边界值分析法设计测试用例时,应遵循以下几条原则:
1)如果输入条件规定了值得范围,则应取刚达到这个范围的边界值以及刚刚超过这个范围的边界值。
2)如果输入条件规定了值的个数,则用最大个数、最小个数、比最小少1,比最大多1的数作为测试数据。3)如果程序的规格说明给出了输入域或者输出域是有序集合,则应选取集合的第一个元素和最后一个元素。4)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界值作为测试用例。3.3黑盒测试方法3.3.3边界值分析法(2)边界条件与次边界条件边界条件是基于应用程序的功能设计需要考虑的因素,可以从软件的规格说明或常识中得到,也是最终用户通常最容易发现问题的部分。
次边界条件是指在测试用例设计过程中,某些边界条件是不需要呈现给用户的,或者说用户很难注意到这些问题,但这些边界条件确实同时属于检验范畴内的边界条件,成为内边界条件或者次边界条件。其主要有以下几种:
1)数值的边界检验
2)字符的边界检验3.3黑盒测试方法3.3.3边界值分析法(3)三角形问题的边界值分析测试用例边长下界为1,边长上界可取为100。
测试用例abc预期输出Test150501等腰三角形Test250502等腰三角形Test3505050等边三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形边界值分析测试用例测试用例abc预期输出Test150501等腰三角形Test250502等腰三角形Test3505050等边三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形边界值分析测试用例测试用例abc预期输出Test150501等腰三角形Test250502等腰三角形Test3505050等边三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形测试用例abc预期输出Test150501等腰三角形Test250502等腰三角形Test3505050等边三角形Test4505099等腰三角形Test55050100非腰三角形Test650150等腰三角形Test750250等腰三角形Test8509950等腰三角形Test95010050非三角形Test1015050等腰三角形Test1125050等腰三角形Test12995050等腰三角形Test131005050非三角形3.3黑盒测试方法3.3.4决策表法(1)决策表法简介
在所有的黑盒测试方法中,基于决策表的测试最为严格,最具有逻辑性。其主要有四个部分组成:
条件桩:列出了问题的所有条件
动作桩:列出了问题规定的可能采取的操作
条件项:针对条件桩给出的条件列出所有可能的取值。
动作项:与条件项金木相关,列出了在条件项的各组取值情况下应采取的动作。
任何一个条件组合的特定取值以及其要执行的操作称为一条规则。3.3黑盒测试方法3.3.4决策表法(1)决策表法简介
根据软件规格说明,建立决策表的步骤如下:
1)确定规则的个数。
2)列出所有的条件桩和动作桩。
3)填入条件项。
4)填入动作像,得到初始决策表。
5)简化,合并相似的规则。3.3黑盒测试方法3.3.4决策表法在实际使用判定表时,常常先将它简化。简化是以合并相似规则为目标的。若表中有两条或多条规则具有相同的动作,并且在条件项之间存在着极为相似的关系,便可以设法将其合并。“不关心”条目(don’tcare)条件无关或条件不适用。3.3黑盒测试方法3.3.4决策表法(2)决策表法的应用c3:a,b,c构成一个三角形?c2:a=b?c3:a=c?c4:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等边三角形a5:不可能N---YYYY
三角问题的决策表YYYNYYNYYYNNYNYYYNYNYNNYYNNN合并相似规则后三角形问题的决策表如下:
3.3黑盒测试方法3.3.4决策表法(2)决策表法的应用扩展的三角问题的决策表c1:a<b+c?c2:b<a+c?c3:c<a+b?c4:a=b?c5:a=c?c6:b=c?a1:非三角形a2:一般三角形a3:等腰三角形a4:等边三角形a5:不可能F-----TF----TTF---TTTTTTTTTTTFTTTTFTTTTTFFTTTFTTTTTFTFTTTFFTTTTFFF3.3黑盒测试方法3.3.4决策表法(2)决策表法的应用用例abc预期输出test1412非三角形test2142非三角形test3124非三角形test4555等边三角形test5???不可能test6???不可能test7223等腰三角形test8???不可能test9232等腰三角形test10322等腰三角形test11345一般三角形
三角形问题的决策表测试用例3.3黑盒测试方法3.3.4决策表法(3)决策表方法适用于以下应用程序
if-then-else逻辑突出。输入变量之间存在逻辑关系。涉及输人变量子集的计算。输入与输出之间存在因果关系。3.3黑盒测试方法3.3.4决策表法(2)适合于使用决策表设计测试用例的情况有:
规格说明以决策表形式给出,或是容易转换成决策表。
条件的排列顺序不会也不应影响执行的操作。
规则的排列顺序不会也不应影响执行的操作。
每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则。
如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要。。3.3黑盒测试方法3.3.5因果图法因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的一种方法。它适合检查程序输入条件的各种组合情况。因果图的基本符号3.3黑盒测试方法3.3.5因果图法因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的一种方法。它适合检查程序输入条件的各种组合情况。约束符号3.3黑盒测试方法3.3.5因果图法
因果图法的主要步骤如下:
(1)分析软件规格说明书中的输入条件和输出条件,并且分析出等价类。
(2)将对应的输入与输入之间、输入与输出之间的关系连接起来,并且将其中不可能的组合情况标注成约束或者限制条件,形成因果图。
(3)将因果图转换为决策表。
(4)将决策表的每一列作为依据,设计测试用例。3.3黑盒测试方法3.3.5因果图法分析关联转换输出根据组合间的关联与约束,形成因果图由因果图转换为判定表由判定表导出测试用例分析输入、输出数据之间的关系3.3黑盒测试方法3.3.5因果图法软件需求规格说明如下:第一列字符必须是A或B,第二列字符必须是一个数字,在此情况下进行文件的修改,但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。步骤一:分析程序规格说明书,识别哪些是原因,哪些是结果,原因往往是输入条件或者输入条件的等价类,而结果常常是输出条件。如下所示:
3.3黑盒测试方法3.3.5因果图法原因:
1--第一列字符是A;
2--第一列字符是B;
3--第二列字符是一数字。结果:
21--修改文件;
22--给出信息L;
23--给出信息M。3.3黑盒测试方法3.3.5因果图法
步骤三:状态1和状态2不能同时为1,输入3个状态只有6种取值123456原因111000020011003101010结果210000112210100023010101测试用例A3A5AMA7B5B4BNB!C2X6DYP;3.3黑盒测试方法3.3.6黑盒测试方法的选择(1)黑盒测试方法的优缺点
黑盒测试方法的优点:
适用于各个测试阶段;
从产品功能角度进行测试;
容易入手生成测试数据。
黑盒测试的缺点:
某些代码得不到测试;
如果规则说明有误,无法发现;
不易充分进行测试。3.3黑盒测试方法3.3.6黑盒测试方法的选择(2)各种黑盒测试方法的选择
在确定黑盒测试时,应该遵循如下的原则:
1)根据程序的重要性和一旦发生故障将造成的损失程度来确定测试等级和测试重点。
2)认真选择测试策略,以便能尽可能少地使用测试用例
3)进行等价划分
4)在任何情况下都必须使用边界值法
5)检查测试用例的覆盖程度,如果缺少要及时补充
6)如果程序中含有输入条件组合情况,则应一开始就选用因果图法3.4白盒测试方法白盒测试指测试软件产品的内部结构和处理过程,而不测试软件产品的功能,用于纠正软件系统在描述、表示和规格上的错误,是进一步测试的前提,也称作结构测试或者逻辑驱动测试。
白盒子测试分静态和动态两种:静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程,有时也称为结构分析。动态白盒测试也称结构化测试,通过查看并使用代码的内部结构,设计和执行测试。
白盒测试的主要方法有逻辑覆盖、基本路径测试等,它主要用于对软件的验证测试。3.4白盒测试方法3.4.1逻辑覆盖测试逻辑覆盖是一种使用最广泛的结构测试方法。逻辑覆盖以程序内部的逻辑结构为基础设计测试用例,要求对被测程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。由于覆盖测试的目标不同,逻辑覆盖又可分为:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖及路径覆盖。3.4白盒测试方法下面的一小段程序来讨论。
if((age>25)AND(sex=M))thencommission=commission+150;endifif(age>=50OR(commission>2000.0))thencommission=commission-200;
endif3个变量为:年龄age、性别sex、佣金commission3.4白盒测试方法3.4.1逻辑覆盖测试(1)语句覆盖语句覆盖要求设计若干个测试用例,运行被测程序,使程序中的每个可执行语句至少被执行一次。这里所谓“若干”,自然是越少越好。Test1:age=50,sex=M,comm=2500作为测试用例,则程序按路径ace执行。这样该程序段的4个语句都得到执行,从而作到了语句覆盖。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(1)语句覆盖
Test2:age=50,sex=F,comm=2500程序则按abe执行,没有达到语句覆盖。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(1)语句覆盖
Test2:age=50,sex=F,comm=2500程序则按abe执行,没有达到语句覆盖。从程序中每个语句都得到执行这一点来看,语句覆盖的方法似乎能够比较全面地检验被测程序的每一个语句。但语句覆盖是很弱的逻辑覆盖准则。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(2)判断覆盖判断覆盖是指涉及若干测试用例,执行被测试程序时,使程序中每个判断条件的真值分支和假值分支至少执行以便。在保证完成要求的情况下,测试用例的数目同样越少越好,判断覆盖又称为分支覆盖。若选用两组测试用例:Test1:age=50,sex=M,comm.=2500Test3:age=20,sex=M,comm.=1500则分别执行路径ace和abd,从而使两个判断的4个分支c,e和b,d分别得到检测。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(2)判断覆盖若选用另外两组测试用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900
则分别路径acd及abe,同样也可覆盖4个分支。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(2)判断覆盖若选用另外两组测试用例:Test4age=40,sex=M,comm.=1500Test5age=50,sex=F,comm.=1900
则分别路径acd及abe,同样也可覆盖4个分支。上述两组测试用例不仅满足判定覆盖,同时还满足语句覆盖。判定覆盖比语句覆盖更强一些。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(2)判断覆盖但需要注意的是判断覆盖只作到判定覆盖仍无法确定判断内部条件的错误。如果在此程序段中第2个判断条件comm>2000错写成comm<2000,使用上述测试用例Test5,age=50,sex=F,comm=1900照样能按原路径执行(abe),不影响结果。但无法判定内部条件。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(2)判断覆盖但需要注意的是判断覆盖只作到判定覆盖仍无法确定判断内部条件的错误。如果在此程序段中第2个判断条件comm>2000错写成comm<2000,使用上述测试用例Test5,age=50,sex=F,comm=1900照样能按原路径执行(abe),不影响结果。但无法判定内部条件。a、b、c、d和e为控制流上程序点。3.4白盒测试方法3.4.1逻辑覆盖测试(3)条件覆盖条件覆盖要求设计若干测试用例,执行被测程序,使得程序中每个判断的每个条件的可能取值至少被执行一次。a、b、c、d和e为控制流上程序点。第一个判断应考虑到:age>25取真值,记为T1age>25取假值,即age≤25,记为sex=M取真值,记为T2:sex=M取假值,即sex=F,记为第2个判断应考虑到;Age>=50取真值,记为T3Age>=50取假值,即age<50,记为comm.>2000取真值,记为T4comm.>2000取假值,记为
3.4白盒测试方法3.4.1逻辑覆盖测试(3)条件覆盖
3个测试用例覆盖了4个条件的8种情况。覆盖了两个判断的4个分支b、c、d和c。覆盖了条件的测试用例不一定覆盖了分支。例如下面的测试用例它只覆盖了4个分支中的两个。
测试用例
agesexcomm
所走路径
覆盖条件
Test1
Test3
Test550
M2500.0
20M1500.0
50F1900.0
ace
abd
abe
T1T2T3T4
1T
T23T
4T
T12T
T34T
测试用例
agesexcomm
所走路径
覆盖分支
覆盖条件
Test6Test7
20M2100.0
50F1500.0
abe
abe
be
be
1T
T23T
T4
T12T
T34T
3.4白盒测试方法3.4.1逻辑覆盖测试(4)判定/条件覆盖判定/条件覆盖要求设计足够的测试用例,执行被测程序,使得判断中每个条件的所有可能取值至少被执行一次,同时每个判断的所有可能判断结果也至少被执行一次。a、b、c、d和e为控制流上程序点。两个判断各包含两个条件,这4个条件在两个判断中可能有8种组合,它们是:1)age>25,sex=M,记为T1,T22)age>25,sex=F,记为T1,3)age≤25,sex=M,记为,T24)age≤25,sex=F,记为,5)age50,comm>2000.0,记为T3,T46)age50,comm≤2000.0记为T3,7)age<50,comm>2000.0,记为,T48)age<50,comm≤2000.0,记为3.4白盒测试方法3.4.1逻辑覆盖测试(4)判定/条件覆盖
4个测试用例覆盖了所有的条件组合,同时也覆盖了4个分支,但只覆盖了3条路径,漏掉了路径acd。
测试用例
agesexcomm
所走路径
覆盖组合
覆盖条件
Test1
Test6
Test7
Test8
50M2500
20M2000.0
50F1500.0
20M1500
ace
abe
abe
abd
4)8)
T1,T2,T3,T4
1T
T23T
T4
T12T
T34T
1T
2T
3T
4T
3)7)1)5)2)6)3.4白盒测试方法3.4.1逻辑覆盖测试(4)判定/条件覆盖
4个测试用例覆盖了所有的条件组合,同时也覆盖了4个分支,但只覆盖了3条路径,漏掉了路径acd。
测试用例
agesexcomm
所走路径
覆盖组合
覆盖条件
Test1
Test6
Test7
Test8
50M2500
20M2000.0
50F1500
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 各种手术的备皮范围
- 医疗服务协议及第二季度医保督导问题反馈培训会培训记录
- 《光照与园林植物》课件
- 医疗设备推广方案
- 《呼吸纵膈泌尿》课件
- 数学学案:课堂导学基本逻辑联结词
- 临床药物治疗学药物
- 《实验设计初步》课件
- 《办公室健康指南》课件
- 西药学综合知识与技能题库及答案(2201-2400题)
- YY 0569-2005生物安全柜
- juniper防火墙培训(SRX系列)
- GB/T 13610-2020天然气的组成分析气相色谱法
- 心肌梗死后综合征
- 《彩虹》教案 省赛一等奖
- FLUENT6.3使用说明及例题
- 街道火灾事故检讨
- 最新班组安全管理安全生产标准化培训课件
- 《一粒种子成长过程》的课件
- 学好语文贵在三个“多”:多读、多背、多写-浅谈语文学法指导
- 助人为乐-主题班会(课件)
评论
0/150
提交评论