软件测试技术:集成测试_第1页
软件测试技术:集成测试_第2页
软件测试技术:集成测试_第3页
软件测试技术:集成测试_第4页
软件测试技术:集成测试_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

集成测试目标集成测试4-1集成测试概念、层次、目的4-2集成测试的模式4-3集成测试用例和过程4-4面向对象的集成测试4-1集成测试的概念集成(Integration)是指把多个单元组合起来形成更大的单元。集成测试(IntegrationTesting)是在假定各个软件单元已经通过了单元测试的前提下,检查各个软件单元之间的相互接口是否正确。也称为组装测试、联合测试、子系统测试或部件测试

为什么总是集成不起来?4-1集成测试目的

集成测试主要关注下列问题:

1、各个模块之间的数据是否能够按期望值传递;2、是否仍然存在单元测试时所没发现的资源竞争问题;

3、集成到一起能否实现所期望的父功能;(如:计算器运算)4、兼容性,一个模块是否对其他与之相关的模块产生负面影响;5、集成后,每个模块的误差是否会累计扩大,是否会达到了不可接受的程度;4-1集成测试与开发的关系

集成测试是和软件开发过程中的概要设计阶段相对应的,而在软件概要设计中关于整个系统的体系结构就是集成测试用例输入的基础。开发

需求分析概要设计详细设计编码单元测试集成测试系统测试测试

4-1集成测试的层次对于传统软件来说,按集成粒度不同,可以把集成测试分为3个层次,即:

(1)模块间集成测试(2)子系统内集成测试

(3)子系统间集成测试4-1集成测试的原则

(1)所有公共接口必须被测试到;(2)关键模块必须进行充分测试;(3)集成测试应当按一定层次进行;(4)集成测试策略选择应当综合考虑质量、成本和进度三者之间的关系;(5)集成测试应当尽早开始,并以概要设计为基础;(6)在模块和接口的划分上,测试人员应该和开发人员进行充分沟通;(7)当测试计划中的结束标准满足时,集成测试才能结束;(8)当接口发生修改时,涉及到的相关接口都必须进行回归测试;(9)集成测试应根据集成测试计划和方案进行,不能随意测试;(10)项目管理者应保证测试用例经过审核;(11)测试执行结果应当如实的记录。如何进行集成测试集成测试分析(关键)类似于软件开发之前:系统分析体系结构分析模块分析接口分析风险分析可测试性分析集成测试策略分析如何进行集成测试1.体系结构分析首先,跟踪需求分析,对要实现的系统划分出结构层次图。其次,是对系统各个组件之间的依赖关系进行分析,然后据此确定集成测试的粒度,即集成模块的大小。2.模块分析(体系结构的细化)

1)确定本次要测试的模块

2)与之相关的模块按优先级排列

3)集成;如何进行集成测试3.接口分析

1)确定系统的边界、子系统的边界和模块的边界。

2)确定模块内部的接口。

3)确定子系统内模块间接口。

4)确定子系统间接口。

5)确定系统与操作系统、硬件、第三方软件的接口。如何进行集成测试4.风险分析风险通常被分为3种类型:

1)项目风险:项目管理和项目环境的风险。如:人员不足

2)商业风险:领域的相关概念及规则变更。如:需求变更

3)技术风险:这是针对应用程序的具体实现而言的,主要和代码级的测试有关。

风险分析:是一个定义风险并且找出阻止潜在的问题变成现实的方法的过程。4-2集成测试的模式4-2集成测试的模式渐增式测试模式与非渐增式测试模式非渐增式测试模式ABCDEFG

程序结构图测试A测试B测试C测试D测试E测试F测试G测试(A、B、CD、E、F、G)

非渐增式集成非渐增式测试模式:先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,如大棒方法。渐增式集成渐增式测试模式:把下一个要测试的模块同已经测试好的模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试。当使用渐增方式把模块结合到程序中去时,有自顶向下和自底向上两种集成策略。自顶向下和自底向上集成策略驱动程序/驱动模块(driver),用以模拟被测模块的上级模块。驱动模块在集成测试中接受测试数据,把相关的数据传送给被测模块,启动被测模块,并打印出相应的结果。桩程序/桩模块(stub),也有人称为存根程序,用以模拟被测模块工作过程中所调用的模块。桩模块由被测模块调用,它们一般只进行很少的数据处理,例如打印入口和返回,以便于检验被测模块与其下级模块的接口自顶向下集成自顶向下集成方法是一个日益为人们广泛采用的测试和组装软件的途径。从顶层控制(主控模块)开始,采用同设计顺序一样的思路对被测系统进行测试,来验证系统的稳定性。自顶向下集成的方法<1>把主控模块作为测试驱动,所有与主控模块直接相连的模块作为桩模块;

