软件工程第14章

上传人:无*** 文档编号:119441376 上传时间:2022-07-15 格式:PPTX 页数:128 大小:576.85KB
收藏 版权申诉 举报 下载
软件工程第14章_第1页
第1页 / 共128页
软件工程第14章_第2页
第2页 / 共128页
软件工程第14章_第3页
第3页 / 共128页
资源描述:

《软件工程第14章》由会员分享,可在线阅读,更多相关《软件工程第14章(128页珍藏版)》请在装配图网上搜索。

1、课程名称:软件工程课程名称:软件工程 第第22讲讲班班 级:级:日日 期:期:教教 室:室:教学题目:第教学题目:第14章章 软件测试软件测试 14.1 软件测试的基础知识软件测试的基础知识 14.2 软件测试技术软件测试技术 14.2.1 白盒测试白盒测试 1.逻辑覆盖逻辑覆盖 教学目的:了解软件测试的基本知识。掌握逻辑覆盖测教学目的:了解软件测试的基本知识。掌握逻辑覆盖测 试技术。试技术。教学重点:软件测试的步骤和常见错误类型、逻辑覆盖。教学重点:软件测试的步骤和常见错误类型、逻辑覆盖。教学难点:软件测试的步骤、逻辑覆盖。教学难点:软件测试的步骤、逻辑覆盖。教教 具:多媒体教室、电子教案具

2、:多媒体教室、电子教案作作 业:业:软件测试是对软件规格说明、软件设计软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。和编码的最全面也是最后的审查。通过软件测试,可以发现软件中绝大部通过软件测试,可以发现软件中绝大部分潜伏的错误,从而可以大大提高软件分潜伏的错误,从而可以大大提高软件产品的正确性、可靠性,进而可显著提产品的正确性、可靠性,进而可显著提高产品质量。高产品质量。统计表明,软件测试工作往往占软件开统计表明,软件测试工作往往占软件开发总工作量的发总工作量的40%以上。甚至以上。甚至35倍以上。倍以上。本章将介绍:本章将介绍:软件测试的基本知识;软件测试的基本知识;软件测

3、试的常用方法和技术;软件测试的常用方法和技术;软件测试的过程;软件测试的过程;软件的调试与排错技术;软件的调试与排错技术;软件测试的工具。软件测试的工具。14.1 软件测试的基本知识软件测试的基本知识14.2 软件测试技术软件测试技术14.3 软件测试过程软件测试过程14.4 调试调试14.5 测试工具测试工具软件测试是执行程序发现并排除软件测试是执行程序发现并排除程序中潜伏的错误的过程。程序中潜伏的错误的过程。软件测试是软件投入运行前,对软件测试是软件投入运行前,对软件需求分析、设计、实现的强软件需求分析、设计、实现的强有力的最终审查。有力的最终审查。测试用例测试用例为了进行有效的测试而设计

4、的输为了进行有效的测试而设计的输入数据和预期的输出结果数据。入数据和预期的输出结果数据。Myers在其软件测试著作中对软件测试的目标在其软件测试著作中对软件测试的目标提出以下观点:提出以下观点:软件测试是为了发现错误而运行程序的过程;软件测试是为了发现错误而运行程序的过程;一个好的测试用例能够发现至今尚未发现的一个好的测试用例能够发现至今尚未发现的 错误;错误;一个成功的测试是发现了至今尚未发现的错一个成功的测试是发现了至今尚未发现的错 误的测试。误的测试。应尽早和不断地进行软件应尽早和不断地进行软件“测试测试”,即将这种,即将这种“测试测试”贯穿于软件开发的各个阶段,坚持各贯穿于软件开发的各

5、个阶段,坚持各个阶段的技术评审,以便尽早地发现和预防错个阶段的技术评审,以便尽早地发现和预防错误。误。测试用例中,不仅要选择合理的输入数据,还测试用例中,不仅要选择合理的输入数据,还要选择不合理的输入数据。要选择不合理的输入数据。在开发各阶段应事先分别制定出相应的测试计在开发各阶段应事先分别制定出相应的测试计划,在测试开始后应严格执行,防止随意性。划,在测试开始后应严格执行,防止随意性。对发现错误较多的程序模块,应进行重点测试。对发现错误较多的程序模块,应进行重点测试。Pareto指出,测试发现错误的指出,测试发现错误的80%集中在集中在20%的模块中。发现错误较多的模块质量较差,需的模块中。

6、发现错误较多的模块质量较差,需重点测试,并要测试是否引入了新的错误。重点测试,并要测试是否引入了新的错误。避免程序员测试自己的程序。避免程序员测试自己的程序。测试用例的设计应有第三方参与。对于大型软测试用例的设计应有第三方参与。对于大型软件的测试,一般的做法是:设计者与测试者共件的测试,一般的做法是:设计者与测试者共同完成单元测试任务,而综合测试由专门的测同完成单元测试任务,而综合测试由专门的测试机构负责,有时其中也可以有设计者参加试机构负责,有时其中也可以有设计者参加用穷举测试是不现实的,一般通过设计测试用用穷举测试是不现实的,一般通过设计测试用例,充分覆盖所有条件或所有语句即可。例,充分覆

7、盖所有条件或所有语句即可。长期妥善保存测试计划、测试用例、出错统计长期妥善保存测试计划、测试用例、出错统计和有关的分析报告。和有关的分析报告。图图14-1-1 测试步骤测试步骤部件部件代码代码部件部件代码代码单元测试单元测试单元测试单元测试单元测试单元测试部件部件代码代码集成测试集成测试功能测试功能测试性能测试性能测试验收测试验收测试安装测试安装测试设计设计规格说明规格说明系统系统功能需求功能需求其他其他软件需求软件需求用户需求用户需求规格说明规格说明用户用户环境环境集成后集成后的模块的模块功能功能系统系统验证,验证,生效的生效的软件软件被接受被接受的系统的系统在使用中的系统在使用中的系统测试

