软件测试的目标

上传人:人*** 文档编号:579150279 上传时间:2024-08-26 格式:PPT 页数:64 大小:571KB
返回 下载 相关 举报
软件测试的目标_第1页
第1页 / 共64页
软件测试的目标_第2页
第2页 / 共64页
软件测试的目标_第3页
第3页 / 共64页
软件测试的目标_第4页
第4页 / 共64页
软件测试的目标_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《软件测试的目标》由会员分享,可在线阅读,更多相关《软件测试的目标(64页珍藏版)》请在金锄头文库上搜索。

1、软件学院软件学院软软件件件件测试测试的目的目的目的目标标测试的目的就是在的目的就是在软件投入生件投入生产性运行之前,性运行之前,尽可能多地尽可能多地发现软件中的件中的错误。目前。目前软件件测试仍然仍然是保是保证软件件质量的关量的关键步步骤,测试是是对软件件规格格说明、明、设计和和编码的最后复的最后复审。根本目根本目标:尽可能多地:尽可能多地发现并排除并排除软件中潜藏件中潜藏的的错误,最,最终把高把高质量的量的软件系件系统交交给用用户。无无论怎怎样强调软件件测试的重要性和它的重要性和它对软件可件可靠性的影响都不靠性的影响都不过分。分。软件学院软件学院软件件测试在在软件生命周期中横跨两个件生命周期

2、中横跨两个阶段。段。软件件测试包括两种:包括两种:v单元元测试模模块的的编写者和写者和测试者是同一个人者是同一个人v综合合测试由由专门的的测试人人员承担承担软件件测试的工作量往往占的工作量往往占软件开件开发总工作量的工作量的40以上以上软件学院软件学院7.7.7.7.基本概念基本概念基本概念基本概念7.1.1 软件件测试的目的目标(1)测试是是为了了发现程序中的程序中的错误而而执行程序的行程序的过程;程;(2)好的)好的测试方案是极可能方案是极可能发现迄今迄今为止尚未止尚未发现的的错误的的测试方案;方案;(3)成功的)成功的测试是是发现了至今了至今为止尚未止尚未发现的的错误的的测试。测试的定的

3、定义为了了发现程序中的程序中的错误而而执行程序行程序的的过程。程。软件学院软件学院测试目目标决定了决定了测试方案的方案的设计。如果。如果为了表了表明程序是正确的而明程序是正确的而进行行测试,就会,就会设计一些不易暴一些不易暴露露错误的的测试方案;相反,如果方案;相反,如果测试是是为了了发现程程序中的序中的错误,就会力求,就会力求设计出最能暴露出最能暴露错误的的测试方案。方案。由于由于测试的目的目标是暴露程序中的是暴露程序中的错误,因此由,因此由程序的程序的编写者自己写者自己进行行测试是不恰当的。因此,在是不恰当的。因此,在综合合测试阶段通常由其他人段通常由其他人员组成成测试小小组来完成来完成测

4、试工作。工作。软件学院软件学院测试不能不能证明明错误不存在,只能表示不存在,只能表示软件件错误已已经出出现。测试决不能决不能证明程序是正确的。即使明程序是正确的。即使经过了最了最严格的格的测试之后,仍然可能之后,仍然可能还有没被有没被发现的的错误潜潜藏在程序中。藏在程序中。测试只能只能查找出程序中的找出程序中的错误,不能,不能证明程序中没有明程序中没有错误。软件学院软件学院测试测试原原原原则则n所有的所有的测试都都应追溯到用追溯到用户需求。需求。n应在在测试工作真正开始的前工作真正开始的前较长时间内就内就进行行测试计划。(划。(测试计划可在划可在设计模型一完成就开始,模型一完成就开始,详细测试

5、方案定方案定义可在可在设计模型被确定后立即开始)模型被确定后立即开始)n穷举测试是不可能的。是不可能的。n为达到最佳效果,达到最佳效果,应由独立的第三方来构造由独立的第三方来构造测试。软件学院软件学院可可可可测试测试性性性性软件的可件的可测试性就是一个性就是一个计算机程序能算机程序能够被被测试的容易程度。的容易程度。可可测试性特征:性特征:l可操作性可操作性“运行得越好,被运行得越好,被测试的效率越高的效率越高”l可可观察性。察性。“你所你所见的即的即为你所你所测试的的”l可控制性。可控制性。“对软件控制越好,件控制越好,测试越能越能够被自被自动执行与行与优化化”l可分解性。可分解性。“通通过

