软件测试之软件测试概念详述完整版.ppt

上传人:wuy****n92 文档编号:91838339 上传时间:2023-05-28 格式:PPT 页数:80 大小:786.50KB
返回 下载 相关 举报
软件测试之软件测试概念详述完整版.ppt_第1页
第1页 / 共80页
软件测试之软件测试概念详述完整版.ppt_第2页
第2页 / 共80页
点击查看更多>>
资源描述

《软件测试之软件测试概念详述完整版.ppt》由会员分享,可在线阅读,更多相关《软件测试之软件测试概念详述完整版.ppt(80页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件测试的目标软件测试的目标o软件测试是为了发现程序中的错误。软件测试是为了发现程序中的错误。o软件测试的过程亦是程序运行的过程。软件测试的过程亦是程序运行的过程。o程序运行需要数据程序运行需要数据,为测试设计的数据称测试用例。为测试设计的数据称测试用例。o设计测试用例的原则自然是尽可能暴露错误。设计测试用例的原则自然是尽可能暴露错误。o软件测试是一个找错过程。软件测试是一个找错过程。o测试只能找出程序中的错误测试只能找出程序中的错误,而不能证明程序无错。而不能证明程序无错。第八章第八章 软件测试软件测试由安博测试空间技术中心由安博测试空间技术中心http:/ n至少引入一个新语句或者新判断的

2、程序至少引入一个新语句或者新判断的程序执行通道执行通道 pp测试用例的设计方法测试用例的设计方法n n流程图流程图=流图流图=基本路径基本路径 =测试用例测试用例2023/5/2816Step1 根据程序的逻辑结构画出流程图根据程序的逻辑结构画出流程图void Func(int nPosX,int nPosY)void Func(int nPosX,int nPosY)while(nPosX 0)while(nPosX 0)int nSum=nPosX+nPosY;int nSum=nPosX+nPosY;if(nSum 1)if(nSum 1)nPosX-;nPosX-;nPosY-;nPo

3、sY-;else else if(nSum -1)nPosX-=2;if(nSum -1)nPosX-=2;else nPosX-=4;else nPosX-=4;/end of while/end of while 2023/5/2817Step1 根据程序的逻辑结构画出流程图根据程序的逻辑结构画出流程图2023/5/2818Step2 根据流程图画出流图根据流程图画出流图2023/5/2819Step3 确定基本路径的集合确定基本路径的集合pp基本路径基本路径n n流图的流图的CyclomaticCyclomatic复复杂度正好是基本路径杂度正好是基本路径的数目的数目pV(G)=E N+2

4、 V(G)=11-9+2=4 2023/5/2820 Step3 确定基本路径的集合确定基本路径的集合pp1-111-11pp1-2,3-4,5-10-1-111-2,3-4,5-10-1-11pp1-2,3-6-7-9-10-1-111-2,3-6-7-9-10-1-11pp1-2,3-6-8-9-10-1-11 1-2,3-6-8-9-10-1-11 2023/5/2821Step4 对每条基本路径设计测试用例对每条基本路径设计测试用例pp对于路径对于路径1 111 11nPosX nPosX 取取-1,nPosY-1,nPosY取任意值取任意值pp1-2,3-4,5-10-1-111-2

5、,3-4,5-10-1-11nPosX nPosX 取取1,nPosY1,nPosY取取1 1pp对于路径对于路径1-2,3-6-7-9-10-1 1-2,3-6-7-9-10-1 11 11nPosX nPosX 取取1,nPosY1,nPosY取取-1-1pp1-2,3-6-8-9-10-1-111-2,3-6-8-9-10-1-11 nPosX nPosX 取取1,nPosY1,nPosY取取-3-32023/5/28222.控制结构测试控制结构测试o基本路径测试是控制结构测试技术的一种基本路径测试是控制结构测试技术的一种,下面介下面介绍其他形式的控制结构测试绍其他形式的控制结构测试,它

6、们比基本路径测试它们比基本路径测试法覆盖程度更大法覆盖程度更大,进一步提高了白盒测试的质量。进一步提高了白盒测试的质量。2023/5/2823条件测试法条件测试法o条件测试主要考虑程序中的条件判断条件测试主要考虑程序中的条件判断,以期发现条以期发现条件判断内部的错误和程序中其他一些错误。件判断内部的错误和程序中其他一些错误。o程序中程序中“条件条件”分为简单条件和复合条件。简单条分为简单条件和复合条件。简单条件为一个布尔变量或一个关系表达式件为一个布尔变量或一个关系表达式(可能前缀逻可能前缀逻辑非辑非),复合条件由简单条件通过逻辑运算符复合条件由简单条件通过逻辑运算符(OR、AND、NOT)和

7、括号连接而成。和括号连接而成。o因此条件中可能出现的错误类型包括因此条件中可能出现的错误类型包括:布尔运算符布尔运算符错、布尔变量错、括号错、关系运算符错和算术表错、布尔变量错、括号错、关系运算符错和算术表达式错。达式错。o最简单的条件测试是分支测试。最简单的条件测试是分支测试。2023/5/2824分支和关系运算测试法分支和关系运算测试法BROo能用少于能用少于2n次测试发现条件中大多数错误次测试发现条件中大多数错误,采用该采用该方法的前提是条件中每个布尔变量和关系运算符至方法的前提是条件中每个布尔变量和关系运算符至多出现一次并无公共变量。多出现一次并无公共变量。oBRO方法引入条件约束的概

8、念方法引入条件约束的概念,含含n个简单条件的个简单条件的复合条件复合条件C之约束之约束D表示为表示为(D1,D2,Dn),Di(0in)一般为某种符号一般为某种符号,它指明简单条件它指明简单条件Ci在在C中出中出现的约束。现的约束。C的一次执行覆盖约束条件的一次执行覆盖约束条件D指,指,C中中出现的每个简单条件出现的每个简单条件Ci在这次执行中都满足在这次执行中都满足D中对中对应的约束应的约束Di。对于一个布尔表达式。对于一个布尔表达式,出现约束或为出现约束或为真真(t)或为假或为假(f);对于一个关系表达式对于一个关系表达式,出现约束用出现约束用符号、或表示。符号、或表示。2023/5/28

9、25数据流测试法数据流测试法o数据流测试法是根据程序中变量定义和引用的位置数据流测试法是根据程序中变量定义和引用的位置选择测试路径。选择测试路径。o为说明数据流测试法为说明数据流测试法,假设程序中每个语句都被赋假设程序中每个语句都被赋与一个唯一的标号与一个唯一的标号,并且每个函数都不修改其参数并且每个函数都不修改其参数和全局变量和全局变量,对以对以S为标号的语句定义下面两个集合为标号的语句定义下面两个集合:nDEF(S)=X|语句语句S中含中含X的定义的定义nUSE(S)=X|语句语句S中含对中含对X的引用的引用o当当S为分支或循环语句时为分支或循环语句时,DEF集合为空集合为空,USE集合由

10、集合由S所含条件确定。如果从语句所含条件确定。如果从语句S到语句到语句S存在一条存在一条路径并且在路径并且在S中不存在中不存在X的再定义的再定义,则称在则称在S中定义中定义的的X在在S处活跃。处活跃。2023/5/2826数据流测试法(续)数据流测试法(续)o定义变量定义变量X的定义的定义引用链引用链(DU链链)为为X,S,S,其中其中S,S为标号为标号,XDEF(S)USE(S)且且S中定义中定义的的X在在S处活跃。处活跃。o一种简单的数据流测试策略即对每条一种简单的数据流测试策略即对每条DU链至少覆链至少覆盖一次盖一次,称为称为DU测试策略测试策略,它对于测试含嵌套它对于测试含嵌套IF语语

11、句和多重循环语句的程序特别有效。句和多重循环语句的程序特别有效。2023/5/2827循环测试循环测试o循环是大多数算法的基础循环是大多数算法的基础,循环测试的目的是检查循环测试的目的是检查循环结构的有效性。循环结构的有效性。o循环分为简单循环、并列循环、嵌套循环和非结构循环分为简单循环、并列循环、嵌套循环和非结构循环四类:循环四类:2023/5/28282023/5/2829循环测试(续)循环测试(续)o对于最多为对于最多为n次的简单循环次的简单循环,应作下列测试应作下列测试:1)完全跳过循环完全跳过循环;2)仅循环一次仅循环一次;3)循环两次循环两次;4)循环循环m次次,mn;5)分别循环