8、后测试后的模块的模块1.在本书中,从软件工程的角度:在本书中,从软件工程的角度:将单元测试与详细设计对应起来,即在详细设计阶段将单元测试与详细设计对应起来,即在详细设计阶段就应制定出单元测试计划;就应制定出单元测试计划;而集成测试又称为综合测试,可以把概要设计和集成而集成测试又称为综合测试,可以把概要设计和集成测试对应起来,在概要设计阶段就可以制定集成测试测试对应起来,在概要设计阶段就可以制定集成测试计划;计划;将功能测试、性能(行为)测试、验收测试统称为验将功能测试、性能(行为)测试、验收测试统称为验收测试(也称确认测试),与软件系统需求分析阶段收测试(也称确认测试),与软件系统需求分析阶段

9、对应起来,在需求分析阶段就应制定出验收准则和验对应起来,在需求分析阶段就应制定出验收准则和验收测试计划,验收测试应提交经用户确认的软件产品;收测试计划,验收测试应提交经用户确认的软件产品;最后,将软件、硬件等要素构成一个完整的基于计算最后,将软件、硬件等要素构成一个完整的基于计算机的系统,再进行系统测试,使系统测试与系统定义机的系统,再进行系统测试,使系统测试与系统定义相对应,即在系统定义阶段就应制定系统测试计划。相对应,即在系统定义阶段就应制定系统测试计划。图图14-1-2 软件工程的开发与测试的关系软件工程的开发与测试的关系系统工程系统工程需求分析需求分析概要设计概要设计设计、编码设计、编

10、码单元测试单元测试集成测试集成测试验收测试验收测试系统测试系统测试图图14-1-3 测试阶段的信息流测试阶段的信息流测试测试评价评价排错排错可靠性可靠性模型模型软件配置软件配置测试配置测试配置测试结果测试结果错误错误错误统计错误统计预期结果预期结果正确的程序正确的程序可靠性预测可靠性预测q测试的输入流有软件配置和测试配置。测试的输入流有软件配置和测试配置。软件配置由需求规格说明、设计说明、软件配置由需求规格说明、设计说明、源代码等组成;源代码等组成;测试配置包括测试计划、测试用例(其测试配置包括测试计划、测试用例(其中包括预期的结果)、测试工具等组成。中包括预期的结果)、测试工具等组成。经常发

11、现严重的错误并需要修改软件,经常发现严重的错误并需要修改软件,则软件的质量和可靠性一定不高,需要则软件的质量和可靠性一定不高,需要进一步测试;进一步测试;如果测试所发现的错误不多且易于改正,如果测试所发现的错误不多且易于改正,软件功能看起来也较完善,则需考虑两软件功能看起来也较完善,则需考虑两种可能:种可能:1)软件质量和可靠性确实令人满意;)软件质量和可靠性确实令人满意;2)测试不全面,很可能还潜伏着严重错)测试不全面,很可能还潜伏着严重错误;误;如果测试过程没有发现任何错误,则很如果测试过程没有发现任何错误,则很有可能是测试配置不合理。有可能是测试配置不合理。1静态测试静态测试l静态测试是

12、采用人工检测和计算机辅助静态分静态测试是采用人工检测和计算机辅助静态分析的方法对程序进行检测。析的方法对程序进行检测。人工检测是指靠人工走查程序或评审软件。这人工检测是指靠人工走查程序或评审软件。这种走查与评审主要针对编码的质量和软件开发种走查与评审主要针对编码的质量和软件开发各个阶段的文档,特别是总体设计和详细设计各个阶段的文档,特别是总体设计和详细设计阶段的错误。能发现阶段的错误。能发现30%70%的逻辑设计和的逻辑设计和编码错误。编码错误。计算机辅助静态分析是指利用静态分析软件工计算机辅助静态分析是指利用静态分析软件工具对程序进行静态分析,主要检测变量是否用具对程序进行静态分析,主要检测

13、变量是否用错、参数是否匹配、循环嵌套是否有错、是否错、参数是否匹配、循环嵌套是否有错、是否有死循环和永远执行不到的死代码等等。同时,有死循环和永远执行不到的死代码等等。同时,它还可对程序的特性进行分析。它还可对程序的特性进行分析。2动态测试动态测试 动态测试是指事先设计好一组测试用例,动态测试是指事先设计好一组测试用例,然后通过运行程序来发现错误。然后通过运行程序来发现错误。动态测试有两种测试方法:动态测试有两种测试方法:黑盒测试;黑盒测试;白盒测试。白盒测试。黑盒测试,又称为功能测试黑盒测试,又称为功能测试把被测把被测的程序模块看成一个黑匣子,即完全不的程序模块看成一个黑匣子,即完全不考虑程

14、序的内部结构和处理过程,测试考虑程序的内部结构和处理过程,测试仅在程序的接口上进行。仅在程序的接口上进行。白盒测试白盒测试把被测的程序看成一个透把被测的程序看成一个透明的白匣子,即完全了解程序的内部结明的白匣子,即完全了解程序的内部结构和详细的处理过程,测试是在程序的构和详细的处理过程,测试是在程序的内部结构上进行。即要求针对每一条逻内部结构上进行。即要求针对每一条逻辑路径都要设计测试用例,检查每一个辑路径都要设计测试用例,检查每一个分支和每一次循环的情况。分支和每一次循环的情况。穷举测试是不现实的。如上图,设循环体应执穷举测试是不现实的。如上图,设循环体应执行行30次,循环体中有次,循环体中

15、有4个独立的分支,则最多个独立的分支,则最多有有4 30 10 18个逻辑路径,假设每运行一个测个逻辑路径,假设每运行一个测试用例平均花费试用例平均花费1毫秒,则需花费毫秒,则需花费3千多万年。千多万年。一般选用少量最有效的测试用例,以便覆盖每一般选用少量最有效的测试用例,以便覆盖每一个条件、每一个路径和每一个语句,从而以一个条件、每一个路径和每一个语句,从而以最少的代价发现尽可能多的错误。最少的代价发现尽可能多的错误。开始开始结束结束按照错误的影响和造成的后果进行分类,按照错误的影响和造成的后果进行分类,可分为:较小错误,中等错误,较严重可分为:较小错误,中等错误,较严重错误,严重错误,非常