6、控制控制测试范范围,能更快的分界,能更快的分界问题,执行行更灵巧的再更灵巧的再测试”l简单性。性。“需需测试的内容越少,的内容越少,测试速度越快速度越快”l稳定性。定性。“改改变越少,越少,对测试的破坏越小的破坏越小”l易理解性。易理解性。“得到的信息越多,得到的信息越多,进行的行的测试越灵巧越灵巧”软件学院软件学院“ “好好好好” ”测试测试的属性的属性的属性的属性l一个好一个好测试发现错误的可能性很高。的可能性很高。l一个好一个好测试并不冗余。(每个并不冗余。(每个测试都都该有不同的用有不同的用途)途)l一个好一个好测试应该是一是一组目的相似的目的相似的测试中最佳的,中最佳的,最可能找到所

7、有最可能找到所有错误的的测试。l一个好一个好测试既不会太既不会太简单,也不会太复,也不会太复杂。软件学院软件学院7.1.2 黑盒黑盒测试和白盒和白盒测试测试任何任何产品都有两种方法:品都有两种方法:黑盒黑盒测试如果已如果已经知道了知道了产品品应该具有具有 的功能,可以通的功能,可以通过测试来来检验是否每个功能都能正是否每个功能都能正常使用;常使用;白盒白盒测试如果知道如果知道产品内部工作品内部工作过程,程, 可以通可以通过测试来来检验产品内部品内部动作是否按照作是否按照规格格说明明书的的规定正常定正常进行,且所有内部部件被充分利用行,且所有内部部件被充分利用(确保(确保“所有所有齿轮吻合吻合”

8、)。)。软件学院软件学院黑盒黑盒测试又称又称为功能功能测试,它把程序看成一个,它把程序看成一个黑盒子,完全不考黑盒子,完全不考虑程序的内部程序的内部结构和构和处理理过程。程。也就是也就是说,黑盒,黑盒测试是在程序接口是在程序接口进行的行的测试,它,它只只检查程序功能是否能按程序功能是否能按照照规格格说明明书的的规定正常使用,程序是否能适当地定正常使用,程序是否能适当地接收接收输入数据入数据产生正确的生正确的输出信息,并且保持外部出信息,并且保持外部信息(如,数据信息(如,数据库或文件)的完整性。或文件)的完整性。(故意不考(故意不考虑控制控制结构,而是注意信息域)构,而是注意信息域)软件学院软

9、件学院黑盒黑盒黑盒黑盒测试检测测试检测的的的的错误类错误类型型型型l功能不功能不对或或遗漏。漏。l界面界面错误。l数据数据结构或外部数据构或外部数据库访问错误。l性能性能错误。l初始化和初始化和终止止错误。软件学院软件学院白盒白盒测试又称又称为结构构测试,它的前提是可以把,它的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了程序看成装在一个透明的白盒子里,也就是完全了解程序的解程序的结构和构和处理理过程。程。这种方法按照程序内部种方法按照程序内部的的逻辑测试程序,程序,检验程序中的每条通路是否都能程序中的每条通路是否都能按按预定要求正确工作。定要求正确工作。(使用程序(使用程序设计的控

10、制的控制结构构导出出测试方案)方案)包含所有可能情况的包含所有可能情况的测试称称为穷尽尽测试,对于于实际程序而言,程序而言,穷尽尽测试通常是不可能做到的。通常是不可能做到的。软件学院软件学院白盒白盒白盒白盒测试测试功能功能功能功能l保保证一个模一个模块中的所有独立路径至少被中的所有独立路径至少被执行一次。行一次。l对所有所有逻辑值均需均需测试TRUE和和FALSE。l在上下在上下边界及可操作范界及可操作范围内运行所有循内运行所有循环。l检查内部数据内部数据结构以确保其有效性。构以确保其有效性。软件学院软件学院7.1.3 软件件测试的步的步骤1. 模模块测试模模块测试的目的是保的目的是保证每个模

11、每个模块作作为一个一个单元元能正确运行,所以模能正确运行,所以模块测试通常又称通常又称为单元元测试。在在这个个测试步步骤中所中所发现的往往是的往往是编码和和详细设计的的错误。2. 子系子系统测试子系子系统测试是把是把经过单元元测试的模的模块放在一起放在一起形成一个子系形成一个子系统来来测试。模。模块相互相互间的的协调和通信和通信是是这个个测试过程中的主要程中的主要问题,因此,因此这个步个步骤着重着重测试模模块的接口。的接口。软件学院软件学院3. 系系统测试系系统测试是把是把经过测试的子系的子系统装配成一个完装配成一个完整的系整的系统来来测试。在。在这个个测试步步骤中中发现的往往是的往往是软件件