12、分别循环(n-1)次次,n次次,n+1次。次。2023/5/2830循环测试(续)循环测试(续)o对于嵌套循环若生搬硬套简单循环的测试策略。可能使测试对于嵌套循环若生搬硬套简单循环的测试策略。可能使测试次数成几何级数增长次数成几何级数增长,减少测试次数的具体措施包括减少测试次数的具体措施包括:1)从最内层循环开始测试从最内层循环开始测试,此时所有外层循环都取最小值此时所有外层循环都取最小值,内层循环按简单循环的测试策略测试内层循环按简单循环的测试策略测试;2)由里向外由里向外,回退到上一层循环测试回退到上一层循环测试,这层循环的所有外层这层循环的所有外层循环仍取最小值循环仍取最小值,由该层循环

13、嵌套的那些循环取一些典型由该层循环嵌套的那些循环取一些典型值。值。3)继续向外扩展继续向外扩展,直至所有循环测试完毕。直至所有循环测试完毕。o对于并置循环分两种情况对于并置循环分两种情况,若两个循环完全独立若两个循环完全独立,采用简单循采用简单循环的测试策略环的测试策略,反之反之,若第一循环的计数器用作第二循环的若第一循环的计数器用作第二循环的初值初值,即两循环不独立即两循环不独立,需用嵌套循环测试策略测试。需用嵌套循环测试策略测试。o非结构化的循环需按结构化程序设计的思想首先将程序结构非结构化的循环需按结构化程序设计的思想首先将程序结构化然后再进行测试。化然后再进行测试。2023/5/283