16、严重的错误,最错误,严重错误,非常严重的错误,最严重的错误。严重的错误。按照软件生存周期各个阶段分类,可分按照软件生存周期各个阶段分类,可分为:问题定义错误、需求分析规格说明为:问题定义错误、需求分析规格说明错误、设计错误、编码错误等等。错误、设计错误、编码错误等等。这里重点介绍一种按照错误的性质和范这里重点介绍一种按照错误的性质和范围进行分类的方法,可以将错误分为如围进行分类的方法,可以将错误分为如下几类:下几类:1功能错误功能错误 需求规格说明错误。主要是指其中需求规格说明错误。主要是指其中有错误、多余或遗漏的功能,有二有错误、多余或遗漏的功能,有二义性或自相矛盾。义性或自相矛盾。设计实现

17、错误。设计或实现的功能设计实现错误。设计或实现的功能不是规格说明或用户所要求的功能。不是规格说明或用户所要求的功能。2系统错误系统错误 外部接口错误。如与打印机的接口错误。外部接口错误。如与打印机的接口错误。内部接口错误。指各程序模块间的联系存在错内部接口错误。指各程序模块间的联系存在错误。如输入误。如输入/输出、数据保护、子程序访问等。输出、数据保护、子程序访问等。硬件结构错误。如错误地理解硬件结构错误。如错误地理解I/O指令、中断指令、中断处理、设备启动和初始化等而引起的错误。处理、设备启动和初始化等而引起的错误。软件结构错误。由于软件结构不合理或不清晰软件结构错误。由于软件结构不合理或不

18、清晰所引起的错误。往往在系统满载时才能发现。所引起的错误。往往在系统满载时才能发现。操作系统错误。该类错误是由于不了解操作系操作系统错误。该类错误是由于不了解操作系统而引起的,操作系统本身也有错误。统而引起的,操作系统本身也有错误。控制与顺序错误。包括事件的时间顺序不正确、控制与顺序错误。包括事件的时间顺序不正确、等待一个不可能发生的事件等等。等待一个不可能发生的事件等等。资源管理错误。既资源使用不当。资源死锁等。资源管理错误。既资源使用不当。资源死锁等。3加工错误(算法错误)加工错误(算法错误)计算与操作错误。指计算、函数求值和一般计算与操作错误。指计算、函数求值和一般操作过程中的错误。操作

19、过程中的错误。初始化错误。如忘记了初始化工作区、数据初始化错误。如忘记了初始化工作区、数据区,错误地对循环变量赋初值,不正确的初区,错误地对循环变量赋初值,不正确的初始化等等。始化等等。局部控制和次序错误。如遗漏路径、不可达局部控制和次序错误。如遗漏路径、不可达到的代码段、循环嵌套或终止条件不正确、到的代码段、循环嵌套或终止条件不正确、死循环等等。死循环等等。逻辑错误。如多分支、判断条件不正确等。逻辑错误。如多分支、判断条件不正确等。4数据错误数据错误 动态数据错误。动态数据错误。静态数据错误。静态数据指直接或间接地出现静态数据错误。静态数据指直接或间接地出现在程序或数据库中的数据,其内容和格

20、式都是在程序或数据库中的数据,其内容和格式都是固定的。因此在内容或格式上都可能存在错误。固定的。因此在内容或格式上都可能存在错误。数据内容错误。是指由于内容被破坏或被错误数据内容错误。是指由于内容被破坏或被错误地解释而造成的错误。地解释而造成的错误。数据结构错误。包括数据结构说明错误和数据数据结构错误。包括数据结构说明错误和数据结构使用错误。结构使用错误。数据属性错误。数据属性是指数据内容的含义数据属性错误。数据属性是指数据内容的含义或语义,如整数、字符等。数据属性错误是指或语义,如整数、字符等。数据属性错误是指对数据属性的错误解释和错误使用而导致的错对数据属性的错误解释和错误使用而导致的错误

21、。误。5代码错误代码错误 代码错误主要包括语法错误、键入错误、代码错误主要包括语法错误、键入错误、对语句的理解错误等。对语句的理解错误等。例如,例如,Myers(1976)指出,美国第一个)指出,美国第一个去金星的太空任务的失败是由于在一个去金星的太空任务的失败是由于在一个Fortran do循环中缺少一个逗号。循环中缺少一个逗号。白盒测试的原则是:白盒测试的原则是:保证程序中每一独立的路径至少执行一次;保证程序中每一独立的路径至少执行一次;保证所有判定的每一个分支至少执行一次;保证所有判定的每一个分支至少执行一次;保证每个判定表达式中每个条件的所有可能结保证每个判定表达式中每个条件的所有可能

22、结果至少出现一次;果至少出现一次;保证每一循环都在边界条件和一般条件至少各保证每一循环都在边界条件和一般条件至少各执行一次;执行一次;验证所有内部数据结构的有效性。验证所有内部数据结构的有效性。1逻辑覆盖逻辑覆盖 l逻辑覆盖是指设计测试用例对程序的内逻辑覆盖是指设计测试用例对程序的内部分支逻辑结构进行部分或全部覆盖的部分支逻辑结构进行部分或全部覆盖的技术。技术。1)语句覆盖)语句覆盖 2)判定覆盖)判定覆盖 3)条件覆盖)条件覆盖 4)判定)判定/条件覆盖条件覆盖 5)条件组合覆盖)条件组合覆盖 6)路径覆盖)路径覆盖逻辑覆盖逻辑覆盖令令x=2,y=0,z=4作为测试数据,程序执作为测试数据,

23、程序执行路径为行路径为abcde,使语句段,使语句段1和和2各执行一各执行一次,实现了语句覆盖。它不能检测所有次,实现了语句覆盖。它不能检测所有判定条件的错误。比如,错把判定条件的错误。比如,错把z1写成了写成了z1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde判定覆盖是指设计足够多的测试用例,判定覆盖是指设计足够多的测试用例,使每个判定的每种可能结果都至少出现使每个判定的每种可能结果都至少出现一次,也就是使每个判定的每个分支都一次,也就是使每个判定的每个分支都至少执行一次。至少执行一次。可以设计如下两组数据以满足判定覆盖:可以设计如下两

24、组数据以满足判定覆盖:x=3,y=0,z=1(通过路径(通过路径abce););x=2,y=1,z=2(通过路径(通过路径acde)。)。判定覆盖必然满足语句覆盖。覆盖程度仍然判定覆盖必然满足语句覆盖。覆盖程度仍然不高。比如,错把不高。比如,错把z1写成了写成了z1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde条件覆盖是指设计足够的测试用例,使每个判定表条件覆盖是指设计足够的测试用例,使每个判定表达式中的每个条件的每种可能值都至少出现一次。达式中的每个条件的每种可能值都至少出现一次。如图,共有如图,共有4个条件:个条件:x 1,y=0,x