<2>与下一层集成。根据集成的方式(深度优先或者广度优先),逐渐使用实际模块替换相应的下层桩模块;再用桩代替他们的直接下属模块,与已通过测试的模块或子系统组装成新的子系统。

<3>进行回归测试,确定集成后没有引入错误;

<4>从上述过程中的第二步开始重复执行,直到所有模块都已经集成到系统中为止。ASBSCSD(a)测试AABSCSDSESF

(b)测试BABCSDEFSG

(e)测试CABCSDEFG

(f)测试GABCDEFG(g)测试DABSCSDESF

(c)测试EABSCSDEF

(d)测试F

自顶向下集成自顶向下集成(Top-downIntegration)ABCDEFG

程序结构图自顶向下集成(Top-downIntegration)自顶向下法的主要优缺点自顶向下集成(Top-downIntegration)优点<1>较早地验证主要的控制和判断点。 <2>可以首先实现和验证一个完整的软件功能,增强信心; <3>减少了测试驱动程序开发和维护的费用;<4>可以和开发设计工作一起并行执行集成测试,能够灵活的适应目标环境; <5>容易进行故障隔离和错误定位。缺点:桩模块的开发和维护费用大。

自底向上集成

自底向上测试从“原子”模块(即在软件结构最底层的模块)开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要桩模块。自底向上方法

<1>从最底层的模块开始组装,组合成一个能够完成制定的软件子功能的构件;

<2>编制驱动程序,协调测试用例的输入与输出;

<3>测试集成后的构件;

<4>使用实际模块代替驱动程序,按程序结构向上组装测试后的构件;

<5>重复上面的第二步,直到系统的最顶层模块被加入到系统中为止。自底向上集成

(Bottom-upIntegration)测试E测试F测试G测试D测试(A、B、CD、E、F、G)

自底向上集成测试(B、E、F)测试(C、G)自底向上法的主要优缺点ABCDEFG

程序结构图优点减少了桩模块的工作量;

容易对错误进行定位。缺点直到最后一个模块加进去之后才能看到整个系统的框架;只有到测试过程的后期才能发现时序问题和资源竞争问题;驱动模块的设计工作量大;

不能被及时发现高层模块设计上的错误。混合策略

(ModifiedTop-downIntegration)混合法:对软件结构中较上层,使用的是“自顶向下”法;对软件结构中较下层,使用的是“自底向上”法,两者相结合

三明治方法首先,确定以哪一层为界来决定使用三明治集成策略(在下页图中,我们确定以B模块为界);其次,对模块B及其所在层下面的各层使用自底向上的集成策略;再次,对模块B所在层上面的层次使用自顶向下的集成策略;然后,把模块B所在层各模块同相应的下层集成;最后,对系统进行整体测试。三明治集成方法(SandwichIntegration)采用三明治方法的优点是:它将自顶向下和自底向上的集成方法有机地结合起来,不需要写桩程序因为在测试初自底向上集成已经验证了底层模块的正确性。采用这种方法的主要缺点是:在真正集成之前每一个独立的模块没有完全测试过。改善的三明治集成方法改进的三明治集成方法,不仅自两头向中间集成,而且保证每个模块得到单独的测试,使测试进行得比较彻底。改进三明治充分发挥测试的并行性,弥补三明治集成中不能充分测试中间层的缺点。并行测试目标层,目标层上面一层,目标层下面一层。并行测试目标层与目标层上面一层的集成和目标层与目标层下面一层的集成。大棒集成方法

(Big-bangIntegration)采用大棒集成方法,先是对每一个子模块进行测试(单元测试阶段),然后将所有模块一次性的全部集成起来进行集成测试。因为所有的模块一次集成的,所以很难确定出错的真正位置、所在的模块、错误的原因。这种方法并不推荐在任何系统中使用,适合在规模较小的应用系统中使用。大棒集成方法一次性组装、整体拼装

目的:尽可能缩短测试时间,使用最少的测试用例。优点