14、1黑盒测试黑盒测试o黑盒测试旨在测试软件是否满足功能要求黑盒测试旨在测试软件是否满足功能要求,它主要它主要诊断下列几类错误诊断下列几类错误:(1)不正确或遗漏的功能不正确或遗漏的功能;(2)界面错误界面错误;(3)数据结构或外部数据库访问错误数据结构或外部数据库访问错误;(4)性能错误性能错误;(5)初始化和终止条件错误。初始化和终止条件错误。o值得指出的是值得指出的是,黑盒测试法与白盒测试法不能互相黑盒测试法与白盒测试法不能互相替代替代,相反两者应互为补充相反两者应互为补充,在测试的不同阶段为发在测试的不同阶段为发现不同类型的错误而灵活选用。现不同类型的错误而灵活选用。2023/5/2832

15、1.等价分类法等价分类法o等价分类法的主要思想是把程序的输入数据集合按等价分类法的主要思想是把程序的输入数据集合按输入条件划分为若干个等价类输入条件划分为若干个等价类,每一等价类相对于每一等价类相对于输入条件表示为一组有效或无效的输入输入条件表示为一组有效或无效的输入,然后为每然后为每一等价类设计一个测试用例一等价类设计一个测试用例,这样即可大大减小测这样即可大大减小测试的次数又不丢失发现错误的机会。试的次数又不丢失发现错误的机会。o因此等价分类法的关键是根据输入数据的类型和程因此等价分类法的关键是根据输入数据的类型和程序的功能说明划分等价类。序的功能说明划分等价类。2023/5/2833等价

16、分类法等价分类法o常用的一些规则常用的一些规则:(1)如果能为输入条件指定一个范围如果能为输入条件指定一个范围,则可划分出一个有效则可划分出一个有效的等价类的等价类(输入值落在此范围内输入值落在此范围内)和两个无效的等价类和两个无效的等价类(大于最大值的输入和小于最小值的输入大于最大值的输入和小于最小值的输入);(2)如果能为输入条件指定一个特定值如果能为输入条件指定一个特定值,则可类似地划分出则可类似地划分出一个有效等价类和两个无效等价类一个有效等价类和两个无效等价类;(3)如果能为输入条件指定一个集合如果能为输入条件指定一个集合,则可划分出一个有效则可划分出一个有效等价类等价类(此集合此集

17、合)和一个无效等价类和一个无效等价类(此集合的补集此集合的补集);(4)如果能为输入条件指定一个布尔量如果能为输入条件指定一个布尔量,则可划分出一个有则可划分出一个有效等价类效等价类(此布尔量此布尔量)和一个无效布尔量和一个无效布尔量(此布尔量之非此布尔量之非)。2023/5/28342.边界值分析法边界值分析法o经验表明经验表明,大多数错误都发生在输入的边界值上。大多数错误都发生在输入的边界值上。为此为此,专门引入边界值分析专门引入边界值分析(Boundary Value Analysis)技术技术,旨在选择测试用例旨在选择测试用例,强迫程序在边强迫程序在边界值上执行。界值上执行。oBVA技

18、术是对等价分类技术的补充技术是对等价分类技术的补充,即在一个等价即在一个等价类中不是任选一个元素作为此等价类的代表进行测类中不是任选一个元素作为此等价类的代表进行测试试,而是选择此等价类边界上的值。而是选择此等价类边界上的值。o此外此外,采用采用BVA技术导出测试用例时技术导出测试用例时,不仅要考虑不仅要考虑输入条件输入条件,还要考虑输出的状态。还要考虑输出的状态。2023/5/2835边界值分析法边界值分析法o采用采用BVA技术设计测试用例与等价分类法有许多技术设计测试用例与等价分类法有许多相似之处相似之处:1)如果输入条件指定了由值如果输入条件指定了由值a,b括起来的一个范围括起来的一个范