25、=2,z 1。条件覆盖要求设计测试用例,覆盖第一个判定表达条件覆盖要求设计测试用例,覆盖第一个判定表达式的式的x 1,y=0,x 1,y0等各种结果,并覆盖等各种结果,并覆盖第二个判定表达式的第二个判定表达式的x=2,z 1,x 2,z 1等各等各种结果。种结果。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde设计如下两组测试用例,可以满足条件覆盖的标准:设计如下两组测试用例,可以满足条件覆盖的标准:x=2,y=0,z=3(覆盖(覆盖x1,y=0,x=2,z1,通过路径,通过路径abcde););x=1,y=1,z=1(覆盖(覆盖x1

26、,y0,x2,z1,通过路径,通过路径ace)。)。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde但是,如果设计如下一组测试用例:但是,如果设计如下一组测试用例:x=1,y=0,z=3(覆盖(覆盖x1,y=0,x2,z1,通过路径,通过路径acde););x=2,y=1,z=1(覆盖(覆盖x1,y0,x=2,z1,通过路径,通过路径ace)。)。虽满足条件覆盖,但不满足语句覆盖和判定覆盖。虽满足条件覆盖,但不满足语句覆盖和判定覆盖。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFab

27、cde它是指设计足够的测试用例,使得它是指设计足够的测试用例,使得判定表达式中的每个条件都取到所判定表达式中的每个条件都取到所有可能的值(即满足条件覆盖),有可能的值(即满足条件覆盖),并使每个判定表达式也都取到所有并使每个判定表达式也都取到所有可能的判定结果(即满足判定覆可能的判定结果(即满足判定覆盖)。盖)。x=2,y=0,z=3(覆盖(覆盖x1,y=0,x=2,z1,通过路径,通过路径abcde););x=1,y=1,z=1(覆盖(覆盖x1,y0,x2,z1,通过路径,通过路径ace)。)。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFF

28、abcde条件组合覆盖是指设计足够的测试条件组合覆盖是指设计足够的测试用例,使得每个判定表达式中条件用例,使得每个判定表达式中条件的各种可能值的组合都至少出现一的各种可能值的组合都至少出现一次。这是一种较强的逻辑覆盖。次。这是一种较强的逻辑覆盖。如图,两个判定表达式中含有如图,两个判定表达式中含有4个条件,个条件,共有共有8种组合:种组合:x1,y=0;x1,y0;x1,y=0;x1,y0;x=2,z1;x=2,z1;x2,z1;x2,z1。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcdex=2,y=0,z=3;覆盖条件组合和,通过路

29、径覆盖条件组合和,通过路径abcde;x=2,y=1,z=1;覆盖条件组合和,通过路径覆盖条件组合和,通过路径acde;x=0,y=0,z=3;覆盖条件组合和,通过路径覆盖条件组合和,通过路径acde;x=1,y=1,z=1;覆盖条件组合和,通过路径覆盖条件组合和,通过路径ace。但未通过路。但未通过路径径abce。(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde路径覆盖是指设计足够的测试用例,以覆盖被路径覆盖是指设计足够的测试用例,以覆盖被测程序中所有可能的路径。测程序中所有可能的路径。如图,共有如图,共有4条路径,设计以下条路径,

30、设计以下4组测试用例,组测试用例,就可以覆盖这就可以覆盖这4条路径:条路径:x=2,y=0,z=3;覆盖路径;覆盖路径abcde x=2,y=1,z=1;覆盖路径;覆盖路径acde x=1,y=1,z=1;覆盖路径;覆盖路径ace x=3,y=0,z=1;覆盖路径;覆盖路径abce(x1)AND(y=0)(x=2)OR(z1)语句段语句段1语句段语句段2开始开始结束结束TTFFabcde没有覆盖条件组没有覆盖条件组合和合和x1,y=0 x2,z1在实际测试时,为了达到充分测试在实际测试时,为了达到充分测试的目的,一般以条件组合覆盖为主的目的,一般以条件组合覆盖为主设计测试用例,然后再补充部分测

31、设计测试用例,然后再补充部分测试用例,以便实现路径覆盖。试用例,以便实现路径覆盖。课程名称:软件工程课程名称:软件工程 第第23讲讲班班 级:级:日日 期:期:教教 室:室:教学题目:教学题目:14.2 软件测试技术软件测试技术 14.2.1 白盒测试白盒测试 14.2.2 黑盒测试黑盒测试教学目的:掌握白盒、黑盒测试的概念和测试方教学目的:掌握白盒、黑盒测试的概念和测试方 法步骤。法步骤。教学重点:基本路径测试、黑盒测试技术教学重点:基本路径测试、黑盒测试技术教学难点:基本路径测试。教学难点:基本路径测试。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:其主要思想是根据软

32、件详细设计的过程其主要思想是根据软件详细设计的过程性描述或源代码中的控制流程求出程序性描述或源代码中的控制流程求出程序的环形复杂性度量,然后用此度量确定的环形复杂性度量,然后用此度量确定程序的基本路径集合,并由此导出一组程序的基本路径集合,并由此导出一组测试用例来覆盖该集合中的每一个独立测试用例来覆盖该集合中的每一个独立的路径,从而可以保证每个语句至少执的路径,从而可以保证每个语句至少执行一次。行一次。l【例【例14.1】试用基本路径测试法对如】试用基本路径测试法对如下的下的PDL描述或如图描述或如图14-2-2所示的程所示的程序流程图设计测试用例。该例子描序流程图设计测试用例。该例子描述了最

33、多输入述了最多输入50个值(以个值(以1作为输作为输入结束标志),计算其中有效的学入结束标志),计算其中有效的学生分数的个数、总分数和平均值。生分数的个数、总分数和平均值。PROCEDURE averageINTERFACE RETURNS average,sum,n1;*n1为有效成绩的个数。为有效成绩的个数。*INTERFACE ACCEPTS score;TYPE score1,50 IS SCALAR ARRAY;TYPE average,n1,n2,sum IS SCALAR;*n2为输入值的个数。为输入值的个数。*TYPE i IS INTEGER;i=1;n1=n2=0;sum=

34、0;DO WHILE(score i 1)AND(n2=0)AND(score i 0 THEN average=sum/n1;ELSE average=1;END IF;END average 图图14-2-2 过程过程average的程序流程图的程序流程图开始开始 i=1,n1=n2=0,sum=0Score i-1 AND n20 AND scorei0average=sum/n1average=1 返回返回FFFTTT12和和345和和6789101112解:可按如下步骤解:可按如下步骤设计测试用例:设计测试用例:步骤步骤1:根据详:根据详细设计或代码导细设计或代码导出过程出过程ave

35、rage的流图。的流图。123456789111012R1R2R3R4R5R6步骤步骤2:据流图确定环形复杂性度量:据流图确定环形复杂性度量V(G):):1)V(G)=E N+2=16 12+2=6 ;其中其中E为流图中的边数,为流图中的边数,N为结点数;为结点数;2)V(G)=6(个区域);(个区域);3)V(G)=P+1=5+1=6 ;其中其中P为谓词结点的个数。在流图中,结点为谓词结点的个数。在流图中,结点2、3、5、6、9是谓词结点。是谓词结点。步骤步骤3:确定基本路径集合(即独立路径集合)。:确定基本路径集合(即独立路径集合)。一条独立路径是指,和其他的独立路径相比,一条独立路径是指

