集成测试
什么是集成测试
就是将部分代码集成一块进行测试
集成测试关注的重点
单元间的接口:1.代码的相互调用
2.消息接口
集成后的功能:不同模块不同功能是否相互影响 ,观察部分代码集成后功能实现是否正确,内部调用是否正确
接口:(例如,函数接口:将一个数据输入函数,返回一个结果,如果结果于预期结果一直就通过(单元测试的测试内容))
集成测试的层次
具体怎么集成还是要根据具体情况来看;
集成测试策略的主要模式
- 大爆炸集成 **
- 自顶向下集成 **
- 自底向上集成 **
- 三明治集成 **
- 基干集成
- 分层集成
- 基于功能的集成
- 基于消息的集成
- 基于进度的集成
- 基于风险的集成
大爆炸集成方式
在这种集成方式中,首先对每个模块分别进行单元测试,然后再把所有单元组装在一起进行测试, 最终得到要求的软件系统
大爆炸集成方式的优点:
- 大爆炸集成可以迅速完成集成测试,井且只要极少数的驱动和桩模块设计。它需要的测试用例也是最少的;
- 该方法比较简单;
- 多个测试人员可以并行工作,对人力,物力资源利用率较高
大爆炸集成方式的缺点:
- 这种一次性组装 方式试图在辅助模块的协助下, 在模块单元测试的基础上,将所测模块连接起来进行测试。但是由于程序中不可避免地存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大;
- 在发现错误的时候,其问题定位和修改都比较困难;
大爆炸集成方式的适用范围
- 一个维护型项目(或功能增强型项目),其以前的产品已经很稳定,并且新增的项目只有少数几个组件被增加或修改;
- 被测系统比较小,并且它的每个函数都经过了充分的单元测试。
自顶向下集成策略
深度优先集成策略
给A加一个驱动调用A,先给A加一个B,其他的虚拟数据,然后才给B加入E(替换S4),以此类推。。观察个个单元的功能是否正常
==深度优先先保证一条流程先走下来==
广度优先集成测试
==先保证同一级的单元先集成==
优化后的广度优先:去掉1,2,4,测完3,然后测5
自顶向下集成策略的优点
- 自顶向下的集成方式在测试过程中较早地验证了主要的控制和判断点;如果选用按深度方向组装的方式,可以首先实现和验证个完整的软件功能;
- 功能可行性较早得到证实,还能够给开发者和用户带来成功的信心;
- 最多只需一个驱动,减少了驱动器开发的费用;
- 支持故障隔离。
自顶向下集成策略的缺点
- 桩的开发和维护是本策略的最大成本;
- 底层组件行为的验证被推迟了;
- 随着底层组件的不断增加,整个系统越来越复杂,导致底层组件的测试不充分,尤其是那些被重用的组件。
驱动比桩好写,所以一般很少用自顶向下集成
自顶向下集成策略的的范围
- 产品控制结构比较清晰和稳定;
- 产品的高层接口变化比较小;
- 产品的底层接口未定义或经常可能被修改;
- 产品的控制组件具有较大的技术风险,需要尽早被验证;
自底向上集成测试策略
- 自底向上的集成方式是从程序结构的最底层的组件开始组装和测试;
- 组件是自底向上进行组装,对于一个给定层次的组件,它的子组件(包括子组件的所有下属组件)已经组装并测试完成,所以不再需要桩。
自底向上集成策略的优点
- 允许对底层组件行为的早期验证。可以在任何一一个叶子节点已经就绪的情况下进行集成测试;
- 在工作的最初可能会并行进行集成,在这一点上比使用自顶向下的策略效率高;
- 减少了桩的工作量,毕竟在集成测试中,桩的工作量远比驱动的工作量要大得多。但是为了模拟-些中断或异常,可能还是需要设计定的桩;
- 该方法也支持故障隔离。
自底向上集成策略的缺点
- 驱动的开发工作量也是很庞大的;
- 对高层的验证被推迟到了最后,设计上的错误不能被及时发现,尤其对于那些控制结构在整个体系中非常关键的产品。
自底向上集成策略的使用范围
- 底层接口比较稳定、变动较少的产品;
- 高层接口变化比较频繁的产品;
- 底层组件较早被完成的产品。
三明治集成策略
相当于将自底向上和自顶向下结合起来
- 三明治集成就是这样一种方法, 它把系统划分成三层,中间一层为目标层。
- 测试的时候,对目标层上面的一层使用由顶向下的集成策略,对目标层下面的一层使用自底向上的集成策略,最后测试在目标层会合。
优点
- 集合了自顶向下和自底向上两种策略的优点
缺点
- 中间层在被集成前测试不充分
适用范围
- 大部分软件开发项目都可以使用这种集成策略
分成上中下三成:上层是前端,下层是后端,中间接口。上层一般用自顶向下,针对下层用自底向上,上中下用大爆炸集成。