集成测试重视多个已通过单元测试的软件组件(模块、服务或子系统)之间的接口和交互。主要目的是发现模块集成时暴露的接口缺陷、数据流问题、交互思路错误和系统架构方面的设计缺陷。
测试方法和方法论
集成测试可采用多种方法,每种方法都有其适用情形和优缺点:
增量式集成方法
自上而下集成:从顶层模块开始,逐步集成下层模块,使用桩模块模拟未集成的下层功能
自下而上集成:从底层模块开始,逐步向上集成,需要驱动模块调用下层功能
三明治集成:结合自上而下和自下而上方法,从系统中间层开始双向集成
非增量式(大爆炸)集成方法
一次性集成所有模块后进行测试,仅适用于小型系统或风险较低的情形
测试重点和内容
集成测试的重视点和单元测试有本质区别,主要证实:
接口完整性:模块间的数据传递格式、类型、顺序是不是正确
数据一致性:跨模块的数据是不是保持一致性,无丢失或损坏
交互时序:模块间的调用顺序、同步/异步处理是不是正确
资源管理:共享资源(内存、文件、连接)的竞争和释放问题
错误传播:模块错误是不是能够正确传递和处理而不导致系统崩溃
环境要求和执行特点
集成测试需要比单元测试更接近真实的环境配置:
环境复杂性:需要搭建包含多个组件的测试环境
外部依赖:可能需要部分外部系统的测试替身或有限真实连接
执行速度:相比单元测试较慢,但仍需保持一定频率
问题诊断难度:缺陷定位比单元测试困难,需要更完善的日志和监控