(1)可以并行调试所有模块。(2)需要的测试用例数目少。(3)测试方法简单、易行。缺点(1)不能充分对各个模块之间的接口进行充分测试。(2)大量的错误,难以定位。医旧病,生新病。(3)使集成测试通过,也会遗漏很多错误。大棒集成方法适用范围只需要修改或增加少数几个模块的前期产品稳定的项目;功能少,模块数量不多,程序逻辑简单,并且每个组件都已经过充分单元测试的小型项目;几种集成方法性能的比较自底向上自顶向下混合策略大棒三明治改进三明治集成早早早晚早早基本程序能工作时间晚早早晚早早需要驱动程序是否是是是是需要桩程序否是是是是是工作并行性中低中高中高特殊路径测试容易难容易容易中等容易计划与控制容易难难容易难难4-3用例设计与过程4-3集成测试用例设计

1.为系统运行设计用例

可使用的主要测试分析技术有:(1)等价类划分。(2)边界值分析。(3)基于决策表的测试。4-3集成测试用例设计

2.为正向测试设计用例是否按照概要设计实现了预期的功能可是用如下几种主要测试分析技术:(1)输入域测试。(2)输出域测试。(3)等价类划分。(4)状态转换测试。(5)规范导出法。4-3集成测试用例设计

3.为逆向测试设计用例被测接口是否实现了需求规格没有描述的功能检查规格说明中可能出现的遗漏或者错误(如:非法访问)可使用的主要测试分析技术有:(1)错误猜测法。(2)基于风险的测试。(3)基于故障的测试。(4)边界值分析。(5)特殊值测试。(6)状态转换测试。4-3集成测试用例设计4.为满足特殊需求设计用例可使用的主要测试分析技术为规范导出法,安全性、性能、可靠性等。

5.为高覆盖设计用例可使用的主要测试分析技术有:(1)功能覆盖分析。(2)接口覆盖分析。4-3集成测试用例设计6、测试用例补充需求变更,功能增加等7、注意事项成本、进度和质量的平衡。重点突出,在有限的时间内进行穷尽的测试是不可能的。4-3集成测试过程

一个测试从开发到执行遵循一个过程,不同的组织对这个过程的定义会有所不同。根据集成测试不同阶段的任务,可以把集成测试划分为5个阶段:计划阶段、设计阶段、实施阶段、执行阶段、评估阶段。制定集成测试计划设计集成测试实施集成测试执行集成测试评估集成测试集成测试过程4-3集成测试过程

1.计划阶段(1)确定被测试对象和测试范围。(2)评估集成测试被测试对象的数量及难度,即工作量。(3)确定角色分工和划分工作任务。(4)表识出测试各个阶段的时间、任务、约束条件。(5)考虑一定的风险分析机应急计划。(6)考虑和准备集成测试需要的测试工具、测试仪器、环境等资源。(7)考虑外部技术支援的力度和深度,以及相关培训安排;定义测试完成标准。4-3集成测试过程

2.设计阶段(1)被测对象结构分析。(2)集成测试模块分析。(3)集成测试接口分析。(4)集成测试策略分析。(5)集成测试工具分析。(6)集成测试环境分析。(7)集成测试工作量估计和安排。4-3集成测试过程

3.实施阶段(1)集成测试用例设计。(2)集成测试规程设计。(3)集成测试代码设计。(4)集成测试脚本开发。(5)集成测试工具开发或选择。4-3集成测试过程

4.执行阶段测试人员在单元测试完成以后就可以执行集成测试。当然,须按照相应的测试规程,借助集成测试工具,并把需求规格说明书、概要设计、集成测试计划、集成测试设计、集成测试用例、集成测试规程、集成测试代码、集成测试脚本作为测试执行的依据来执行集成测试用例。测试执行的前提条件就是单元测试已经通过评审。当测试执行结束后,测试人员要记录下每个测试用例之行后的结果,填写集成测试报告,最后提交给相关人员评审。4-3集成测试过程

5.评估阶段

当集成测试执行结束后,要召集相关人员,如:测试设计人员、编码人员、系统设计人员等队测试结果进行评估,确定是否通过集成测试。

4-4面向对象的集成测试4-4面向对象的集成测试对象交互1.汇集类测试

可以使用测试原始类的方法来测试汇集类,测试驱动程序要创建一些实例,这些实例作为消息中的参数被传递给一个正在测试的集合。测试的目的主要是保证那些实例被正确从集合中移出。有些测试用例会说明集合对其容量所做的限制。假如在实际应用中可能要

温馨提示

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

评论

0/150

提交评论