12、设计中的中的错误,也可能,也可能发现需求需求说明中的明中的错误。4. 验收收测试验收收测试把把软件系件系统作作为单一的一的实体体进行行测试,目的是目的是验证系系统确确实能能够满足用足用户的需要,在的需要,在这个个测试步步骤中中发现的往往是系的往往是系统需求需求说明明书中的中的错误。软件学院软件学院5. 平行运行平行运行平行运行就是同平行运行就是同时运行新开运行新开发出来的系出来的系统和将和将被它取代的旧系被它取代的旧系统,以便比,以便比较新旧两个系新旧两个系统的的处理理结果。果。这样做的具体目的有如下几点:做的具体目的有如下几点:(1)可以在准生)可以在准生产环境中运行新系境中运行新系统而又不

13、冒而又不冒风险; (2)用)用户能有一段熟悉新系能有一段熟悉新系统的的时间; (3)可以)可以验证用用户指南和使用手册之指南和使用手册之类的文档;的文档; (4)能)能够以准生以准生产模式模式对新系新系统进行全行全负荷荷测试,可以用可以用测试结果果验证性能指性能指标。软件学院软件学院测试阶测试阶段的信息流段的信息流段的信息流段的信息流软件配置:件配置:l测试配置配置 + 测试实际结果果 + 调试纪录测试配置:配置:l测试计划划 + 测试方案方案测试方案:方案:l测试时使用的使用的输入数据(入数据(测试用例)用例)l每每组输入数据入数据预定要定要检查的功能的功能l每每组输入数据入数据预期期应该得

14、到的正确得到的正确输出出软件学院软件学院7.1.4 测试阶段的信息流段的信息流软件学院软件学院7 7 7 7单单元元元元测试测试单元元测试集中集中检验软件件设计的最小的最小单元元模模块。单元元测试通常使用白盒通常使用白盒测试法,而且法,而且对多个模多个模块的的测试可以并行地可以并行地进行。行。7.2.1 单元元测试考考虑在在单元元测试期期间主要主要评价模价模块的下述五个特性:的下述五个特性:模模块接口;接口;局部数据局部数据结构;构;重要的重要的执行通路;行通路;出出错处理通路;理通路;影响上述各方面特性的影响上述各方面特性的边界条件。界条件。软件学院软件学院在在对接口接口进行行测试时主要主要

15、检查下述各点;下述各点;()参数数目和由()参数数目和由调用模用模块送来的送来的变元的数目是否元的数目是否相等?相等? (2 2)参数的属性和)参数的属性和变元的属性是否匹配?元的属性是否匹配? (3 3)参数和)参数和变元的元的单位系位系统是否匹配?是否匹配? (4 4)传送送给被被调用模用模块的的变元的数目是否等于那个元的数目是否等于那个模模块的参数的数目?的参数的数目? (5 5)传送送给被被调用模用模块的的变元属性和参数的属性是元属性和参数的属性是否一致?否一致?(6 6)传送送给被被调用模用模块的的变元的元的单位系位系统和和该模模块参参数的数的单位系位系统是否一致?是否一致? (7

16、7)传送送给内部函数的内部函数的变元属性、数目和次序是否元属性、数目和次序是否正确?正确? (8 8)是否修改了只做)是否修改了只做输入用的入用的变元?元?(9 9)全程)全程变量的定量的定义和用法在各个模和用法在各个模块中是否一致?中是否一致?软件学院软件学院如果一个模如果一个模块完成外部的完成外部的输入或入或输出出时,还应该再再检查下述各点:下述各点:(1)文件属性是否正确?)文件属性是否正确?(2)打开文件)打开文件语句是否正确?句是否正确?(3)格式)格式说明明书与与输入入输出出语句是否一致?句是否一致?(4)缓冲区大小与冲区大小与记录长度是否匹配?度是否匹配?(5)使用文件之前先打开

17、文件了)使用文件之前先打开文件了吗?(6)文件)文件结束条件束条件处理了理了吗?(7)输入入输出出错误检查并并处理了理了吗?(8)输出信息中有文字出信息中有文字书写写错误吗?软件学院软件学院对于一个模于一个模块而言,局部数据而言,局部数据结构是常构是常见的的错误来源。来源。应该仔仔细设计测试方案,以便方案,以便发现下述下述类型的型的错误:(1)错误的或不相容的的或不相容的说明;明;(2)使用尚未)使用尚未赋值或尚未初始化的或尚未初始化的变量;量;(3)错误的初始的初始值或不正确的缺省或不正确的缺省值;(4)错误的的变量名字(拼写量名字(拼写错或截短了);或截短了);(5)数据)数据类型不相容;