19、围,那么值那么值a、值、值b和紧挨和紧挨a、b左右的值应分别作为测试用例左右的值应分别作为测试用例;2)如果输入条件指定为一组数如果输入条件指定为一组数,那么这组数中最大者、最那么这组数中最大者、最小者和次大、次小者应作为测试用例小者和次大、次小者应作为测试用例;3)应用规则应用规则1)、2)于输出条件。例如于输出条件。例如,假设某程序输出为假设某程序输出为一张温度压力对照表一张温度压力对照表,此时应设计测试用例正好产生表项此时应设计测试用例正好产生表项所允许的最大和最小值。所允许的最大和最小值。4)如果内部数据结构是有界的如果内部数据结构是有界的(例如例如,某数组有某数组有100个元素个元素

20、),那么应设计测试数据,使之能检查该数据结构的边界。那么应设计测试数据,使之能检查该数据结构的边界。2023/5/28363.对比测试法对比测试法o在一些可靠性要求很高的系统中在一些可靠性要求很高的系统中,经常使用冗余的经常使用冗余的软、硬件软、硬件,以减少错误发生的可能性。以减少错误发生的可能性。o这时这时,不同的软件版本由不同的开发小组根据同一不同的软件版本由不同的开发小组根据同一需求说明书开发需求说明书开发,并用相同的测试数据对它们进行并用相同的测试数据对它们进行测试测试,保持结果一致。保持结果一致。o此后各版本并行执行并实时地比较结果此后各版本并行执行并实时地比较结果,确保系统确保系统

21、的正确性。的正确性。o受此思想起发受此思想起发,许多关键软件,即使最后交付时只许多关键软件,即使最后交付时只要求一个版本要求一个版本,开发时也另外产生一个独立版本供开发时也另外产生一个独立版本供测试使用。这种黑盒测试方法称为对比测试或背靠测试使用。这种黑盒测试方法称为对比测试或背靠背测试背测试2023/5/2837软件测试策略软件测试策略o软件测试策略主要考虑,如何把设计测试用例的技软件测试策略主要考虑,如何把设计测试用例的技术组织成一个系统的、有计划的测试步骤。术组织成一个系统的、有计划的测试步骤。o测试策略应包含测试规划、测试用例设计、测试实测试策略应包含测试规划、测试用例设计、测试实施和

22、测试结果收集评估等。其中测试规划包括:测施和测试结果收集评估等。其中测试规划包括:测试的步骤、工作量、进度和资源等试的步骤、工作量、进度和资源等o本节重点讨论测试步骤,测试中的排错技术本节重点讨论测试步骤,测试中的排错技术2023/5/28381 单元测试单元测试o单元测试的对象是软件设计的最小单位单元测试的对象是软件设计的最小单位模块。模块。o单元测试的依据是详细设计描述,单元测试应对模单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例块内所有重要的控制路径设计测试用例,以便发现以便发现模块内部的错误。模块内部的错误。o单元测试多采用白盒测试技术单元测试多采用白盒

23、测试技术,系统内多个模块可系统内多个模块可以并行地进行测试。以并行地进行测试。2023/5/28391.1 单元测试任务单元测试任务o单元测试任务包括单元测试任务包括:1)模块接口测试模块接口测试;2)模块局部数据结构测试模块局部数据结构测试;3)模块边界条件测试模块边界条件测试;4)模块中所有独立执行通路测试模块中所有独立执行通路测试;5)模块的各条错误处理通路测试。模块的各条错误处理通路测试。o模块接口测试是单元测试的基础。只有在数据能正模块接口测试是单元测试的基础。只有在数据能正确流入、流出模块的前提下确流入、流出模块的前提下,其他测试才有意义其他测试才有意义2023/5/2840测试接

24、口考虑的因素测试接口考虑的因素输入的实际参数与形式参数的个数是否相同输入的实际参数与形式参数的个数是否相同;输入的实际参数与形式参数的属性是否匹配输入的实际参数与形式参数的属性是否匹配;输入的实际参数与形式参数的量纲是否一致输入的实际参数与形式参数的量纲是否一致;调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同调用其他模块时所给实际参数的个数是否与被调模块的形参个数相同;调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配调用其他模块时所给实际参数的属性是否与被调模块的形参属性匹配;调用其他模块时所给实际参数的量纲是否与被调模块的形参量纲一致调用其他模块时所给实际参数的量纲

25、是否与被调模块的形参量纲一致;调用预定义函数时所用参数的个数、属性和次序是否正确调用预定义函数时所用参数的个数、属性和次序是否正确;是否存在与当前入口点无关的参数引用是否存在与当前入口点无关的参数引用;是否修改了只读型参数是否修改了只读型参数;10 对全程变量的定义各模块是否一致对全程变量的定义各模块是否一致;11 是否把某些约束作为参数传递。是否把某些约束作为参数传递。2023/5/2841测试接口考虑的因素(续)测试接口考虑的因素(续)o如果模块内包括外部输入输出如果模块内包括外部输入输出,还应该考虑下列因还应该考虑下列因素素:文件属性是否正确文件属性是否正确;OPEN/CLOSE语句是否

