概述:
要想获得稳定而功能正确的系统,仅进行单元测试是不够的。许多缺陷与模块的集成有关。如果需求没有被正式描述,那么每个人就要对需求做出自己的解释。只要这些解释与其他模块的交互无关,那就没有什么问题。模块之间的错误交互,通常都是由于各自对需求有不同的解释而引起的。检测这些缺陷的最好手段是集成测试。集成策略就用来确定如何将不同的模块集成到一个完整的系统中。这里的集成包含硬件和软件两方面。由于不同的软件模块之间、不同的硬件之间以及硬件和软件之间都存在依赖性,因而必须决定采用哪种集成策略。在特定时刻。所有这些部分都必须准备好以便集成。这个时刻依赖于集成策略。由于集成策略对于项目活动的时间安排有重大影响,应当尽可能早地确定采用哪种策略。自上向下集成、自下向上集成和混合(b培b蛐g)集成是三种不同的基本策略。因为这三种策略并不相互排斥,因此基于这三种策略的组合可以派生出多种策略。集成策略依赖于:
1集成部件的可用性(例如第三方软件或硬件)。
2系统规模。
3是新系统还是在现有系统上增加,改变功能。
4体系架构。
这一策略只能在下列条件下才能获得成功:
1系统的绝大部分是稳定的,只需添加小部分新的模块。
2系统规模相对较小。
一各模块之间是紧耦合的,几乎不可能逐步集成不同的模块。
这一策略十分简单,只需将所有的模块集成在一块,将系统当成一个整体进行测试就可以了。
其主要好处是不需要使用占位(stub)与驱动程序,而且策略也很简单。不过比较难以发现引起缺陷的原因,而且只有在所有的模块都准各好了的情况下,才能开始集成。
1、自顶向下集成
对任何系统几乎都可以采用这一策略。该策略是从低层次的、相互之间依赖性最步的模块开始的,可以用驱动程序来测试这些模块。这种策略能用来逐步建立系统,或者首先并行地建立起子系统,然后集成为一个完整系统。这种集成可以从开发过程的早期就开始进行。当然,如果项目计划中模块提交也是采用自下而上的方式,那么采用这种方法就能够尽早检测出接口问题,而且这些接口问题也比较容易被隔离,因此解决起来成本就低。其主要缺点是需要使用许多驱动程序来执行这一策略,而且因为测试需要迭代,所以也是一种非常耗时的策略。
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接口未定义或经常可能被修改;产口控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
2、自底向上集成
这种策略由系统的控制结构来引导。控制结构按照自上向下的顺序开发,这也提供了从上层控制模块开始,自上而下集成模块的能力。对每一个新的层次,位于同一层次的相关模块被集成起来并得到测试。还不存在的模块角色可以用占位来实现。采用该集成策略的一个缺点是:如果需求发生了变化,变化对底层模块产生影响,从而也将导致上层模块需要更改。这可能导致需要(部分)重新开始集成以及测试过程。另一个缺点是用于测试每个集成步骤所必须用的占位数目很大。如果在早期从上层模块开始集成测试,即使采用占位来替代系统的主要部件。仍然可以观察到整个系统的概貌以及工作方式。
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接口比较稳定;高层接口变化比较频繁;底层组件较早被完成。
来源:https://www.cnblogs.com/tianzh/p/4475332.html