18、型不相容;(6)上溢、下溢或地址异常。)上溢、下溢或地址异常。软件学院软件学院由于由于错误的的计算、不正确的比算、不正确的比较或不适当的控或不适当的控制流造成的制流造成的错误:(1)计算次序不算次序不对或或误解了运算符的解了运算符的优先次序;先次序;(2)混合运算(运算)混合运算(运算对象的象的类型彼此不相容);型彼此不相容);(3)变量初始量初始值不正确;不正确;(4)精度不)精度不够;(5)表达式的符号表示)表达式的符号表示错误。软件学院软件学院比比较后控制流后控制流变化的化的错误:(1)比)比较数据数据类型不同的量;型不同的量;(2)逻辑运算符不正确或运算符不正确或优先次序的先次序的错误

19、;(3)当由于精度)当由于精度问题两个量不会相等两个量不会相等时,程序中却,程序中却期待着相等条件的出期待着相等条件的出现;(4)“差差1”错(即,多循(即,多循环一次或少循一次或少循环一次);一次);(5)错误的或不存在的循的或不存在的循环终止条件;止条件;(6)当遇到)当遇到发散的迭代散的迭代时不能不能终止循止循环;(7)错误地修改循地修改循环变量。量。软件学院软件学院当当错误处理部分,理部分,应该考考虑潜在的潜在的错误:(1)对错误的描述是的描述是难于理解的;于理解的;(2)记下的下的错误与与实际遇到的遇到的错误不同;不同;(3)在)在对错误进行行处理之前,理之前,错误条件已条件已经引起

20、系引起系统异常;异常;(4)对错误的的处理(例外理(例外处理)不正确;理)不正确;(5)描述)描述错误的信息不足以帮助确定造成的信息不足以帮助确定造成错误的位的位置。置。边界界测试是是单元元测试中最后的也可能是最重要中最后的也可能是最重要的任的任务。软件常常在它的件常常在它的边界上失效。界上失效。软件学院软件学院7.2.2 单元元测试过程程通常通常经过人工人工测试和和计算机算机测试两种两种类型的型的测试。1. 代代码审查人工人工测试源程序可以由源程序可以由编写者本人非正式地写者本人非正式地进行,也可以由行,也可以由审查小小组正式正式进行。后者行。后者称称为代代码审查,它是一种非常有效的程序,它

21、是一种非常有效的程序验证技技术,对于典型于典型的程序来的程序来说,可以,可以查出出3070的的逻辑设计错误和和编码错误。代代码审查比比计算机算机测试优越的是:一次越的是:一次审查会会上可以上可以发现许多多错误。可减少系。可减少系统验证的的总工作量工作量实践表明,践表明,对于于查找某些找某些类型的型的错误来来说,人,人工工测试比比计算机算机测试更有效;更有效;对于其他于其他类型的型的错误来来说则刚好相反。好相反。软件学院软件学院2. 测试软件件模模块并不是一个独立的程序,因此必并不是一个独立的程序,因此必须为每个每个单元元测试开开发驱动软件和(或)存根件和(或)存根软件。件。l高内聚可高内聚可简