36、,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序至少引入一个新处理语句或一个新判断的程序通路。通路。V(G)值正好等于该程序的独立路径)值正好等于该程序的独立路径的条数。于是可确定的条数。于是可确定6条独立的路径:条独立的路径:路径路径1:12291012路径路径2:1291112路径路径3:12391012路径路径4:1234582路径路径5:12345682路径路径6:123456782步骤步骤4:为每一条独立路径各设计一组测试用例,:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。以便强迫程序沿着该路径至少执行一次。1)路径)路径1的测试用例:的测

37、试用例:scorek=有效分数值,当有效分数值,当k i;score i=1,2i50;期望结果:根据输入的有效分数算出正确的分数期望结果:根据输入的有效分数算出正确的分数个数个数n1、总分、总分sum和平均分和平均分average。2)路径)路径2的测试用例:的测试用例:score 1=1;期望的结果:期望的结果:average=1,其他量保持初值。,其他量保持初值。3)路径)路径3的测试用例:的测试用例:输入多于输入多于50个有效分数,即试图处理个有效分数,即试图处理51个个分数,要求前分数,要求前51个为有效分数;个为有效分数;期望结果:期望结果:n1=50、且算出正确的总分和、且算出正

38、确的总分和平均分。平均分。4)路径)路径4的测试用例:的测试用例:score i=有效分数,有效分数,当当i50;score k 0,k i ;期望结果:根据输入的有效分数算出正确期望结果:根据输入的有效分数算出正确的分数个数的分数个数n1、总分、总分sum和平均分和平均分average。5)路径)路径5的测试用例:的测试用例:score i=有效分数,有效分数,当当i100,k i ;期望结果:根据输入的有效分数算出正确期望结果:根据输入的有效分数算出正确的分数个数的分数个数n1、总分、总分sum和平均分和平均分average。6)路径)路径6的测试用例:的测试用例:score i=有效分数

39、,有效分数,当当i50;期望结果:根据输入的有效分数算出正确期望结果:根据输入的有效分数算出正确的分数个数的分数个数n1、总分、总分sum和平均分和平均分average。1)对于最多为)对于最多为n次的单循环,可设计测试用例实次的单循环,可设计测试用例实现下列测试:现下列测试:跳过循环,即一次也不执行;跳过循环,即一次也不执行;仅循环仅循环1次;次;循环循环2次;次;循环循环m次,次,mn;分别循环分别循环n 1次,次,n次,次,n+1次。次。2)对于嵌套循环的测试:)对于嵌套循环的测试:从最内层循环开始测试,此时外层循环都取最从最内层循环开始测试,此时外层循环都取最小值,对内层进行单循环的测

40、试;小值,对内层进行单循环的测试;向外退一层进行测试,此时其内层循环取一些向外退一层进行测试,此时其内层循环取一些典型值,其外层循环仍取最小值;典型值,其外层循环仍取最小值;继续向外层扩展,直至测试完成。继续向外层扩展,直至测试完成。主要是测试软件是否满足功能需求。主要是测试软件是否满足功能需求。黑盒测试主要测试的错误类型有:黑盒测试主要测试的错误类型有:不正确或遗漏的功能;不正确或遗漏的功能;接口错误;接口错误;性能错误;性能错误;数据结构或外部数据访问错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。初始化或终止条件错误等等。黑盒测试设计测试用例的方法:黑盒测试设计测试用例的方法

41、:等价类的划分、边界值分析、等价类的划分、边界值分析、错误推测、组合数据测试等。错误推测、组合数据测试等。等价类划分的思想是将输入数据按有效的(合等价类划分的思想是将输入数据按有效的(合理的)和无效的(不合理的)划分成若干个等理的)和无效的(不合理的)划分成若干个等价类,认为测试等价类中的一个代表值的结果价类,认为测试等价类中的一个代表值的结果就等于对该类其他值的测试。利用等价类划分就等于对该类其他值的测试。利用等价类划分的测试步骤如下:的测试步骤如下:1)划分等价类)划分等价类 从程序的功能说明中找出每个输入条件,然后从程序的功能说明中找出每个输入条件,然后将其划分成若干个有效和无效的等价类