26、正确语句是否正确;格式说明与输入输出语句是否匹配格式说明与输入输出语句是否匹配;缓冲区大小与记录长度是否匹配缓冲区大小与记录长度是否匹配;文件使用前是否已经打开文件使用前是否已经打开;是否处理了文件尾是否处理了文件尾;是否处理了输入是否处理了输入/输出错误输出错误;输出信息中是否有文字性的错误。输出信息中是否有文字性的错误。2023/5/2842单元测试的任务(续)单元测试的任务(续)o局部数据结构往往是错误的根源局部数据结构往往是错误的根源,应仔细设计测试应仔细设计测试用例用例,力求发现下面几类错误力求发现下面几类错误:不合适或不相容的类型说明不合适或不相容的类型说明;变量无初值变量无初值;

27、变量初始化或省缺值有错变量初始化或省缺值有错;不正确的变量名不正确的变量名(拚错或不正确地截断拚错或不正确地截断);出现上溢、下溢和地址异常。出现上溢、下溢和地址异常。2023/5/2843单元测试的任务(续)单元测试的任务(续)o在模块中应对每一条独立执行路径进行测试在模块中应对每一条独立执行路径进行测试,单元单元测试的基本任务是保证模块中每条语句至少执行一测试的基本任务是保证模块中每条语句至少执行一次。次。o此时设计测试用例是为了发现因错误计算、不正确此时设计测试用例是为了发现因错误计算、不正确的比较和不适当的控制流造成的错误。的比较和不适当的控制流造成的错误。o此时基本路径测试和循环测试

28、是最常用且最有效的此时基本路径测试和循环测试是最常用且最有效的测试技术。测试技术。2023/5/2844单元测试的任务(续)单元测试的任务(续)o计算中常见的错误包括计算中常见的错误包括:误解或用错了算符优先级误解或用错了算符优先级;混合类型运算混合类型运算;变量初值错变量初值错;精度不够精度不够;表达式符号错。表达式符号错。2023/5/2845单元测试的任务(续)单元测试的任务(续)o比较判断与控制流常常紧密相关比较判断与控制流常常紧密相关,测试用例还应致测试用例还应致力于发现下列错误力于发现下列错误:不同数据类型的对象之间进行比较不同数据类型的对象之间进行比较;错误地使用逻辑运算符或优先

29、级错误地使用逻辑运算符或优先级;因计算机表示的局限性,期望理论上相等而实际上不相因计算机表示的局限性,期望理论上相等而实际上不相等的两个量相等等的两个量相等;比较运算或变量出错比较运算或变量出错;循环终止条件不合适或不可能出现循环终止条件不合适或不可能出现;迭代发散时不能退出迭代发散时不能退出;错误地修改了循环变量。错误地修改了循环变量。2023/5/2846单元测试的任务(续)单元测试的任务(续)o一个好的设计应能预见各种出错条件一个好的设计应能预见各种出错条件,并预设各种并预设各种错误处理通路错误处理通路,错误处理通路同样需要认真测试错误处理通路同样需要认真测试,测测试应着重检查下列问题试

30、应着重检查下列问题:输出的错误信息难以理解输出的错误信息难以理解;记录的错误与实际遇到的错误不相符记录的错误与实际遇到的错误不相符;在程序自定义的错误处理段运行之前在程序自定义的错误处理段运行之前,系统已介入系统已介入;异常处理不当异常处理不当;错误陈述中未能提供足够的定位错误信息。错误陈述中未能提供足够的定位错误信息。2023/5/28471.2 单元测试过程单元测试过程o一般认为单元测试应紧接在编码之后一般认为单元测试应紧接在编码之后,当源程序编制完成并当源程序编制完成并通过复审和编译检查通过复审和编译检查,便可开始单元测试。便可开始单元测试。o为测试模块开发一个驱动模块为测试模块开发一个

31、驱动模块(driver)和和(或或)若干个桩模块若干个桩模块(stub)。o驱动模块和桩模块是测试使用的软件驱动模块和桩模块是测试使用的软件,而不是软件产品的组而不是软件产品的组成部分成部分,但它需要一定的开发费用。但它需要一定的开发费用。o仅用简单的驱动模块和桩模块不能完成某些模块的测试任务仅用简单的驱动模块和桩模块不能完成某些模块的测试任务,这些模块的单元测试只能采用下面讨论的综合测试方法。这些模块的单元测试只能采用下面讨论的综合测试方法。o提高模块的内聚度可简化单元测试提高模块的内聚度可简化单元测试,如果每个模块只完成一如果每个模块只完成一个功能个功能,所需测试用例数目将显著减少所需测试