22、化化单元元测试过程。(减少所需的程。(减少所需的测试方方案,且模案,且模块中的中的错误也更容易也更容易预测和和发现)软件学院软件学院在所有的模在所有的模在所有的模在所有的模块块都完成都完成都完成都完成单单元元元元测试测试以后提一个以后提一个以后提一个以后提一个问题问题:l如果每个模如果每个模块都工作的很好,那么都工作的很好,那么为什么要什么要怀疑把疑把它它们放在一起就不能正常工作呢?放在一起就不能正常工作呢?l问题在于:在于:“怎怎样放在一起放在一起”接口接口问题数不数不胜数数软件学院软件学院集成集成集成集成测试测试l集成集成测试是通是通过测试发现和接口有关的和接口有关的问题来构造来构造程序程

23、序结构的系构的系统化技化技术。l目目标:把通:把通过了了单元元测试的模的模块拿来,构造一个在拿来,构造一个在设计中所描述的程序中所描述的程序结构。构。软件学院软件学院7 7 7 7集成集成集成集成测试测试集成集成测试是是组装装软件的系件的系统技技术,由模,由模块组装装成程序成程序时有两种方法。有两种方法。l一种方法是先分一种方法是先分别测试每个模每个模块,再把所有模,再把所有模块按按设计要求放在一起要求放在一起结合成所要的程序,合成所要的程序,这种方法称种方法称为非非渐增式增式测试方法;(通常存在的方法;(通常存在的倾向)向)l另一种方法是把下一个要另一种方法是把下一个要测试的模的模块同已同已

24、经测试好好的那些模的那些模块结合起来合起来进行行测试,测试完以后再把下完以后再把下一个一个应该测试的模的模块结合合进来来测试。这种每次增加种每次增加一个模一个模块的方法称的方法称为渐增式增式测试,这种方法种方法实际上上同同时完成完成单元元测试和集成和集成测试。软件学院软件学院两种方法的主要两种方法的主要优缺点:缺点:非非渐增式增式测试方法工作量比方法工作量比较大大渐增式增式测试可以可以较早早发规模模块间的接口的接口错误;非;非渐增式增式测试最后才把模最后才把模块组装在一起,因此接口装在一起,因此接口错误发现得晚。得晚。非非渐增式增式测试一下子把所有模一下子把所有模块组合在一起,如果合在一起,如

25、果发现错误则较难诊断定位;使用断定位;使用渐增式增式测试方法方法时,如果如果发生生错误则往往和最近加往往和最近加进来的那个模来的那个模块有关。有关。软件学院软件学院渐增式增式测试方法方法对程序的程序的测试更更彻底。底。渐增式增式测试需要需要较多的机器多的机器时间。非非渐增式增式测试方法可以并行方法可以并行测试所有模所有模块,因此能,因此能充分利用人力,加快工程充分利用人力,加快工程进度。度。总的的说来,来,渐增式增式测试方法比方法比较好。好。使用使用渐增方式把模增方式把模块结合到合到软件系件系统中去中去时,有自有自顶向下和自底向上两种方法。向下和自底向上两种方法。软件学院软件学院7.3.1自自

26、顶向下向下结合合从主控制模从主控制模块(“主程序主程序”)开始,沿着)开始,沿着软件的控件的控制制层次向下移次向下移动,从而逐,从而逐渐把各个模把各个模块结合起来。合起来。软件学院软件学院7.3.2 自底向上自底向上结合合自底向上自底向上测试从从“原子原子”模模块(即在(即在软件件结构最低构最低层的模的模块)开始)开始组装和装和测试。软件学院软件学院7.3.3 不同不同测试策略的比策略的比较自自顶向下向下结合的合的优点:点:不需要不需要测试驱动程序,能在早期程序,能在早期实现并并验证系系统的主要功能,能的主要功能,能较早早发现上上层模快的接口模快的接口错误。自自顶向下向下结合的缺点:合的缺点:

27、需要存根程序,可能遇到与此相需要存根程序,可能遇到与此相联系的系的测试困困难,低,低层关关键模模块中的中的错误发现较晚,而且用晚,而且用这种种方法在早期不能充分展开人力。方法在早期不能充分展开人力。自底向上自底向上测试方法的方法的优缺点缺点刚好相反。好相反。软件学院软件学院混合策略:混合策略:改改进的自的自顶向下向下测试方法:方法:基本上使用自基本上使用自顶向向下的下的测试方法,但是在早期,就使用自底向上的方方法,但是在早期,就使用自底向上的方法法测试软件中的少数关件中的少数关键模模块。混合法:混合法:对软件件结构中构中较上上层,使用的是自,使用的是自顶向下向下方法;方法;对软件件结构中构中较

28、下下层,使用的是自底向上方,使用的是自底向上方法,两者相法,两者相结合。合。软件学院软件学院验验收收收收测试测试验收收测试的任的任务验证软件的有效性。件的有效性。软件有效性定件有效性定义如果如果软件的功能和性能如同用件的功能和性能如同用户所合理地期待的那所合理地期待的那样,则软件是有效的。件是有效的。需求分析需求分析阶段段产生的文档准确地描述了用生的文档准确地描述了用户对软件的合理期望,因此是件的合理期望,因此是软件有效件有效的的标准,也准,也是是验收收测试的基的基础。软件学院软件学院回回回回归测试归测试l对某些已某些已经进行行过测试的某些子集在重新的某些子集在重新进行一遍。行一遍。l用来保用

29、来保证(由于(由于测试或其他原因)改或其他原因)改动不会不会带来不来不可可预料的行料的行为或者另外的或者另外的错误活活动。l通通过重新重新执行所有的行所有的测试用例的一个子集人工的来用例的一个子集人工的来进行,或使用自行,或使用自动化捕化捕获回回访工具来工具来进行。行。l测试用例的用例的类型包括:型包括:能够测试软件的所有功能的代表性测试用例专门针对可能会修改影响的软件功能的附加测试针对修改过的软件成分的测试软件学院软件学院p进行集成行集成测试时,应能能识别关关键模模块。关关键模模块的特性:的特性:和好几个软件需求有关含有高层控制(位于程序结构的高层)本身是复杂的或者是容易出错的含有确定性的性