42、。下面将其划分成若干个有效和无效的等价类。下面给出等价类划分的几条经验性原则供参考:给出等价类划分的几条经验性原则供参考:如果规定了输入值的范围,则可划分出一个有如果规定了输入值的范围,则可划分出一个有效的等价类(输入值在此范围内)和两个无效效的等价类(输入值在此范围内)和两个无效的等价类(输入值小于最小值或大于最大值)。的等价类(输入值小于最小值或大于最大值)。如果规定了数据输入的个数,则可划分出一如果规定了数据输入的个数,则可划分出一个有效的等价类(输入值的个数符合规定)和个有效的等价类(输入值的个数符合规定)和两个无效的等价类(输入值的个数少于或多于两个无效的等价类(输入值的个数少于或多

43、于规定个数)。规定个数)。如果规定了输入数据的一组值,而且程序对如果规定了输入数据的一组值,而且程序对不同的输入值进行不同的处理,则每个允许的不同的输入值进行不同的处理,则每个允许的输入值是一个有效的等价类,此外还有一个无输入值是一个有效的等价类,此外还有一个无效的等价类(规定的这一组值以外的值)。效的等价类(规定的这一组值以外的值)。如果规定了输入数据必须遵循的规则,如果规定了输入数据必须遵循的规则,则可划分出一个有效的等价类(符合规则可划分出一个有效的等价类(符合规则)和若干个无效的等价类(从不同的则)和若干个无效的等价类(从不同的角度违反规则)。角度违反规则)。如果输入条件规定了一个集合

44、,则可划如果输入条件规定了一个集合,则可划分出一个有效的等价类(此集合)和一分出一个有效的等价类(此集合)和一个无效的等价类(此集合的补集)。个无效的等价类(此集合的补集)。2)设计测试用例)设计测试用例等价类划分应列表,并为每一个等价类等价类划分应列表,并为每一个等价类编号。编号。设计一个有效等价类的测试用例,使其设计一个有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖过的有效等尽可能多地覆盖尚未被覆盖过的有效等价类。如此重复,直到所有有效等价类价类。如此重复,直到所有有效等价类都被覆盖为止。都被覆盖为止。设计一个测试用例,仅覆盖一个无效等设计一个测试用例,仅覆盖一个无效等价类,如此重复,

45、直到所有无效等价类价类,如此重复,直到所有无效等价类都被覆盖为止。都被覆盖为止。【例【例14.1】设有一个档案管理系统,要求】设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期用户输入以年月表示的日期。假设日期限定在限定在1990年年1月月2003年年12月,并规定月,并规定日期由日期由6位数字字符组成,前位数字字符组成,前4位表示年,位表示年,后后2位表示月。现用等价类划分法设计测位表示月。现用等价类划分法设计测试用例,来测试程序的试用例,来测试程序的“日期检查功日期检查功能能”。1)划分等价类并编号)划分等价类并编号表表14-1等价类划分的结果等价类划分的结果输入等价类输入等价类

46、有效等价类有效等价类无效等价类无效等价类日期的类型日期的类型及长度及长度6位数字字符位数字字符 有非数字字符有非数字字符少于少于6位数字字符位数字字符多于多于6位数字字符位数字字符年份范围年份范围在在19902003之间之间小于小于1990大于大于2003月份范围月份范围在在0112之间之间 等于等于00大于大于122)设计测试用例,以便覆盖所有的有效等)设计测试用例,以便覆盖所有的有效等 价类价类在表在表14-1中列出了中列出了3个有效等价类,编号分个有效等价类,编号分别为、,设计的测试用例如下:别为、,设计的测试用例如下:测试数据测试数据 期望结果期望结果 覆盖的有效等价类覆盖的有效等价类

47、200211 输入有效输入有效 、3)为每一个无效等价类设计一个测试用例,)为每一个无效等价类设计一个测试用例,设计结果如下:设计结果如下:测试数据测试数据 期望结果期望结果 覆盖的无效等价类覆盖的无效等价类95June 无效输入无效输入 20036 无效输入无效输入 2001006 无效输入无效输入 198912 无效输入无效输入 200401 无效输入无效输入 200100 无效输入无效输入 200113 无效输入无效输入 边界值分析(边界值分析(boundary value analysis,BVA)是指设计测试用例,使程序在输)是指设计测试用例,使程序在输入或输出的边界值或者边界值左右

48、的值入或输出的边界值或者边界值左右的值执行。执行。边界值分析方法可以单独设计测试用例,边界值分析方法可以单独设计测试用例,也可以作为等价类划分方法的补充,即也可以作为等价类划分方法的补充,即在各个等价类中主要是选择边界上及其在各个等价类中主要是选择边界上及其左右的值。例如例左右的值。例如例14.1中对月份范围的测中对月份范围的测试就可以选择试就可以选择00、01、02、11、12、13等数据作为测试用例。等数据作为测试用例。1)如果输入条件指定了范围)如果输入条件指定了范围a,b,则,则a、b以以及紧挨及紧挨a、b左右的各一个值都应作为测试用例。左右的各一个值都应作为测试用例。比如,学生成绩为

49、比如,学生成绩为0,100,应取,应取-1、0、1、99、100、101共共6个值作为测试用例。个值作为测试用例。2)如果输入条件指定了输入数据的个数范围,)如果输入条件指定了输入数据的个数范围,则按最大、最小个数及其左右的个数各设计一则按最大、最小个数及其左右的个数各设计一个测试用例。比如,一个输入文件应包括个测试用例。比如,一个输入文件应包括1255个记录,则应分别设计输入个记录,则应分别设计输入0个、个、1个、个、2个、个、254个、个、255个、个、256个记录的测试用例。个记录的测试用例。3)将规则)将规则1)和)和2)应用于输出条件,即设计测)应用于输出条件,即设计测试用例使输出值

50、达到边界值及其左右的值。试用例使输出值达到边界值及其左右的值。错误推测法的基本思想是:程序测错误推测法的基本思想是:程序测试员通过已经掌握的测试理论和实试员通过已经掌握的测试理论和实际测试中积累的经验,推测程序在际测试中积累的经验,推测程序在哪些情况下可能发生错误,并将可哪些情况下可能发生错误,并将可能发生错误的情况列出,然后为每能发生错误的情况列出,然后为每一可能发生错误的情况各设计一个一可能发生错误的情况各设计一个测试用例。测试用例。例如,测试一个对线性表(比如数组)例如,测试一个对线性表(比如数组)进行排序的程序,可推测列出以下几项进行排序的程序,可推测列出以下几项需要特别测试的情况:需

