《软件测试》课堂笔记05

Integration Test(集成测试)

一. 概念:

  集成:是指把多个单元组合起来形成更大的单元。

  集成测试:是在假定各个单元已经通过单元测试的前提下,检查各个软件单元之间的相互接口是否正确。

二. 集成测试与单元测试之间的关系:

  

三. 集成测试与系统测试的区别:

  

四. 集成测试的层次与原则:

  1. 层次:

   *对于传统软件来说,按集成粒度不同,可以把集成测试分为3个层次,即:集成测试、子系统内集成测试、子系统间集成测试

*   对于面向对象的应用系统来说,按集成粒度不同,可以把集成测试分为2个层次:类内集成测试、类间集成测试 

  2. 原则:

  所有公共接口必须被测试到。

  关键模块必须进行充分测试。

  集成测试应当按一定层次进行。

  集成测试策略选择应当综合考虑质量、成本和进度(Q.C.D)三者之间的关系。

  集成测试应当尽早开始,并以概要设计为基础。

  在模块和接口的划分上,测试人员应该和开发人员进行充分沟通。

  当测试计划中的结束标准满足时,集成测试才能结束。

  当接口发生修改时,涉及到的相关接口都必须进行回归测试。

  集成测试应根据集成测试计划和方案进行,不能随意测试。*

  项目管理者应保证测试用例经过审核。

  测试执行结果应当如实的记录。

五. 集成测试策略:

  1. 非渐增式集成:

*  非渐增式集成方法首先对每个子模块进行测试(即单元测试),然后将所有模块全部集成起来一次性进行集成测试。
  
  优点:(1)在有利的情况下,可以迅速完成集成测试。
     (2)集成测试用例最少。
     (3)比较简单。
     (4)多名测试人员可以并行工作。
  缺点:(1)复杂的程序遇到问题时很难定位和修改。
     (2)很难一次运行成功。
     (3)很多接口很容易漏检。

  2. 渐增式集成:

把程序划分成小段来构造和测试,在这个过程中比较容易定位和改正错误。
 

    (1)自顶向下:自顶向下集成(Top-Down Integration):从主控模块开始,沿着程序 控制层次向下移动,逐渐把各模块组合起来。可以使用深度优先或是广度优先的组合策略。

    

     步骤:

    ①对主控模块进行测试,用桩模块替代被主控模块调用的子模块
    ②根据选定的策略(深度/广度),每次用一个实际模块代换一个桩模块
    ③进行集成测试
    ④为了保证加入的模块没有引进新的错误,根据需要进行回归测试。②-④循环。
     优点:
    能够在测试的早期对主要的控制模块进行检验
    深度优先的结合策略可以在早期实现软件的一个完整功能,并可验证其功能。增强开发人员及用户的信心
     缺点:
    没有底层返回来真实数据流,需要推迟许多需要真实数据支持的测试
 

    (2)自底向上:(Bottom-Up Integration)自底向上测试从软件结构最底层的模块开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要桩模块。 

    

     步骤:

    ①把底层模块组合成实现某个特定子功能的族
    ②编写测试驱动程序,协调测试数据的输入输出
    ③对该子功能族进行测试
    ④去掉测试驱动程序,自底向上移动,把子功能组合成更大的子功能族。②-④循环。

     优点:

    允许对底层模块的早期验证。

    可在任何一个叶子节点就绪的情况下进行集成测试。

    可以并行进行集成对被测模块可测性。

    要求比自顶向下集成策略低。

    减少了桩模块的工作量。

    支持故障隔离。

     缺点:

*    驱动模块开发量大。

    对高层测试被推迟到最后,整体设计的错误发现较晚。

    集成到顶层时将变得越来越复杂

    (3)三明治集成:三明治集成(Sandwich Integration)是一种混合增量式测试策略,综合了自顶向下和自底向上两种集成方法的优点。这种方法桩模块和驱动模块的开发工作都比较小,不过代价是在一定程度上增加了缺陷的定位难度。 

     步骤:

    ①选定结构中的某一层为目标层
    ②对目标层所在层下面的各层使用自底向上的集成策略
    ③对目标层上面层次使用自顶向下的集成策略
    ④对目标层与其下一层集成
    ⑤把②③④的结果集成系统整体进行测试
     优点:结合了自顶向下和自底向上两种策略的优点。
     缺点:目标层在集成前测试不充分。
 
 
原文地址:https://www.cnblogs.com/HCS1995/p/4474539.html