软件工程-第5章第4节_第1页
软件工程-第5章第4节_第2页
软件工程-第5章第4节_第3页
软件工程-第5章第4节_第4页
软件工程-第5章第4节_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

5.4测试过程5.4.1测试准备软件测试时需要准备以下三种工具:(1)软件配置:指需求说明书、设计说明书和源程序等。(2)测试配置:指测试方案、测试用例和测试驱动程序等。(3)测试工具:指计算机辅助测试的有关工具。5.4.1测试准备

软件经过测试以后,要根据预期的结果对测试的结果进行分析比较,对于出现的错误要进行纠错,并修改相应文档。修改后的程序往往要经过再次测试,直到满意为止。

在分析结果的同时,要对软件可靠性进行评价,如果总是出现需要修改设计的严重错误,软件的质量和可靠性就值得怀疑,同时也需进一步测试;

如果软件功能能正确完成,出现的错误易修改,可以断定软件的质量和可靠性可以接受或者所做的测试还不足以发现严重错误;如果测试发现不了错误,那么可以断是定测试方案、用例考虑的不够细致充分,错误仍潜伏在软件中,应考虑重新制定测试方案,设计测试用例。5.4.2软件测试的步骤及与各开发阶段的关系

软件产品在交付使用之前要经过哪些测试呢?一般要经过单元测试、集成测试、确认测试和系统测试。图5.4为软件测试经历的步骤。

单元测试指对源程序中每一个程序单元进行测试,检查各个模块是否正确实现规定的功能,从而发现模块在编码中或算法中的错误。该阶段涉及编码和详细设计的文档。各模块经过单元测试后,将各模块组装起来进行集成测试,以检查与设计相关的软件体系结构的有关问题。确认测试主要检查已实现的软件是否满足需求说明书中确定了的各种需求。系统测试指把已确定的软件与其他系统元素(如硬件、其他支持软件、数据和人工等)结合在一起进行测试。图5.5列出了软件工程领域中的测试与软件开发各阶段之间的关系。5.4.2软件测试的步骤及与各开发阶段的关系5.4.3单元测试1.测试的内容单元测试主要针对模块的如下5个基本特征进行测试。1)模块接口模块接口测试主要检查数据能否正确地通过模块。检查的主要内容是参数的个数、属性及对应关系是否一致。

2)局部数据结构局部数据结构主要检查以下几方面的错误:说明不正确或不一致;初始化或缺省值错误;变量名未定义或拼写错误;数据类型不相容;上溢、下溢或地址错等。除了检查局部数据外,还应注意全局数据与模块的相互影响。5.4.3单元测试3)重要的执行路径

重要模块要进行基本路径测试,仔细地选择测试路径是单元测试的一项基本任务。注意选择测试用例能发现不正确的计算、错误的比较或不适当的控制流而造成的错误。

计算中常见的错误有:算术运算符优先次序不正确;运算方式不正确;初始化方式不正确;精确度不够;表达式的符号表示错误等。

条件及控制流向中常见的错误有:不同的数据类型比较;逻辑运算符不正确或优先次序错误;由于精确度误差造成的相等比较出错;循环终止条件错误或死循环;错误地修改循环变量等。5.4.3单元测试4)错误处理

错误处理主要测试程序对错误处理的能力,检查是否存在以下问题:不能正确处理外部输入错误或内部处理引起的错误;对发生的错误不能正确描述或描述内容难以理解;在错误处理之前,系统已进行干预等。5)边界条件

程序最容易在边界上出错,如输入/输出数据的等价类边界,选择条件和循环条件的边界,复杂数据结构(如表)的边界等都应进行测试。5.4.3单元测试2.测试的方法

由于被测试的模块往往不是独立的程序,它处于整个软件结构的某一层位置上,被其他模块调用或调用其他模块,其本身不能进行单独运行,因此在单元测试时,需要为被测模块设计驱动模块(driver)和桩(stub)模块。驱动模块的作用是用来模拟被测模块的上级调用模块,功能要比真正的上级模块简单得多,它只完成接受测试数据,以上级模块调用被测模块的格式驱动被测模块,接收被测模块的测试结果并输出。5.3.1白盒技术

桩模块用来代替被测模块所调用的模块。它的作用是返回被测模块所需的信息。图5.6表示为了测试软件结构(图5.6(a))中的模块B,建立模块B的测试环境(图5.6(b))。

驱动模块和桩模块的编写给测试带来额外开销,但是与被测模块有联系的那些模块(如模块M、D、E)在尚未编写好或未测试的情况下,设计驱动模块和桩模块是必要的。5.4.4集成测试1.集成测试的目的

