集成测试概述

集成测试的定义

集成测试又称组装测试,是在单元测试的基础上,将所有模块按照设计要求组装成子系统或系统进行的测试活动。

集成测试的目的

确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。

集成测试的测试内容

  • 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失
  • 各个子功能组合起来,能否达到预期要求的父功能
  • 一个模块的功能是否会对另一个模块的功能产生不利的影响
  • 全局数据结构是否有问题
  • 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度

集成测试的方法

通常使用黑盒测试方法

集成测试的原则

  • 要测试所有的公共接口,尤其是那些与系统相关联的外部接口,测试的重点是要检测数据的交换,传递和控制管理过程,还包括处理的次数。
  • 必须对关键模块进行充分测试。

系统中关键模块应具有一个或多个以下特性:

  1. 和多个软件需求有关,或与关键功能有关
  2. 处于程序控制结构的顶层
  3. 本身是复杂或者容易出错的
  4. 含有确定性的性能需求
  5. 被频繁使用的模块
  • 集成测试应当按一定的层次进行
  • 集成测试的策略选择应当综合考虑质量,成本和进度之间的关系
  • 集成测试应当尽早开始,并以总体设计为基础
  • 在模块与接口的划分上,测试人员应当和开发人员进行充分的沟通
  • 测试执行结果应当被如实记录

集成测试步骤

根据IEEE标准集成测试划分为5个阶段:计划阶段,设计阶段,实施阶段,执行阶段和评估阶段

计划阶段

时间安排 :应在概要设计阶段完成

输入 :《需求规格说明书》,《概要设计文档》和《产品开发计划书》

入口条件:概要设计文档已经通过评审

活动步骤

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

输出 :《集成测试计划》
出口条件 :集成测试计划通过概要设计阶段基线评审

设计阶段

时间安排 :详细设计阶段开始

输入 :《需求规格说明书》,《概要设计文档》和《集成测试计划》

入口条件:概要设计基线通过评审

活动步骤

  • 被测对象结构分析
  • 集成测试模块分析
  • 集成测试接口分析
  • 集成测试策略分析
  • 集成测试工具分析
  • 集成测试环境分析
  • 集成测试工作量估计和安排

输出 :集成测试设计方案
出口条件 :集成测试设计通过详细设计基线评审

实施阶段

时间安排 :在编码阶段开始后进行

输入 :需求规格说明书,概要设计,集成测试计划和集成测试设计

入口条件:详细设计阶段

活动步骤

  • 集成测试用例设计
  • 集成测试规程设计
  • 集成测试代码设计(如果需要)
  • 集成测试脚本(如果需要)
  • 集成测试工具(如果需要)

输出 :集成测试设计方案
出口条件 :集成测试设计通过详细设计基线评审

执行阶段

时间安排 :单元测试已经完成后就可以执行集成测试了

输入 :需求规格说明书,概要设计,集成测试计划,集成测试设计,集成测试用例,集成测试规程,集成测试代码(如果有),集成测试脚本,集成测试工具,详细设计,代码和单元测试报告

入口条件:单元测试阶段已经通过基线化评审

活动步骤

  • 执行集成测试用例
  • 回归集成测试用例
  • 撰写集成测试报告

输出 :集成测试报告
出口条件 :集成测试报告通过集成测试阶段基线审评。

集成测试策略

集成策略是在测试对象分析的基础上,描述软件模块集成(组装)的方式和方法。集成策略可分为非增量式集成和增量式集成两大类,增量式集成又可按照实施的次序不同分为:自顶向下的增量式集成测试;自底向上的增量式集成测试和混合增量式集成测试(“三明治”集成)

非增量式集成策略

非增量式集成测试,又叫大爆炸式集成(Big Bang),采用一步到位的方法来构造测试对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。

优点

  • 方法简单
  • 允许多测试人员同时并行工作,人力物力资源利用率较高

缺点

  • 必须为每个模块准备相应的驱动模块和桩模块,测试成本较高
  • 一旦集成后包含多种错误,难以纠正

适应范围 :一个维护型或被测试系统较小

增量式集成策略

增量式集成方式又被称为渐增式组装,它的集成是逐步实现的。逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。

自顶向下的集成策略

按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序),然后依照控制层次结构向下进行集成,逐步将各个模块集成到已经集成的整体中。向下集成的过程中,可以按照深度优先和广度优先的顺序集成。

深度优先组装方式

在这里插入图片描述
:s1 s2 s3代表桩模块

广度优先组装方式

在这里插入图片描述
优点

  • 不需要设计驱动程序
  • 能尽早地对程序的主要控制和决策机制进行检验
  • 能在早期发现上层模块的接口错误

缺点

  • 桩的开发量大
  • 底层验证被推迟
  • 底层组件测试不充分

适用范围

  • 产品控制结构比较清晰和稳定
  • 高层接口变化较小
  • 底层接口未定义或经常可能被修改
  • 产品控制组件具有较大的技术风险,需要尽早被验证
  • 希望尽早能看到产品的系统功能行为

自底向上的集成策略

从具有最小依赖性的底层组件开始,按照依赖关系树的结构,逐层向上集成,以检验系统的稳定性。

这是最常用的集成策略

在这里插入图片描述
:d1 d2 d3为驱动模块
优点

  • 对底层组件行为较早验证
  • 工作最初可以并行集成,比自顶向下效率高
  • 减少了桩的工作量
  • 能较好锁定软件故障所在位置

缺点

  • 驱动的开发工作量大
  • 对高层的验证被推迟,设计上的错误不能被及时发现

适用范围

  • 适应于底层接口比较稳定
  • 高层接口变化比较频繁
  • 底层组件较早被完成

混合增量式集成策略

把系统划分成三层,中间一层为目标层,目标层之上采用自顶向下集成,之下采用自底向上集成
在这里插入图片描述
优点 集合了自顶向下和自底向上两种策略的优点
缺点 中间层测试不充分
适用范围 适应于大部分软件开发项目

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