51、要特别测试的情况:1)输入的线性表为空表;)输入的线性表为空表;2)表中只含有一个元素;)表中只含有一个元素;3)输入表中所有元素已排好序;)输入表中所有元素已排好序;4)输入表已按逆序排好;)输入表已按逆序排好;5)输入表中部分或全部元素相同。)输入表中部分或全部元素相同。于是,可以针对以上列出的每一种情况于是,可以针对以上列出的每一种情况各设计一个测试用例。各设计一个测试用例。实践表明,在单个测试用例没有测试出实践表明,在单个测试用例没有测试出错误的情况下,采用测试数据的某种组错误的情况下,采用测试数据的某种组合却可能检测出程序中隐藏很深的错误。合却可能检测出程序中隐藏很深的错误。组合数据

52、测试法可以采用的有效工具有组合数据测试法可以采用的有效工具有判定表、判定树等。判定表、判定树等。以判定表为例,即列出输入数据的各种以判定表为例,即列出输入数据的各种组合情况和程序相应的动作、可能的输组合情况和程序相应的动作、可能的输出结果之间的对应关系,然后为判定表出结果之间的对应关系,然后为判定表的每一列至少设计一个测试用例。的每一列至少设计一个测试用例。课程名称:软件工程课程名称:软件工程 第第24讲讲班班 级:级:日日 期:期:教教 室:室:教学题目:教学题目:14.3 软件测试过程软件测试过程 14.4 调试调试 14.5 测试工具测试工具教学目的:掌握软件的测试过程、调试的概念和教学

53、目的:掌握软件的测试过程、调试的概念和 策略,了解自动测试工具和调试工具。策略,了解自动测试工具和调试工具。教学重点:基本路径测试、黑盒测试技术教学重点:基本路径测试、黑盒测试技术教学难点:基本路径测试。教学难点:基本路径测试。教教 具:多媒体教室、电子教案具:多媒体教室、电子教案作作 业:业:从宏观的角度讲,软件测试过程一般可划分为从宏观的角度讲,软件测试过程一般可划分为单元测试、集成测试、验收测试和系统测试等单元测试、集成测试、验收测试和系统测试等几个主要测试阶段。几个主要测试阶段。对于每一个测试阶段,都应包含制定测试计划、对于每一个测试阶段,都应包含制定测试计划、设计测试用例、测试实施和

54、测试结果的收集评设计测试用例、测试实施和测试结果的收集评估等。估等。其中,测试计划应包括具体的测试步骤、工作其中,测试计划应包括具体的测试步骤、工作量、进度和资源等。在测试的各个阶段,应适量、进度和资源等。在测试的各个阶段,应适宜地选择黑盒测试和白盒测试方法,由开发人宜地选择黑盒测试和白盒测试方法,由开发人员和一个独立的测试小组单独、分别或共同完员和一个独立的测试小组单独、分别或共同完成测试任务,必要时还应有用户参加。成测试任务,必要时还应有用户参加。单元测试的测试对象单元测试的测试对象程序模块。程序模块。单元测试的依据单元测试的依据根据详细设计的描述根据详细设计的描述 制定的单元测试计划。制

55、定的单元测试计划。单元测试单元测试多采用白盒测试技术。多采用白盒测试技术。单元测试单元测试可以并行进行。可以并行进行。1单元测试的任务单元测试的任务 1)模块接口测试)模块接口测试 2)模块局部数据结构的测试)模块局部数据结构的测试 3)模块中所有独立路径的测试)模块中所有独立路径的测试 4)模块中各条错误处理路径的测试)模块中各条错误处理路径的测试 5)模块边界条件的测试)模块边界条件的测试输入的实参与本模块的形参在个数、类型、顺输入的实参与本模块的形参在个数、类型、顺序、量纲上是否一致;序、量纲上是否一致;调用其他模块时所给实际参数与被调模块的形调用其他模块时所给实际参数与被调模块的形式参

56、数在个数、类型、顺序、量纲上是否一致;式参数在个数、类型、顺序、量纲上是否一致;调用预定义函数时所用参数的个数、类型、顺调用预定义函数时所用参数的个数、类型、顺序、返回值的类型等是否正确;序、返回值的类型等是否正确;是否存在与当前入口点无关的参数引用;是否存在与当前入口点无关的参数引用;是否修改了只读型参数;是否修改了只读型参数;各个模块对全局变量的定义和引用是否各个模块对全局变量的定义和引用是否保持一致;保持一致;是否把某些约束作为参数传递。是否把某些约束作为参数传递。如果模块内包括外部输入输出,还应测如果模块内包括外部输入输出,还应测试文件属性、文件打开试文件属性、文件打开/关闭语句、格式

57、关闭语句、格式说明、输入输出语句、缓冲区大小与记说明、输入输出语句、缓冲区大小与记录长度是否匹配、是否处理了文件尾、录长度是否匹配、是否处理了文件尾、输出信息中是否存在文字错误等方面的输出信息中是否存在文字错误等方面的内容。内容。主要的测试内容有:主要的测试内容有:不适合或不相容的类型说明;不适合或不相容的类型说明;变量名不正确(拼写或截断错误等);变量名不正确(拼写或截断错误等);变量无初值或初始化、缺省值有错;变量无初值或初始化、缺省值有错;出现上溢出、下溢出、地址异常等。出现上溢出、下溢出、地址异常等。l单元测试旨在找出如下错误:单元测试旨在找出如下错误:计算中常见的错误,有:运算符优先

58、级计算中常见的错误,有:运算符优先级错误、混合运算类型匹配错误、变量初错误、混合运算类型匹配错误、变量初值错、达不到精度、表达式不正确等。值错、达不到精度、表达式不正确等。不正确的比较判断和不恰当的控制流常不正确的比较判断和不恰当的控制流常见的错误,有:被比较的对象的类型不见的错误,有:被比较的对象的类型不匹配、错误地使用逻辑运算符及其优先匹配、错误地使用逻辑运算符及其优先级、计算误差引起的判断错误、循环终级、计算误差引起的判断错误、循环终止条件不合适、错误地修改了循环变量、止条件不合适、错误地修改了循环变量、迭代发散时不能退出循环等。迭代发散时不能退出循环等。我们希望程序模块具有较强的容错能