集成测试是指在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试,故也称组装测试或联合测试。实践证明,单个模块能正常工作,组装后不见得仍能正常工作,这是因为:(1)单元测试使用的驱动模块和桩模块,与它们所代替的模块并不完全等效,因此单元测试有不彻底、不严格的情况。(2)各个模块组装起来,穿越模块接口的数据可能会丢失。(3)一个模块的功能可能会对另一个模块的功能产生不利的影响。(4)各个模块的功能组合起来可能达不到预期要求的功能。(5)单个模块可以接受的误差,组装起来可能累积和放大到不能接受的程度。(6)全局数据可能会出现问题。

5.4.4集成测试

2.集成测试的方法集成测试的方法主要有非渐增式测试和渐增式测试。(1)非渐增式测试。该测试是首先对每个模块分别进行单元测试,然后再把所有的模块按设计要求组装在一起进行的测试。(2)渐增式测试。该测试是逐个把未经过测试的模块组装到已经测试过的模块上去,进行集成测试。每加入一个新模块进行一次集成的测试,重复此过程直至程序组装完毕。5.4.4集成测试渐增式与非渐增式测试的区别有如下几点:非渐增式测试方法把单元测试和集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而渐增式测试把单元测试与集成测试合在一起,同时完成。(2)非渐增式测试需要更多的工作量,因为每个模块都需要驱动模块和桩模块,而渐增式测试利用已测试过的模块作为驱动模块或桩模块,因此工作量较少。(3)渐增式测试可以较早地发现接口之间的错误,非渐增式测试在最后组装时才发现。(4)渐增式测试有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式测试发现接口错误要推迟到最后,很难判断是哪一部分接口出错。5.4.4集成测试(5)渐增式测试比较彻底,已测试的模块和新的模块组装在一起再测试。(6)渐增式测试占用的时间较多,但非渐增式测试需更多的驱动模块、模块,也占用一些时间。(7)非渐增式测试开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。考虑到目前计算机硬件价格下降,人工费用上升,软件错误纠正越早代价越低等特点,采用渐增式测试方法测试较好。5.4.4集成测试3.渐增式测试组装模块的方法1)自顶向下结合

该方法不需要编写驱动模块,只需要编写桩模块。其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合进来,这里又有两种组合策略:(1)深度优先策略:先从软件结构中选择一条主控路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其他需要优先考虑的路径。主控路径一般选择系统的关键路径或输入、输出路径。5.4.4集成测试图5.7是一个软件结构图。图5.8是自顶向下以深度优先策略组装模块的例子,其中Si模块代表桩模块。图5.7一个软件结构图图5.8采用深度优先策略自顶向下结合模块的过程5.4.4集成测试(2)宽度优先策略:逐层结合直接下属的所有模块。如对于图5.7的例子,结合顺序为M、A、B、C、D、E。

自顶向下测试的优点是能较早地发现高层模块接口、控制等方面的问题;初期的程序概貌可让人们较早地看到程序的主功能,增强开发人员的信心。

自顶向下测试的缺点是桩模块不可能提供完整的信息,因此把许多测试推迟到用实际模块代替桩模块之后;设计较多的桩模块,测试开销大;早期不能并行工作,不能充分利用人力。5.4.4集成测试2)自底向上结合该方法仅需编写驱动模块,不需编写桩模块。其步骤如下:(1)把低层模块组合成实现一个个特定子功能的族(如图5.9所示)。(2)为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出(如图5.10所示,其中di模块为驱动模块)。5.4.4集成测试(3)对模块族进行测试。(4)按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族(如图5.11所示)。图5.11形成3个更大的族进一步测试5.4.4集成测试(5)重复(2)至(4)步,直至软件系统全部测试完毕。自底向上测试的优点是:随着上移,驱动模块逐步减少,测试开销小一些;比较容易设计测试用例;早期可以并行工作;低层模块的错误能较早发现。其缺点是:系统整体功能最后才能看到;上层模块错误发现的晚,上层模块的问题是全局性的问题,影响范围大。

由于自顶向下渐增式测试和自底向上渐增式测试的方法各有利弊,实际应用时,应根据软件的特点、任务的进度安排选择合适的方法。一般是将这两种测试方法结合起来,低层模块使用自底向上结合的方法组装成子系统,然后由主模块开始自顶向下对各子系统进行集成测试。5.4.5确认测试确认测试阶段有进行确认测试与软件配置审查两项工作。1.确认测试

确认测试一般是指在模拟环境下运用黑盒测试方法,由专门测试人员和用户参加的测试。确认测试需要需求说明书、用户手册等文档,要制定测试计划,确定测试的项目,说明测试内容,描述具体的测试用例。测试用例应选用实际运用的数据。测试结束后,应写出测试分析报告。

经过确认测试后,可能有两种情况:(1)功能、性能与需求说明一致,该软件系统是可以接受的。(2)功能、性能与需求说明有差距,要提交一份问题报告。对这样的错误进行修改,工作量非常大,必须同用户协商。5.4.5确认测试2.软件配置审查

温馨提示

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

评论

0/150

提交评论