32、用例数目将显著减少,模块中的错误也更模块中的错误也更容易发现。容易发现。2023/5/2848单元测试环境单元测试环境2023/5/28492 综合测试综合测试o综合测试是组装软件的系统测试技术综合测试是组装软件的系统测试技术,按设计要求按设计要求把通过单元测试的各个模块组装在一起之后把通过单元测试的各个模块组装在一起之后,进行进行综合测试以便发现与接口有关的各种错误。综合测试以便发现与接口有关的各种错误。o某些软件设计人员习惯于把所有模块按设计要求一某些软件设计人员习惯于把所有模块按设计要求一次全部组装起来次全部组装起来,然后进行整体测试然后进行整体测试,这称为非增量这称为非增量式集成。这种

33、方法容易出现混乱。式集成。这种方法容易出现混乱。o与之相反的是增量式集成方法与之相反的是增量式集成方法,程序一段一段地扩程序一段一段地扩展展,测试的范围一步一步地增大测试的范围一步一步地增大,错误易于定位和纠错误易于定位和纠正正,界面的测试亦可做到完全彻底。界面的测试亦可做到完全彻底。2023/5/28502.1 自顶向下集成自顶向下集成o自顶向下集成是构造程序结构的一种增量式方式自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始它从主控模块开始,按照软件的控制层次结构按照软件的控制层次结构,以深以深度优先或广度优先的策略度优先或广度优先的策略,逐步把各个模块集成在逐步把各个模块集成

34、在一起。一起。o深度优先策略首先把主控制路径上的模块集成在一深度优先策略首先把主控制路径上的模块集成在一起起,至于选择哪一条路径作为主控制路径多少带点至于选择哪一条路径作为主控制路径多少带点随意性随意性,一般根据问题的特性确定。一般根据问题的特性确定。2023/5/2851例:例:2023/5/2852步骤步骤1)以主控模块作为测试驱动模块以主控模块作为测试驱动模块,把对主控模块进行单元把对主控模块进行单元测试时引入的所有桩模块用实际模块替代测试时引入的所有桩模块用实际模块替代;2)依据所选的集成策略依据所选的集成策略(深度优先或广度优先深度优先或广度优先),每次只替每次只替代一个桩模块代一个

35、桩模块;3)每集成一个模块立即测试一遍每集成一个模块立即测试一遍;4)只有每组测试完成后只有每组测试完成后,才着手替换下一个桩模块才着手替换下一个桩模块;5)为避免引入新错误为避免引入新错误,须不断进行回归测试须不断进行回归测试(即全部或部分即全部或部分地重复已做过的测试地重复已做过的测试)。o从第二步开始从第二步开始,循环执行上述步骤循环执行上述步骤,直至整个程序结构构造完直至整个程序结构构造完毕。毕。2023/5/2853优缺点优缺点o自顶向下集成的优点在于能尽早地对程序的主要控自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验制和决策机制进行检验,因此较早地发现错误。因此较

36、早地发现错误。o缺点是在测试较高层模块时缺点是在测试较高层模块时,低层处理采用桩模块低层处理采用桩模块替代替代,不能反映真实情况不能反映真实情况,重要数据不能及时回送到重要数据不能及时回送到上层模块上层模块,因此测试并不充分。因此测试并不充分。2023/5/28542.2 自底向上集成自底向上集成o自底向上测试是从自底向上测试是从“原子原子”模块模块(即软件结构最低层的模块即软件结构最低层的模块)开始组装和测试开始组装和测试,因测试到较高层模块时因测试到较高层模块时,所需的下层模块所需的下层模块功能均已具备功能均已具备,所以不再需要桩模块。所以不再需要桩模块。o自底向上综合测试的步骤分为自底向

37、上综合测试的步骤分为:1)把低层模块组织成实现某个子功能的模块群把低层模块组织成实现某个子功能的模块群(cluster);2)开发一个测试用驱动模块开发一个测试用驱动模块,控制测试数据的输入和测试结果的控制测试数据的输入和测试结果的输出输出;3)对每个模块群进行测试对每个模块群进行测试;4)删除测试使用的驱动模块删除测试使用的驱动模块,用较高层模块把模块群组织成为完用较高层模块把模块群组织成为完成更大功能的新模块群成更大功能的新模块群;o从第一步开始循环执行上述各步骤从第一步开始循环执行上述各步骤,直至整个程序构造完毕。直至整个程序构造完毕。2023/5/2855例:例:2023/5/2856

