理学集成测试_第1页
理学集成测试_第2页
理学集成测试_第3页
理学集成测试_第4页
理学集成测试_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

5.1集成测试概述5.1.1集成测试的概念

集成(Integration)是指把多个单元组合起来形成更大的单元。

集成测试(IntegrationTesting)是在假定各个软件单元已经通过了单元测试的前提下,检查各个软件单元之间的相互接口是否正确。

集成测试是根据实际情况对程序模块采用适当的集成测试策略组装起来,对系统的接口以及集成后的功能进行正确校验的测试工作。集成测试是针对程序整体结构的测试。5.1集成测试概述

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

(1)模块间的数据传递是否正确?(2)一个模块的功能是否会对另一个模块的功能产生错误的影响?(3)全局数据结构是否有问题,会不会被异常修改?(4)块组合起来的功能能否满足要求?(5)集成后,各个模块的累积误差是否会扩大,是否达到不可接受的程度?5.1集成测试概述软件开发过程与软件测试过程对应关系:5.1集成测试概述

单元测试对应结构图中的叶子结点,即单元结点;

系统测试对应整个产品;

其他各个层次的测试都属于集成测试的范畴。5.1集成测试概述

5.1.2集成测试与系统测试的区别

集成测试时介于单元测试与系统测试之间的过度阶段;但有时易于混淆集成测试和系统测试。一般从以下6方面区别它们:(1)测试对象:(2)测试时间:(3)测试方法:(4)测试内容:(5)测试目的:(6)测试角度:5.1集成测试概述

5.1.3集成测试与开发的关系

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

1.集成测试的层次软件的开发过程是一个从需求到概要设计、详细设计以及编码的逐步细化的过程,那么单元测试到集成测试再到系统测试就是一个逆向求证的过程。集成测试内部对于传统软件和面向对象的应用系统有两种层次的划分。

对于传统软件来讲,可以把集成测试划分为三个层次:模块内集成测试;子系统内集成测试;子系统间集成测试。

对于面向对象的应用系统来说,可以把集成测试分为两个阶段:类内集成测试;类间集成测试。5.1.4集成测试的层次与原则

2.集成测试的原则

(1)所有公共接口必须被测试到;(2)关键模块必须进行充分测试;(3)集成测试应当按一定层次进行;(4)集成测试策略选择应当综合考虑质量、成本和进度三者之间的关系;(5)集成测试应当尽早开始,并以概要设计为基础;(6)在模块和接口的划分上,测试人员应该和开发人员进行充分沟通;(7)当测试计划中的结束标准满足时,集成测试才能结束;(8)当接口发生修改时,涉及到的相关接口都必须进行回归测试;(9)集成测试应根据集成测试计划和方案进行,不能随意测试;(10)项目管理者应保证测试用例经过审核;(11)测试执行结果应当如实的记录。5.2集成测试策略

模块的集成方式有两种:

(1)非渐增式集成非渐增式集成方法首先对每个子模块进行测试(即单元测试),然后将所有模块全部集成起来一次性进行集成测试。(2)渐增式集成渐增式集成与“一步到位”的非渐增式集成相反,它把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误;对接口可以进行更彻底的测试;可以使用系统化的测试方法。因此。目前在进行集成测试时普遍采用渐增式集成方法。

集成测试需要的辅助模块:

模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相关联的其它模块。这些辅助模块可分为两种:

(1)驱动模块(driver):相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。

(2)桩模块(stub):用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进来,但不允许什么事情也不做。

被测模块、与它相关的驱动模块以及桩模块共同构成了一个“测试环境”,5.2集成测试策略

5.2.1非渐增式集成()

非渐增式集成方法首先对每个子模块进行测试(即单元测试),然后将所有模块全部集成起来一次性进行集成测试。

【例5.1】对如图5.3所示的程序,采用非渐增式集成方法进行集成测试。ABCDEFG

图5.3程序结构图5.2集成测试策略

测试A测试B测试C测试D测试E测试F测试G测试(A、B、CD、E、F、G)

图5.4非渐增式集成ABCDEFG

图5.3程序结构图

一次性集成测试方式的示例

一次性集成测试方式,先分别测试每个模块,再把所有模块按设计要求放在一起结合成所需要实现的程序。

