【车载开发系列】常见集成测试的方法
常见集成测试的方法
- 【车载开发系列】常见集成测试的方法
- 一. 自底向上集成
- 二. 自顶向下集成
- 三. 三明治集成(Sandwich Integration)
- 四. 分层集成{Layers Integration}
- 五. 基干集成(Backbone Integration)
- 六. 基于功能的集成(Function-Based Integration)
- 七. 基于进度的集成(Schedule-Based Integration)
- 八. 基于风险的集成(Risk-Based Integration)
- 九. 基于事件(消息)的集成(Event/Message-Based Integration)
- 十.基于使用的集成(Use-Based Integration)
- 十一. 分布式集成(Distributed Services Integration)
- 十二. 客户/服务器的集成(Client/Server Integration)
- 十三. 高频集成(High-frequency Integration)
一. 自底向上集成
| 维度 | 详细 |
|---|
| 思路 | 从最底层模块开始,逐步向上集成 |
| 优势 | 无需桩模块,早期验证数据处理能力 |
| 劣势 | 需开发驱动模块(Driver),整体功能验证较晚 |
| 适用场景 | 底层模块功能稳定、接口规范的系统 |
二. 自顶向下集成
| 维度 | 详细 |
|---|
| 思路 | 从顶层模块开始,逐步集成下层模块 |
| 优势 | 可早期验证主要控制逻辑,支持部分功能演示 |
| 劣势 | 底层模块未就绪时需开发桩模块(Stub),可能掩盖底层缺陷 |
| 适用场景 | 需求稳定、架构清晰的大型系统 |
三. 三明治集成(Sandwich Integration)
| 维度 | 详细 |
|---|
| 思路 | 同时从顶层和底层向中间层集成,形成 “夹心面包” 结构,它将系统划分为3层,中间一层为目标层,测试的时候,对目标层上面的一层使用自顶向下的集成策略,对目标层下面的一层使用自底向上的集成策略,最后测试在目标层会合 |
| 优势 | 兼顾上下层验证,降低桩 / 驱动开发成本 |
| 劣势 | 中间层集成点可能成为瓶颈 |
| 适用场景 | 分层架构系统,需平衡开发进度与质量 |
四. 分层集成{Layers Integration}
| 维度 | 详细 |
|---|
| 思路 | 通过增量式集成的方法验证一个具有层次体系结构的应用系统的稳定性和可互操作性 |
| 优势 | 针对分层模型使用的策略 |
| 劣势 | 中间层集成点可能成为瓶颈 |
| 适用场景 | 分层架构系统 |
五. 基干集成(Backbone Integration)
| 维度 | 详细 |
|---|
| 思路 | 识别内核基干部分与应用部分,结合自顶向下,自底向上和大爆炸集成的元素,然后分别测试 |
| 优势 | 能够验证紧密耦合的子系统之间的互操作性,适应并行开发 |
| 劣势 | 只能运用在有基干部分的系统中 |
| 适用场景 | 有基干部分的系统,往往嵌入式系统居多 |
六. 基于功能的集成(Function-Based Integration)
| 维度 | 详细 |
|---|
| 思路 | 从功能角度出发,按照功能的关键程度对模块的集成顺序进行组织测试 |
| 优势 | 采用了增值的方法,能尽早验证系统关键功能 |
| 劣势 | 只能运用在有基干部分的系统中 |
| 适用场景 | 有基干部分的系统,往往嵌入式系统居多 |
七. 基于进度的集成(Schedule-Based Integration)
| 维度 | 详细 |
|---|
| 思路 | 把最早可获得的代码拿来立即进行集成,必要的时候开发桩模块和驱动模块,在最大程度上保持与开发的并行性 |
| 优势 | 考虑了项目的进度压力,兼顾进度和质量,缩短项目集成时间 |
| 劣势 | 没有迭代 |
| 适用场景 | 进度压力大的项目 |
八. 基于风险的集成(Risk-Based Integration)
| 维度 | 详细 |
|---|
| 思路 | 尽早验证系统风险最高的模块间的集成 |
| 优势 | 高危模块集成优先测试,保证系统稳定性 |
| 劣势 | 基于假设,如何判定集成测试先后顺序,风险大小 |
| 适用场景 | 所有项目适用 |
九. 基于事件(消息)的集成(Event/Message-Based Integration)
| 维度 | 详细 |
|---|
| 思路 | 基于状态机,从验证消息路径的正确性角度出发 |
| 优势 | 该集成是从验证消息路径的正确性角度出发,渐增式的把系统集成到一起,从而验证系统的稳定性 |
| 劣势 | 非基于状态机则不适用 |
| 适用场景 | 基于状态机的系统,渐增性系统 |
十.基于使用的集成(Use-Based Integration)
针对面向对象的系统,从分析类之间的依赖关系出发,通过从最小依赖关系的类开始集成,逐步扩大,最后集成到整个系统,通过该集成方法,可以验证类之间接口的正确性。
十一. 分布式集成(Distributed Services Integration)
针对可以有许多并发运行、没有专门控制轨迹的组件、以及没有专门服务器层的分布式系统。验证松散耦合的同级组件之间交互的稳定性。
十二. 客户/服务器的集成(Client/Server Integration)
对于和单独的服务器组件进行松散耦合的客户端组件,可以使用客户/服务器集成来完成。
验证客户和服务器之间交互的稳定性。
十三. 高频集成(High-frequency Integration)
快速迭代式开发和增量式开发可能会导致系统功能的遗漏和冲突,该集成主要是为了避免以上问题,同时控制可能出现的基线偏差。