集成测试

定义:集成测试又称组装测试,是在单元测试的基础上,将所有模块按照设计要求组装成 子系统或系统进行的测试活动。又称子系统测试、联合测试。

目的:确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确,所测试的内容包括单元间的接口以及集成后的功能。

集成测试需要考虑的问题:

  1. 在把各个模块连接起来的时候,穿越模块接口的数据是否会丢失;

  2. 各个子功能组合起来,能否达到预期要求的父功能;

  3. 一个模块的功能是否会对另一个模块的功能产生不利的影响;

  4. 全局数据结构是否有问题

  5. 单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。

集成测试的层次:

  1. 模块内集成测试。

  2. 子系统内集成测试:先测试子系统内的功能模块,然后将各个功能模块组合起来确认子系统的功能是否达到预期要求。

  3. 子系统间集成测试:测试的单元是子系统之间的接口。子系统是可单独运行的程序或进程。

集成测试方法

  1. 静态测试技术——针对概要设计的测试

  2. 动态测试技术——灰盒测试

灰盒测试的优点:

  1. 能够进行基于需求的测试和基于路径的覆盖测试。

  2. 可深入被测对象的内部,便于错误的识别分析和解决。

  3. 能够保证设计的黑盒测试用例的完整性,防止功能或功能组合的遗漏。

  4. 能够减小需求或设计不详细或不完整性对测试有效性造成影响。

集成策略:

  1. 非增量式集成策略:一步到位(适合小系统)

    • 优点:①方法简单 ②允许多测试人员同时并行工作,人力物力资源利用率较高。

    • 缺点:①必须为每个模块准备相应的驱动模块和桩模块,测试成本较高 ②一旦集成后包含多种错误,难以纠正。

    在非增量式集成测试时,应当确定关键模块,对这些关键模块及早进行测试。

  2. 增量式集成策略:逐步实现

    分类:

    自顶向下增量式测试

    • 自顶向下集成测试的整个过程由3个步骤完成:

      (1)主控模块作为测试驱动器。

      (2)根据集成的方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块。

      (3)在每个模块被集成时,都必须进行单元测试。重复第2步,直到整个系统被测试完成

    • 深度优先方式:首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。

    • 广度优先方式:首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。

    • 优点:

      • 较早地验证了主要控制和判断点;

      • 功能较早证实;

      • 只需一个驱动;

      • 支持故障隔离;

    • 缺点:

      • 桩的开发量大;

      • 底层验证被推迟;

      • 底层组件测试不充分;

    • 适用范围:

      • 产品控制结构比较清晰和稳定;

        高层接口变化较小;

        底层接口未定义或经常可能被修改;

        产口控制组件具有较大的技术风险,需要尽早被验证;

        希望尽早能看到产品的系统功能行为。

         

    自底向上增量式测试

    • 从具有最小依赖性的底层组件开始,按照依赖关系树的结构,逐层向上集成,以检验系统的稳定性。

      最常用的集成策略,其他方法都或多或少应用此种方法。

    • (1)起始于模块依赖关系树的底层叶子模块,也可以把两个或多个叶子模块合并到一起进行测试

      (2)使用驱动模块对步骤1选定的模块(或模块组)进行测试

      (3)用实际模块代替驱动模块,与它已测试的直属子模块组装成一个更大的模块进行测试

      (4)重复上面的行为,直到系统最顶层模块被加入到已测系统中

    • 优点:

      • 对底层组件行为较早验证;

      • 工作最初可以并行集成;

      • 减少了桩的工作量;

      • 能较好锁定软件故障所在位置;

    • 缺点:

      • 驱动的开发工作量大;

      • 对高层的验证被推迟,设计上的错误不能被及时发现;

    • 适用范围:

      适应于底层接口比较稳定;

      高层接口变化比较频繁;

      底层组件较早被完成。

       

    三明治增量式测试(混合增量式测试)

    • 优点:集合了自顶向下和自底向上两种策略的优点

    • 缺点:中间层测试不充分

    • 适用范围:

      适应于大部分软件开发项目

posted @ 2022-02-07 19:57  xjspyx  阅读(804)  评论(0)    收藏  举报