这种方法将可能发生的情况数量减少到更简单的分析级别 。集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动 。
也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元 。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价 。
集成测试是单元测试的逻辑扩展 。在现实方案中,集成是指多个单元的聚合,许多单元组合成模块,而这些模块又聚合成程序的更大部分,如分系统或系统 。
集成测试采用的方法是测试软件单元的组合能否正常工作,以及与其他组的模块能否集成起来工作 。最后,还要测试构成系统的所有模块组合能否正常工作 。
集成测试所持的主要标准是《软件概要设计规格说明》,任何不符合该说明的程序模块行为都应该加以记载并上报 。所有的软件项目都不能摆脱系统集成这个阶段 。
不管采用什么开发模式,具体的开发工作总得从一个一个的软件单元做起,软件单元只有经过集成才能形成一个有机的整体 。具体的集成过程可能是显性的也可能是隐性的 。
只要有集成,总是会出现一些常见问题,工程实践中 集成测试,几乎不存在软件单元组装过程中不出任何问题的情况 。从图1可以看出,集成测试需要花费的时间远远超过单元测试,直接从单元测试过渡到系统测试是极不妥当的做法 。
集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作 。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现 。
此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的 。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性 。
方法 集成测试应该考虑以下问题: 1、在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失; 2、各个子功能组合起来,能否达到预期要求的父功能; 3、一个模块的功能是否会对另一个模块的功能产生不利的影响; 4、全局数据结构是否有问题; 5、单个模块的误差积累起来,是否会放大,从而达到不 集成测试可接受的程度 。因此,单元测试后,有必要进行集成测试,发现并排除在模块连接中可能发生的上述问题,最终构成要求的软件子系统或系统 。
对子系统,集成测试也叫部件测试 。任何合理地组织集成测试,即选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形式、所用测试工具的类型、模块编号和测试的次序、生成测试用例和调试的费用 。
通常,有两种不同的组装方式:一次性组装方式和增值式组装方式 。实施 集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来 。
在制定测试计划时,应考虑如下因素: 1、是采用何种系统组装方法来进行组装测试; 2、组装测试过程中连接各个模块的顺序; 3、模块代码编制和测试进度是否与组装测试的顺序一致 4、测试过程中是否需要专门的硬件设备; 解决了上述问题之后,就可以列出各个模块的编制、测 集成测试试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果 。在缺少软件测试所需要的硬件设备时,应检查该硬件的交付日期是否与集成测试计划一致 。