38、优缺点优缺点o自底向上集成方法不用桩模块自底向上集成方法不用桩模块,测试用例的设计亦测试用例的设计亦相对简单相对简单,但缺点是程序最后一个模块加入时才具但缺点是程序最后一个模块加入时才具有整体形象。有整体形象。o它与自顶向下综合测试方法的优缺点正好相反。它与自顶向下综合测试方法的优缺点正好相反。o因此因此,在测试软件系统时在测试软件系统时,应根据软件的特点及工程应根据软件的特点及工程的进度的进度,选用适当的测试策略选用适当的测试策略,有时混合使用两种策有时混合使用两种策略更为有效略更为有效,上层模块用自顶向下的方法上层模块用自顶向下的方法,下层模块下层模块用自底向上的方法。用自底向上的方法。2

39、023/5/2857关键模块关键模块o在综合测试过程中尤其要注意关键模块在综合测试过程中尤其要注意关键模块,所谓关键所谓关键模块一般都具有下述一或多个特征模块一般都具有下述一或多个特征:对应几条需求对应几条需求;具有高层控制功能具有高层控制功能;复杂易出错复杂易出错;有特殊的性能要求。有特殊的性能要求。o关键模块应尽早测试关键模块应尽早测试,并反复进行回归测试。并反复进行回归测试。2023/5/28582.3 综合测试文档综合测试文档o测试说明书测试说明书(Test Specifications)应给出软件集应给出软件集成的总体规划和某些特殊测试的描述。成的总体规划和某些特殊测试的描述。o综合

40、测试文档将作为软件配置的一部分交给用户。综合测试文档将作为软件配置的一部分交给用户。2023/5/2859测试说明书提纲测试说明书提纲测试范围测试范围测试计划测试计划 A测试的各个阶段和划分模块群情况测试的各个阶段和划分模块群情况 B进度安排进度安排 C开销软件开销软件(驱动和桩模块驱动和桩模块)D环境和资源环境和资源测试过程测试过程n(关于第关于第n个模块群测试过程的描述个模块群测试过程的描述)A集成顺序集成顺序 1用途用途 2被测模式被测模式 B模块群中各模块的单元测试情况模块群中各模块的单元测试情况 2023/5/2860测试说明书提纲(续)测试说明书提纲(续)1模块模块m的测试描述的测

41、试描述 2开销软件描述开销软件描述 3期望结果期望结果 C测试环境测试环境 1特殊工具或技术特殊工具或技术 2开销软件的描述开销软件的描述 D测试用例测试用例 E模块群模块群n的期望结果的期望结果实际测试结果实际测试结果参考文献参考文献附录附录2023/5/28613 确认测试确认测试o通过综合测试之后通过综合测试之后,软件已完全组装起来软件已完全组装起来,接口方面接口方面的错误也已排除的错误也已排除,软件测试的最后一步软件测试的最后一步确认测确认测试即可开始。试即可开始。o确认测试应检查软件能否按合同要求进行工作确认测试应检查软件能否按合同要求进行工作,即即是否满足软件需求说明书中的确认标准

42、。是否满足软件需求说明书中的确认标准。2023/5/28623.1 确认测试标准确认测试标准o实现软件确认要通过一系列黑盒测试。实现软件确认要通过一系列黑盒测试。o确认测试同样需要制订测试计划和过程确认测试同样需要制订测试计划和过程,测试计划测试计划应规定测试的种类和测试进度应规定测试的种类和测试进度,测试过程则定义一测试过程则定义一些特殊的测试用例些特殊的测试用例,旨在说明软件与需求是否一致。旨在说明软件与需求是否一致。o无论是计划还是过程无论是计划还是过程,都应该着重考虑软件是否满都应该着重考虑软件是否满足合同规定的所有功能和性能足合同规定的所有功能和性能,文档资料是否完整、文档资料是否完

43、整、准确准确,人机界面和其他方面人机界面和其他方面(例如例如,可移植性、兼容可移植性、兼容性、错误恢复能力和可维护性等等性、错误恢复能力和可维护性等等)是否令用户满是否令用户满意。意。2023/5/28633.2 配置复审配置复审o确认测试的另一个重要环节是配置复审。复审的目确认测试的另一个重要环节是配置复审。复审的目的在于保证软件配置齐全、分类有序的在于保证软件配置齐全、分类有序,并且包括软并且包括软件维护所必需的细节。件维护所必需的细节。2023/5/28643.3 、测试测试o软件是否真正满足最终用户的要求应由用户进行一软件是否真正满足最终用户的要求应由用户进行一系列系列“验收测试验收测