30、能需求p关关键模模块应尽可能早地尽可能早地进行行测试p回回归测试应集中在关集中在关键模模块的功能上的功能上软件学院软件学院7.4.1 验收收测试(确(确认测试)的范)的范围验收收测试的范的范围与系与系统测试类似,但是也有一似,但是也有一些差些差别。验收收测试有两种可能的有两种可能的结果:果:(1)功能和性能与用)功能和性能与用户要求一致,要求一致,软件是可以接受件是可以接受的;的;(2)功能或性能与用)功能或性能与用户的要求有差距。的要求有差距。7.4.2 软件配置复件配置复查软件学院软件学院系系系系统测试统测试l将将软件和其他系件和其他系统成分(新的硬件、信息)集成起成分(新的硬件、信息)集

31、成起来,来,进行系行系统集成和确集成和确认测试。(不属于。(不属于软件工程件工程的研究范的研究范围)l系系统测试类型型恢复测试安全测试压力测试性能测试软件学院软件学院设计测试设计测试方案方案方案方案测试方案包括方案包括预定要定要测试的功能,的功能,应该输入的入的测试数据和数据和预期的期的结果。果。通常的做法是,用黑盒法通常的做法是,用黑盒法设计基本的基本的测试方案,方案,再用白盒法再用白盒法补充一些方案。充一些方案。软件学院软件学院7.5.1 逻辑覆盖覆盖逻辑覆盖是覆盖是对一系列一系列测试过程的程的总称,称,这组测试过程逐程逐渐进行越来越完整的通路行越来越完整的通路测试。1. 语句覆盖句覆盖选

32、择足足够多的多的测试数据,使被数据,使被测试程序中每个程序中每个语句至少句至少执行一次。行一次。2. 判定覆盖判定覆盖判定覆盖又叫分支覆盖,它的含判定覆盖又叫分支覆盖,它的含义是,不是,不仅每每个个语句必句必须至少至少执行一次,而且每个判定的每种可行一次,而且每个判定的每种可能的能的结果都果都应该至少至少执行一次,也就是每个判定的行一次,也就是每个判定的每个分支部至少每个分支部至少执行一次。行一次。软件学院软件学院3. 条件覆盖条件覆盖不不仅每个每个语句至少句至少执行一次,而且使判定表达行一次,而且使判定表达式中的每个条件都取到各种可能的式中的每个条件都取到各种可能的结果。果。4. 判定条件覆

33、盖判定条件覆盖同同时满足判定和条件两种覆盖足判定和条件两种覆盖标准的准的逻辑覆盖,覆盖,这就是判定条件覆盖。它的含就是判定条件覆盖。它的含义是,是,选取足取足够多多的的测试数据,使得判定表达式中的每个条件都取到数据,使得判定表达式中的每个条件都取到各种可能的各种可能的值,而且每个判定表达式,而且每个判定表达式 也都取到各也都取到各种可能的种可能的结果。果。软件学院软件学院5. 条件条件组合覆盖合覆盖条件条件组合覆盖是更合覆盖是更强的的逻辑覆盖覆盖标准,它要求准,它要求选取足取足够多的多的测试数据,使得每个判定表达式中条数据,使得每个判定表达式中条件的各种可能件的各种可能组合都至少出合都至少出现

34、一次。一次。6. 点覆盖如果如果连通通图G的子的子图G是是连通的,而且包含通的,而且包含G的的所有所有节点,点,则称称G是是G的点覆盖的点覆盖软件学院软件学院7. 边覆盖覆盖如果如果连通通图G的子的子图G“是是连通的,而且包含通的,而且包含G的所有的所有边,则称称G”是是G的的边覆盖。覆盖。8. 路径覆盖路径覆盖选取足取足够多多测试数据,使程序的每条可能路径数据,使程序的每条可能路径都至少都至少执行一次(如果程序行一次(如果程序图中有中有环,则要求每个要求每个环至少至少经过一次)一次)软件学院软件学院7.5.2 等价划分等价划分如果把所有可能的如果把所有可能的输入数据(有效的和无效的)入数据(

35、有效的和无效的)划分成若干个等价划分成若干个等价类,则可以合理地可以合理地做出下述假定:每做出下述假定:每类中的一个典型中的一个典型值在在测试中的作中的作用与用与这一一类中所有其他中所有其他值的作用相同。因此,可以的作用相同。因此,可以从每个等价从每个等价类中只取一中只取一组数据作数据作为测试数据。数据。这样选取的取的测试数据最有代表性,最可能数据最有代表性,最可能发现程序中的程序中的错误。软件学院软件学院l等价划分的等价划分的测试方案用于方案用于设计基于基于输入条件的等价入条件的等价类评估估l如果如果对象具有象具有对称性或自反性的关系称性或自反性的关系连接,就存在等价接,就存在等价类。l等价

36、等价类表示表示输入条件的一入条件的一组有效或无效的状有效或无效的状态软件学院软件学院划分出等价划分出等价类以后,根据等价以后,根据等价类设计测试方案方案时主要使用下面两个步主要使用下面两个步骤:(1)设计一个新的一个新的测试方案以尽可能多地覆盖尚未方案以尽可能多地覆盖尚未被覆盖的有效等价被覆盖的有效等价类,复重,复重这一步一步骤直到所有有效直到所有有效等价等价类都被覆盖都被覆盖为止;止;(2)设计一个新的一个新的测试方案,使它覆盖一个而且只方案,使它覆盖一个而且只覆盖一个尚未被覆盖的无效等价覆盖一个尚未被覆盖的无效等价类,重复,重复这一步一步骤直到所有无效等价直到所有无效等价类都被覆盖都被覆盖

37、为止。止。软件学院软件学院7.5.3 边界界值分析(分析(BVA)是是补充等价划分的充等价划分的测试方案方案设计技技术。设计使程序运行在使程序运行在边界情况附近的界情况附近的测试方案,方案,暴露出程序暴露出程序错误的可能性更大一些。的可能性更大一些。应该选取取刚好等于、稍小于和稍大干等价好等于、稍小于和稍大干等价类边界界值的数据作的数据作为测试数据,而不是数据,而不是选取每个等价取每个等价类内的典型内的典型值或任意或任意值作作为测试数据。数据。7.5.4 错误推推测错误推推测法在很大程度上靠直法在很大程度上靠直觉和和经验进行。行。它的基本想法是列它的基本想法是列举出程序中可能有的出程序中可能有

38、的错误和容易和容易发生生错误的特殊情况,并且根据它的特殊情况,并且根据它们选择测试方案。方案。软件学院软件学院7.5.5 实用用测试策略策略对软件系件系统进行行实际测试时,应该联合使用各合使用各种种设计测试方案的方法,形成一种方案的方法,形成一种综合策略。通常合策略。通常的做法是,用黑金法的做法是,用黑金法设计基本的基本的测试方案,再用白方案,再用白金法金法补充一些必要的充一些必要的测试方案。方案。具体地具体地说,可以使用下述策略,可以使用下述策略结合各种方法:合各种方法:1在任何情况下都在任何情况下都应该使用使用边界界值分析的方法。分析的方法。2必要必要时用等价划分法用等价划分法补充充测试方

39、案。方案。 3必要必要时再用再用错误推推测法法补充充测试方案。方案。 4对照程序照程序逻辑,检查已已经设计出的出的测试方案。方案。软件学院软件学院测试测试步步步步骤骤1.确定确定测试要度量什么(要要度量什么(要测试什么,什么,为什么要什么要测试。)内容是需求。)内容是需求规格格说明的完全性、系明的完全性、系统设计中模中模块的内聚性及的内聚性及实现代代码的可靠性。的可靠性。2.决定如何决定如何测试待定待定软件(件(选择何种何种测试方法)方法)3.开开发测试用例。用例。4.确定确定测试的期望的期望结果并果并创建建测试喻示。示。5.执行行测试用例。用例。6.将将测试结果与果与测试喻示表示的期望示表示

40、的期望结果果进行比行比较。软件学院软件学院6 6 6 6调试调试在成功的在成功的测试之后,之后,还必必须进一步一步诊断和改正断和改正程序中的程序中的错误,这就是就是调试的任的任务。调试过程的两个步程的两个步骤:它从表示程序中存在它从表示程序中存在错误的某些迹象开始,首先确的某些迹象开始,首先确定定错误的准确位置工(作量大的准确位置工(作量大约占占调试总工作量的工作量的95) ;确定确定问题的原因,并改正的原因,并改正错误。软件学院软件学院7.6.17.6.1 调试技技术现有的有的调试技技术主要有下述三主要有下述三类: 1. 输出存出存储器内容器内容2. 打印打印语句句3. 自自动工具工具7.6

41、.2 7.6.2 调试策略策略调试过程的关程的关键不是不是调试技技术,而是用来推断,而是用来推断错误原因的基本策略。原因的基本策略。软件学院软件学院1. 试探法探法分析分析错误征兆,猜想故障的大致位置征兆,猜想故障的大致位置2. 回溯法回溯法检查错误征兆,确定最先征兆,确定最先发现“症状症状”的地方,的地方,然后人工沿程序的控制流往回追踪源程序代然后人工沿程序的控制流往回追踪源程序代码,直,直到找出到找出错误根源或确定故障范根源或确定故障范围为止。止。3. 对分分查找法找法软件学院软件学院4. 归纳法法从从线索(索(错误征兆)出征兆)出发,通,通过分析分析这些些线索之索之间的关系而找出故障。的

42、关系而找出故障。归纳法的四个主要步法的四个主要步骤:(l)收集有关的数据)收集有关的数据(2)组织数据数据(3)导出假出假设(4)证明假明假设软件学院软件学院5. 演演绎法法演演绎法法调试开始开始时先列出所有看来可能成立的先列出所有看来可能成立的原因或假原因或假设,然后一个一个地排除列,然后一个一个地排除列举出的原因,出的原因,最后,最后,证明剩下的原因确明剩下的原因确实是是错误的根源。演的根源。演绎法法主要有下述四个步主要有下述四个步骤;(1)设想可能的原因想可能的原因(2)用已有的数据排除不正确的假)用已有的数据排除不正确的假设(3)精化余下的假)精化余下的假设(5)证明余下的假明余下的假

