知识点5:集成测试
Posted 爱易云测
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识点5:集成测试相关的知识,希望对你有一定的参考价值。
集成测试概述
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。程序在某些局部反映不出来的问题,在全局上很有能暴露出来,影响功能的实现。
当我们考虑以下问题:
在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失?各个子功能组合起来,能否达到预期要求的父功能?一个模块的功能是否会对另一个模块的功能产生不利的影响?全局数据结构是否有问题?单个模块的误差积累起来,是否会放大,从而达到不可接受的程度?
要想发现并排除在模块连接中可能发生的上述问题,就需要进行集成测试。
集成测试策略
集成测试策略最主要的有四种:
1、大爆炸集成(Big Bang Integration)
2、自顶向下集成(Top-Down Integration)
3、自底向上集成(Bottom-up Integration)
4、三明治集成(Sandwich Integration)
下面进行简要介绍:
1、大爆炸集成
(1)概念:大爆炸集成是属于非增量式集成的一种方法,也叫一次性组装货整体拼装。该集成把所有组件一次性集合到被测系统中,不考虑组件之间的相互依赖性或者可能存在的风险。
(2)目的:在最短的时间内把系统组装起来,并且通过最少的测试来验证整个系统。
(3)策略:在大爆炸这种集成方法中,首先需要对每个模块进行单元测试,然后把所有单元组装到一起进行测试,最终得到要求的软件系统。
(4)优点:
在有利的情况下,大爆炸集成可以迅速完成集成测试,并且只要极少数的驱动单元和桩单元。(驱动单元用以模拟被测模块的上级模块,桩单元用以模拟被测模块工作过程中所调用的模块);需要的测试用例最少;方法比较简单;可以并行开展,对人力、物力的资源利用率较高。
(5)缺点:
这种在单元测试的基础上,将所有组件一次性进行组装,不考虑组件之间的依赖性,虽然简单,但是由于程序中不可避免的存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不大;在发现错误的时候,问题定位和修改都比较困难;即使被测系统能够被一次性集成,但还是会有很多接口问题可以躲过集成测试而进入到系统测试。
(6)适用范围:
一个维护性项目(或者功能增强型项目),以前的产品已经很稳定,并且新增的项目只有少数几个组件被增加或者修改;被测系统比较小,并且它的每个组件都进行了充分的单元测试。
2、自顶向下集成
(1)概念:自顶向下集成采用了和设计一样的顺序进行测试,它在第一时间内对系统的控制接口进行验证,其中顶层的组件具有控制的责任,首先测试顶层的组件,然后逐步测试处于底层的组件,这种集成方式可以采用深度优先策略和广度优先策略。
(2)目的:从顶层开始控制,采用和设计一样的思路对系统进行测试,以验证系统的接口稳定性。
(3)策略:
a.以主模块为所测模块兼驱动模块,所有直属于主模块的下属模块全部用桩单元代替,对主模块进行测试。
b.采用深度优先或者广度优先的策略,用实际模块替换相应桩模块,再用桩模块代替它们的直接下属模块,与已经测试的模块组成新的子系统或者系统。
(4)优点:
a.自顶向下这种集成方式,在测试过程中较早的验证了主要的控制和判断点,如果主要控制有问题,尽早发现它能够减少以后的返工,所以这是十分必要的。
b.如果采用深度优先的策略,就可以首先实现和验证一个完整的软件功能,可以先对逻辑输入的分支进行组装和测试,检查和克服潜藏的错误和缺陷,验证功能的正确性,为之后对主要加工分支的组装和测试提供了保证。
c.功能的可行性较早得到了证实。
d.最多只需要一个驱动模块,减少了驱动模块的费用开支,也减轻了后期对驱动模块的维护。
e.由于该方法和设计的思路是一样的,所以可以和设计并行开展,如果目标环境或者设计需要改变,这种方式也可以灵活的适应。
f.支持故障隔离。例如:A模块测试正常,但是假如B模块之后,出现问题,那么可以确定,要么就是B模块有问题,要么就是A模块和B模块之间的接口有问题。
(5)缺点:
a.桩模块在每个测试中都必须提供,所以桩模块的开发和维护是该策略的最大成本。
b.底层组件中的一个无法预计的需要可能会导致许多顶层组件的修改,这破坏了部分先前构造的测试包。
c.底层组件行为的验证被推迟了。
d.随着底层模块的不断增加,系统越来越复杂,导致底层模块的测试不够充分,尤其是那些被重用的模块。
(6)适用范围:
a.产品控制结构比较清晰和稳定。
b.产品的高层接口比较稳定,底层变化比较频繁。
c.产品的控制模块可能存在技术风险,需要较早被验证。
d.希望尽早能够看到产品的系统功能行为。
3、自底向上集成
(1)概念:自底向上集成方式是从程序模块结构的最底层的模块开始组装和测试,因为模块是自底向上进行测试的,对于一个给定层次的模块,它的子模块已经组装并测试完成,所以不再需要桩模块。需要从子模块中得到的信息可以直接运行子模块得到。
(2)目的:从具有最小依赖性的底层组件开始按照依赖关系树的结构,逐层向上集成,以验证整个系统的稳定性。
(3)策略:
a.起始于系统的最底层模块,也可以把多个子模块合并到一起进行测试。
b.使用驱动模块对选定的模块进行测试。
c.用实际模块代替驱动模块,与它已经测试过的子模块组装成为一个更大的模块组进行测试。
d.重复上面的步骤,直到系统最顶层模块加入到已测系统中。
(4)优点:
a.允许对底层模块行为的早期验证。
b.在工作的最初可以采用并行进行集成,比自顶向下的测试效率高。
c.由于驱动模块是额外编写的,而不是实际的模块,所以对实际被测模块的可测试性要求比自顶向下的测试策略要小。
d.减少了桩模块的工作量。
e.故障隔离。
(5)缺点:
a.驱动模块的开发工作量比较大。
b.对高层的验证被推迟到最后,设计上的错误不能尽早的c.被发现,尤其对于那些控制机构在整个体系中比较关键的产品。
d.随着集成到了顶层,整个系统将变得越来越复杂,并且对于底层的一些异常很难覆盖。
(6)适用范围:
a.采用契约式开发的产品。
b.底层接口比较稳定的产品。
c.高层接口变化比较频繁的产品。
d.底层模块较早被完成的产品。
由于自顶向下集成策略和自底向上集成策略都有各自的缺点,所以就出现了一种结合这两种测试策略的集成方式,即:三明治集成。下面进行简单介绍。
4、三明治集成
(1)概念:三明治集成有时也被称为混合式集成,三明治集成就是把系统划分为三层,中间一层为目标层,测试的时候,对目标层上面的一层使用自顶向下的集成策略,对目标层下面的一层使用自底向上的集成策略,最后测试在目标层会合。
(2)目的:综合自顶向下的集成测试策略和自底向上的集成测试策略的优点。
(3)策略:
a.首先对目标层上面的一层采用自顶向下的测试策略,对主模块A进行测试,对A调用的子模块(目标层)用桩单元代替。
b.其次对目标层下面的一层采用自底向上的测试策略。
最后将三层集成在一起。
(4)优点:集合了自顶向下和自底向上的两种集成策略的优点。
(5)缺点:中间层在被集成前测试不充分。
(6)适用范围:大部分软件开发项目都可以使用这种集成策略。
集成测试完成的标志:
集成测试应由专门的测试小组来进行,测试小组由有经验的系统设计人员和程序员组成。整个测试活动要在评审人员出席的情况下进行。
判断集成测试过程完成与否,可按以下几个方面检查:
1. 成功地执行了测试计划中规定的所有集成测试;
2. 修正了所发现的错误;
3. 测试结果通过了专门小组的评审。
文章来源:博客园网站用户泡沫love夏的博客的《软件测试系列-集成测试》等文章
图片来源:百度图片
免责声明:本文转自网络公开渠道,旨在为广大用户提供最新最全的信息,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。转载的稿件版权归原作者或机构所有,如有侵权,请联系删除。
以上是关于知识点5:集成测试的主要内容,如果未能解决你的问题,请参考以下文章