44、试”。o验收测试既可以是非正式的测试验收测试既可以是非正式的测试,也可以是有计划、也可以是有计划、有系统的测试。有系统的测试。o有时有时,验收测试长达数周甚至数月验收测试长达数周甚至数月,不断暴露错误不断暴露错误,导致开发延期。导致开发延期。o一个软件产品一个软件产品,将有众多用户将有众多用户,不可能由每个用户验不可能由每个用户验收收,此时多采用称为此时多采用称为、测试的过程测试的过程,以以o期发现那些似乎只有最终用户才能发现的问题。期发现那些似乎只有最终用户才能发现的问题。2023/5/2865、测试测试o测试是指软件开发公司组织内部人员模拟各类用测试是指软件开发公司组织内部人员模拟各类用户

45、行为对即将面市的软件产品户行为对即将面市的软件产品(称为称为版本版本)进行测进行测试,试图发现错误并修正。试,试图发现错误并修正。o测试的关键在于尽可能逼真地模拟实际运行环境测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作,并尽最大努力涵盖所有和用户对软件产品的操作,并尽最大努力涵盖所有可能的用户操作方式。可能的用户操作方式。o经过经过测试调整的软件产品称为测试调整的软件产品称为版本。紧随其后版本。紧随其后的的测试是指软件开发公司组织各方面的典型用户测试是指软件开发公司组织各方面的典型用户在日常工作中实际使用在日常工作中实际使用版本,并要求用户报告异版本,并要求用户报告异常情况

46、、提出批评意见。常情况、提出批评意见。o然后软件开发公司再对然后软件开发公司再对版本进行改错和完善。版本进行改错和完善。2023/5/28664 系统测试系统测试o计算机软件是基于计算机系统的一个重要组成部分计算机软件是基于计算机系统的一个重要组成部分,软件开发完毕后应与系统中其他成份集成在一起软件开发完毕后应与系统中其他成份集成在一起,此时需要进行一系列系统集成和确认测试。此时需要进行一系列系统集成和确认测试。o在系统测试之前,软件工程师应完成下列工作在系统测试之前,软件工程师应完成下列工作:1)为测试软件系统的输入信息,设计错误处理通路为测试软件系统的输入信息,设计错误处理通路;2)设计测

47、试用例设计测试用例,模拟错误数据和软件界面可能发生的错误模拟错误数据和软件界面可能发生的错误,记录测试结果记录测试结果,为系统测试提供经验和帮助;为系统测试提供经验和帮助;3)参与系统测试的规划和设计参与系统测试的规划和设计,保证软件测试的合理性保证软件测试的合理性。2023/5/28674.1 恢复测试恢复测试o恢复测试主要检查系统的容错能力。当系统出错时,恢复测试主要检查系统的容错能力。当系统出错时,能否在指定的时间间隔内修正错误并重新启动系统。能否在指定的时间间隔内修正错误并重新启动系统。o恢复测试首先要采用各种办法强迫系统失败,然后恢复测试首先要采用各种办法强迫系统失败,然后验证系统是

48、否能尽快恢复。验证系统是否能尽快恢复。o对于自动恢复系统,需验证重新初始化、检查点、对于自动恢复系统,需验证重新初始化、检查点、数据恢复和重新启动等机制的正确性;对于人工干数据恢复和重新启动等机制的正确性;对于人工干予的恢复系统,还需估测平均修复时间,确定其是予的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。否在可接受的范围内。2023/5/28684.2 安全测试安全测试o安全测试检查系统对非法侵入的防范能力。安全测安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。试图突破防线。o例

49、如,例如,(1)想方设法截取或破译口令;想方设法截取或破译口令;(2)专门定做专门定做软件破坏系统的保护机制;软件破坏系统的保护机制;(3)故意导致系统失败,故意导致系统失败,企图趁恢复之机非法进入;企图趁恢复之机非法进入;(4)试图通过浏览非保试图通过浏览非保密数据,推导所需信息等等。密数据,推导所需信息等等。o理论上讲,只要有足够的时间和资源,没有不可进理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者入的代价超过被保护信息的价值。此时非法侵入者已无利可图。已无利可

50、图。2023/5/28694.3 强度测试强度测试o强度测试检查程序对异常情况的抵抗能力。强度测试检查程序对异常情况的抵抗能力。o强度测试总是迫使系统在异常的资源配置下运行。强度测试总是迫使系统在异常的资源配置下运行。o例如:例如:(1)当中断的正常频率为每秒一至两个时,运行每秒产生十当中断的正常频率为每秒一至两个时,运行每秒产生十个中断的测试用例;个中断的测试用例;(2)定量地增长数据输入率,检查输入子功能的反映能力;定量地增长数据输入率,检查输入子功能的反映能力;(3)运行需要最大存储空间运行需要最大存储空间(或其他资源或其他资源)的测试用例;的测试用例;(4)运行可能导致虚存操作系统崩溃

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