43、设软件学院软件学院7 7 7 7软软件可靠性件可靠性件可靠性件可靠性7.7.1 基本概念基本概念1. 软件可靠性的空件可靠性的空义软件可靠性件可靠性程序在程序在给定的定的时间间隔内,按隔内,按照照规格格说明明书的的规定成功地运行的概率。定成功地运行的概率。2. 软件的可用性件的可用性软件可用性件可用性程序在程序在给定的定的时间点,按照点,按照规格格说明明书的的规定,成功地运行的概率。定,成功地运行的概率。软件学院软件学院7.7.2 估算平均无故障估算平均无故障时间(MTTF)的方法的方法1. 1. 符号符号E ET T测试之前程序中故障之前程序中故障总数;数;I IT T程序程序长度(机器指令

44、度(机器指令总数);数);测试(包括(包括调试)时间; E Ed d ()()在在0 0至至期期间发现的的错误数;数;E Ec c()()在在0 0至至r r期期间改正的改正的错误数。数。软件学院软件学院2. 2. 基本假定基本假定(1 1)在)在类似的程序中,似的程序中,单位位长度里的故障数度里的故障数 E ET TI IT T近似近似为常数。常数。(2 2)失效率正比于)失效率正比于软件中剩余的(潜藏的)故障数,件中剩余的(潜藏的)故障数,而平均无故障而平均无故障时间MTTFMTTF与剩余的故障数成反比。与剩余的故障数成反比。3. 3. 估算平均无故障估算平均无故障时间经验表明,平均无故障