59、力,这就我们希望程序模块具有较强的容错能力,这就需要在设计时能预见各种出错条件,并预先设需要在设计时能预见各种出错条件,并预先设计好各种出错处理通路,以便在用户出现错误计好各种出错处理通路,以便在用户出现错误时系统能给出恰当的提示而不使系统失效。时系统能给出恰当的提示而不使系统失效。出错处理路径测试主要测试的错误有:出错处理路径测试主要测试的错误有:异常处理不当;异常处理不当;在程序自定义的出错处理程序段运行之前系统在程序自定义的出错处理程序段运行之前系统已介入;已介入;显示的出错信息难以理解或未能提供足够的错显示的出错信息难以理解或未能提供足够的错误定位信息;误定位信息;显示的错误与实际发生

60、的错误不符等。显示的错误与实际发生的错误不符等。模块边界条件的测试是单元测试中最后、模块边界条件的测试是单元测试中最后、也是最重要的一项测试任务,因为程序也是最重要的一项测试任务,因为程序最容易在边界上出错。可以采用边界值最容易在边界上出错。可以采用边界值分析技术针对边界值及其左、右值设计分析技术针对边界值及其左、右值设计测试用例,很有可能检测出新的错误。测试用例,很有可能检测出新的错误。通常,单元测试在编码阶段进行。在源程序代码编通常,单元测试在编码阶段进行。在源程序代码编制完成并经过编译检查和评审后,就可以开始进行制完成并经过编译检查和评审后,就可以开始进行单元测试。测试用例的设计应与评审

61、工作相结合,单元测试。测试用例的设计应与评审工作相结合,根据测试计划和详细设计信息设计测试数据,并应根据测试计划和详细设计信息设计测试数据,并应给出对应的期望结果。给出对应的期望结果。测试时需要为被测模块编制:测试时需要为被测模块编制:一个驱动模块(一个驱动模块(driver module)用来模拟被测用来模拟被测模块的上级调用模块,用它接收测试数据,并传送模块的上级调用模块,用它接收测试数据,并传送给被测模块,接收测试结果并输出。给被测模块,接收测试结果并输出。若干个桩模块(若干个桩模块(stub module)也称为存根模块,也称为存根模块,用来代替被测模块所调用的子模块。其作用是为被用来

62、代替被测模块所调用的子模块。其作用是为被测模块提供所需要的信息,因此,越简单越好。测模块提供所需要的信息,因此,越简单越好。测试软件(指驱动模块和桩模块)并不作为软测试软件(指驱动模块和桩模块)并不作为软件产品的一部分提交给用户。件产品的一部分提交给用户。有些模块用单元测试的方法不能进行充分的测有些模块用单元测试的方法不能进行充分的测试,可在集成测试的过程中完成详尽的测试。试,可在集成测试的过程中完成详尽的测试。提高模块内聚度可简化单元测试过程。提高模块内聚度可简化单元测试过程。MABCDEF驱动驱动模块模块A桩模块桩模块1桩模块桩模块2桩模块桩模块3测试测试用例用例测试测试结果结果集成测试集

63、成测试 将软件组装成系统的一种测试技将软件组装成系统的一种测试技术。因此,又称为组装测试或综合测试。术。因此,又称为组装测试或综合测试。集成测试旨在发现与接口有关的错误。这些错集成测试旨在发现与接口有关的错误。这些错误包括:误包括:数据通过接口时会丢失;数据通过接口时会丢失;一个模块的功能对另一个模块产生了不利影响;一个模块的功能对另一个模块产生了不利影响;几个子功能组合起来没有实现主功能;几个子功能组合起来没有实现主功能;全局数据结构出现错误;全局数据结构出现错误;误差的不断积累达到不能接受的程度。误差的不断积累达到不能接受的程度。集成测试有两种集成方式:集成测试有两种集成方式:非增量集成方

64、式;非增量集成方式;增量集成方式。增量集成方式。非增量集成方式是将经过单元测试的所非增量集成方式是将经过单元测试的所有模块一次性全部组装起来,然后进行有模块一次性全部组装起来,然后进行整体测试,最后得到所要求的软件系统。整体测试,最后得到所要求的软件系统。这种集成方式容易出现混乱,开始可能这种集成方式容易出现混乱,开始可能遇到一大堆错误,错误定位非常困难,遇到一大堆错误,错误定位非常困难,新旧错误交织在一起,会使测试变得更新旧错误交织在一起,会使测试变得更加困难。因此,一般不应采用这种集成加困难。因此,一般不应采用这种集成方式。方式。可分为自顶向下集成和自底向上集成两可分为自顶向下集成和自底向

65、上集成两种方法。种方法。1)自顶向下集成)自顶向下集成 自顶向下集成方式是从主控模块开始,自顶向下集成方式是从主控模块开始,按照软件的控制层次结构,以深度优先按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块组或广度优先的策略,逐步把各个模块组装在一起。装在一起。以主控模块作为驱动模块,其直接调用的下属以主控模块作为驱动模块,其直接调用的下属模块都用模块都用“桩模块桩模块”代替;代替;依据所选用的集成策略(深度优先或广度优先)依据所选用的集成策略(深度优先或广度优先)所规定的次序,每次只用一个实际模块替代一所规定的次序,每次只用一个实际模块替代一个对应的桩模块;个对应的桩模块;

66、每结合进一个模块立即测试一遍;每结合进一个模块立即测试一遍;为了检测加入新模块是否引入了新的错误,每为了检测加入新模块是否引入了新的错误,每次都需要进行回归测试(即部分或全部地重复次都需要进行回归测试(即部分或全部地重复以前做过的测试)。以前做过的测试)。重复执行步骤、,每重复一次,增加重复执行步骤、,每重复一次,增加一个模块,直至构造起整个软件结构为止。一个模块,直至构造起整个软件结构为止。深度优先策略深度优先策略:以:以M1作为驱动模块,作为驱动模块,首先将模块首先将模块M2加入其中,此时模块加入其中,此时模块M3、M4、M5、M6分别以桩模块分别以桩模块S3、S4、S5、S6代替,于是对由代替,于是对由M1、M2、S3、S4、S5、S6组成的子系统测试一遍;组成的子系统测试一遍;M1M2M4M5M6M7M8M3M1M2S4S3S5S6深度优先策略深度优先策略:用:用M5代替代替S5,并将,并将M8用桩模块用桩模块S8代替,对由代替,对由M1、M2、M5、S3、S4、S8、S6组成的子系统再测组成的子系统再测试一遍;试一遍;M1M2M4M5M6M7M8M3M1M2S4S3M5S6S

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

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

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


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