图2-7是按照一次性集成测试方式的实例。图2-7(a)所示表示的是整个系统结构,共包含6个模块。具体测试过程如下:如图2-7(b)所示,为模块B配备驱动模块D1,来模拟模块A对B的调用。为模块B配备桩模块S1,来模拟模块C被B调用。对模块B进行单元测试;如图2-7(d)所示,为模块D配备驱动模块D3以及桩模块S2。对模块D进行单元测试;如图2-7(c)、图2-7(e)、图2-7(f)所示,为模块C、E、F分别配备驱动模块D2、D4、D5。对模块C、E、F分别进行单元测试;如图2-7(g)表示,为主模块A配备三个桩模块S3、S4、S5。对模块A进行单元测试;在将模块A、B、C、D、E分别进行了单元测试之后,再一次性进行集成测试;测试结束。图2-7一次性集成测试方式5.2集成测试策略

5.2.2渐增式集成

渐增式集成与“一步到位”的非渐增式集成相反,它把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误;对接口可以进行更彻底的测试;可以使用系统化的测试方法。因此。目前在进行集成测试时普遍采用渐增式集成方法

当使用渐增方式把模块结合到程序中去时:

自顶向下自底向上两种集成策略。5.2集成测试策略

1.自顶向下集成

自顶向下集成方法是一个日益为人们广泛采用的测试和组装软件的途径。从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于(及最终附属于)主控制模块的那些模块组装到程序结构中去,或者使用深度优先的策略,或者使用宽度优先的策略。

【例5.2】对如图5.3所示的程序,采用自顶向下集成方法,按照深度优先方式进行集成测试。5.2集成测试策略

ASBSCSD(a)测试AABSCSDSESF

(b)测试BABCSDEFSG

(e)测试CABCSDEFG

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

(c)测试EABSCSDEF

(d)测试F图5.5自顶向下集成ABCDEFG

图5.3程序结构图5.2集成测试策略

2.自底向上集成

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

【例5.3】对如图5.3所示的程序,采用自底向上集成方法,按照深度优先方式进行集成测试。5.2集成测试策略

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

图5.6自底向上集成测试(B、E、F)测试(C、G)ABCDEFG

图5.3程序结构图5.2集成测试策略

5.2.3三明治集成

三明治集成是一种混合增量式测试策略,综合了自顶向下和自底向上两种集成方法的优点。这种方法桩模块和驱动模块的开发工作都比较小,不过代价是在一定程度上增加了定位缺陷的难度。

【例5.4】对如图5.3所示的程序,以B模块所在层为界,采用三明治集成方法进行集成测试。5.2集成测试策略

测试E测试F测试G测试A测试(A、B、CD、E、F、G)

图5.7三明治集成测试(B、E、F)测试(C、G)ABCDEFG

图5.3程序结构图5.3集成测试用例设计

1.为系统运行设计用例

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

2.为正向测试设计用例可是用如下几种主要测试分析技术:(1)输入域测试。(2)输出域测试。(3)等价类划分。(4)状态转换测试。(5)规范导出法。5.3集成测试用例设计

3.为逆向测试设计用例

可使用的主要测试分析技术有:(1)错误猜测法。(2)基于风险的测试。(3)基于故障的测试。(4)边界值分析。(5)特殊值测试。(6)状态转换测试。5.3集成测试用例设计

4.为满足特殊需求设计用例

可使用的主要测试分析技术为规范导出法。

5.为高覆盖设计用例

可使用的主要测试分析技术有:(1)功能覆盖分析。(2)接口覆盖分析。5.4集成测试过程

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

制定集成测试计划设计集成测试实施集成测试执行集成测试评估集成测试图5.8集成测试过程5.4集成测试过程

1.计划阶段

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

5.4集成测试过程

2.设计阶段

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

3.实施阶段

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

4.执行阶段

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

5.4集成测试过程

5.评估阶段

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

5.5.1对象交互

1.汇集类测试可以使用测试原始类的方法来测试汇集类,测试驱动程序要创建一些实例,这些实例作为消息中的参数被传递给一个正在测试的集合。测试的目的主要是保证那些实例被正确从集合中移出。有些测试用例会说明集合对其容量所做的限制。假如在实际应用中可能要加入40或50条信息,那么生成的测试用例至少要增加50条信息。如果无法估算出一个有代表性的上限,那么就使用集合中的大量对象进行测试。5.5面向对象的集成测试

温馨提示

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

评论

0/150

提交评论