45、表明,平均无故障时间与与单位位长度程序中度程序中剩余的故障数成反比,即剩余的故障数成反比,即 其中K为常数,它的值应该根据经验选取。K的典型值是200。软件学院软件学院4. 估估计故障故障总数的方法数的方法(1)植入故障法)植入故障法在在测试之前由之前由专人在程序中随机地植入一些故人在程序中随机地植入一些故障,障,测试之后,根据之后,根据测试小小组发现的故障中原有的的故障中原有的和植入的两种故障的比例,来估和植入的两种故障的比例,来估计程序中原有故障程序中原有故障的的总数数E ET T 。(2)分)分别测试法法分分别测试法使用两个法使用两个测试员(或(或测试小小组),),彼此独立地彼此独立地测

46、试同一个程序的两个副本,把其中一同一个程序的两个副本,把其中一个个测试员发现的故障作的故障作为有有标记的故障。的故障。软件学院软件学院7.7.3 程序正确性程序正确性证明明 正确性正确性证明的基本思想是明的基本思想是证明程序能完成明程序能完成预定定的功能。因此,的功能。因此,应该提供提供对程序功能的程序功能的严格数学格数学说明,然后根据程序代明,然后根据程序代码证明程序确明程序确实能能实现它的功能它的功能说明。明。软件学院软件学院9 9 9 9自自自自动测试动测试工具工具工具工具7.9.1 测试数据生成程序数据生成程序这种程序可以种程序可以为测试某个系某个系统而自而自动产生大量生大量输入数据,但是它不能自入数据,但是它不能自动产生生预期的期的输出,因此出,因此用途有限。用途有限。7.9.2 动态分析程序分析程序动态分析程序的主要功能是分析被分析程序的主要功能是分析被测程序中每程序中每个个语句的句的执行次数。它有两个基本部分:行次数。它有两个基本部分:1检测部分部分 2显示部分示部分软件学院软件学院7.9.3 静静态分析程序分析程序静静态分析程序不需要分析程序不需要执行被行被测试的程序,它的程序,它仅仅扫描被描被测试程序的正文,从中程序的正文,从中寻找可找可能能导致致错误的异常情况。的异常情况。7.9.4 文件比文件比较程序程序自动化检查测试结果。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号