集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。
简介
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的更大部分。方法是测试片段的组合,并最终扩展成进程,将模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。
集成测试测试组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。一个有效的集成测试有助于解决相关的软件与其它系统的兼容性和可操作性的问题。
集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价。
集成测试是单元测试的逻辑扩展。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统。集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作。最后,还要测试构成系统的所有模块组合能否正常工作。集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报。
所有的软件项目都不能摆脱系统集成这个阶段。不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体。具体的集成过程可能是显性的也可能是隐性的。只要有集成,总是会出现一些常见问题,工程实践中,几乎不存在软件单元组装过程中不出任何问题的情况。从图 1 可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法。
目标
集成测试的目标是按照设计要求使用那些通过单元测试的构件来构造程序结构。单个模块具有高质量但不足以保证整个系统的质量。有许多隐蔽的失效是高质量模块间发生非预期交互而产生的。以下两种测试技术是用于集成测试:
1)功能性测试。使用黑盒测试技术针对被测模块的接口规格说明进行测试。
2)非功能性测试。对模块的性能或可靠性进行测试。
另外,集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性。
集成测试是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能。并且对以前的集成进行回归测试。
实施
集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来。在制定测试计划时,应考虑如下因素:
1、是采用何种系统组装方法来进行组装测试;
2、组装测试过程中连接各个模块的顺序;
3、模块代码编制和测试进度是否与组装测试的顺序一致
4、测试过程中是否需要专门的硬件设备;
解决了上述问题之后,就可以列出各个模块的编制、测试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果。
在缺少软件测试所需要的硬件设备时,应检查该硬件的交付日期是否与集成测试计划一致。例如,若测试需要数字化仪和绘图仪,则相应测试应安排在这些设备能够投入使用之时,并需要为硬件的安装和交付使用保留一段时间,以留下时间余量。此外,在测试计划中需要考虑测试所需软件(驱动模块、桩模块、测试用例生成程序等)的准备情况。
单元测试后,有必要进行集成测试,发现并排除在模块连接中可能发生的上述问题,最终构成要求的软件子系统或系统。对子系统,集成测试也叫部件测试。
任何合理地组织集成测试,即选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形式、所用测试工具的类型、模块编号和测试的次序、生成测试用例和调试的费用。通常,有两种不同的组装方式:一次性组装方式和增值式组装方式。
完成标准
怎样判定集成测试过程完成了,可按以下几个方面检查:
1、成功地执行了测试计划中规定的所有集成测试;
2、修正了所发现的错误;
3、测试结果通过了专门小组的评审。
集成测试应由专门的测试小组来进行,测试小组由有经验的系统设计人员和程序员组成。整个测试活动要在评审人员出席的情况下进行。
在完成预定的组装测试工作之后,测试小组应负责对测试结果进行整理、分析,形成测试报告。测试报告中要记录实际的测试结果、在测试中发现的问题、解决这些问题的方法以及解决之后再次测试的结果。此外还应提出不能解决、还需要管理人员和开发人员注意的一些问题,提供测试评审和最终决策,以提出处理意见。
内容
集成测试过程
根据 IEEE 标准 集成测试划分为 4 个阶段:计划阶段,设计阶段,实现阶段,执行阶段(实施阶段)
计划阶段
1)时间安排 概要设计完成评审后大约一个星期
2)输入 需求规格说明书 概要设计文档 产品开发计划路标
3)入口条件 概要设计文档已经通过评审
4)活动步骤 1.定被测试对象和测试范围 2.评估集成测试被测试对象的数量及难度,即工作量 3.确定角色分工和作任务 4.标识出测试各阶段的时间,任务,约束等条件 5.考虑一定的风险分析及应急计划 6.考虑和准备集成测试需要的测试工具,测试仪器,环境等资源 7.考虑外部技术支援的力度和深度,以及相关培训安排 8.定义测试完成标准
5)输出 集成测试计划
6)出口条件 集成测试计划通过概要设计阶段基线评审
设计阶段 1)时间安排详细设计阶段开始 2)输入需求规格说明书概要设计集成测试计划 3)入口条件概要设计基线通过评审 4)活动步骤 1.被测对象结构分析 2.集成测试模块分析 3.集成测试接口分析 4.集成测试策略分析 5.集成测试工具分析 6.集成测试环境分析 7.集成测试工作量估计和安排。 5)输出集成测试设计(方案) 6.出口条件集成测试设计通过详细设计基线评审。 实现阶段 1)时间安排在编码阶段开始后进行 2)输入需求规格说明书概要设计集成测试计划集成测试设计 3)入口条件详细设计阶段 4)活动步骤:1.集成测试用例设计 2.集成测试代码设计(如果需要)3.集成测试脚本(如果需要)4.集成测试工具(如果需要) 5)输出集成测试用例集成测试规程集成测试代码集成测试脚本集成测试工具 6)出口条件测试用例和测试规程通过编码阶段基线评审 执行阶段 1)时间安排单元测试已经完成后就可以开始执行集成测试了 2)输入 需求规格说明书概要设计集成测试计划集成高度设计集成测试例集成测试规程集成测试代码(如果有)集成测试脚本集成测试工具详细设计代码单元测试报告 3)入口条件单元测试阶段已经通过基线化评审 4)活动步骤执行集成测试用例回归集成测试用例撰写集成测试报告 5)输出集成测试报告 6)出口条件集成测试报告通过集成测试阶段基线评审
工作内容
常用方案选型
综述
集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang 集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。
自顶向下测试
自顶向下集成(Top-Down Integration)方式是一个递增的组装软件结构的方法。从主控模块(主程序)开始沿控制层向下移动,把模块一一组合起来。分两种方法:
第一:先深度:按照结构,用一条主控制路径将所有模块组合起来;
第二:先宽度:逐层组合所有下属模块,在每一层水平地沿着移动。
组装过程分以下五个步骤:
步骤一:用主控模块作为测试驱动程序,其直接下属模块用承接模块来代替;
步骤二:根据所选择的集成测试法(先深度或先宽度),每次用实际模块代替下属的承接模块
步骤三:在组合每个实际模块时都要进行测试;
步骤四:完成一组测试后再用一个实际模块代替另一个承接模块;
步骤五:可以进行回归测试(即重新再做所有的或者部分已做过的测试),以保证不引入新的错误。
计划书
引言
1.1 编写目的
本文是描述****集成测试的大纲文章,主要描述如何进行集成测试活动?如何控制集成测试活动?集成测试活动的流程以及集成测试活动的工作安排。本文主要的读者对象是项目负责人,集成部门经理,集成测试设计师。
1.2 背景
项目名称:***集成测试
项目相关对象:******************
1.3 定义
**********:********************
1.4 参考资料
《*********》