集成测试:自底向上、自顶向下、Big-Bang集成测试、三明治集成测试

2023-05-16

集成测试:自底向上、自顶向下、Big-Bang集成测试、三明治集成测试

  • 详解
  • 测试过程
  • 测试方案
    • 自顶向下
    • 自底向上
    • 三明治测试
    • Big-Bang集成测试

详解

集成测试也叫组装测试或者联合测试,在单元测试完成的基础上进行模块、单元组装,组装成子系统、系统进行测试。单元进行组合时发生的错误经常和单元的接口有关,单元间互相影响,经过集成组合后,bug会逐渐放大,一个有效的集成测试可以帮助解决相关的软件与其它系统的兼容性和可操作性的问题

测试过程

IEEE规定了集成测试的过程为:计划、设计、实现、实行(实施)四个阶段

  • 测试计划:根据软件规格说明书、概要设计文档和开发计划,拟定集成测试计划
  • 测试设计:根据被测单元、模块的数据结构、接口、功能,根据测试的策略、测试使用的工具进行集成测试方案的设计
  • 测试实现:实现集成测试的测试用例和测试代码
  • 测试实行:执行测试,得到测试结果,整理成集成测试报告

测试方案

集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等,下面介绍比较重要的增量式的自顶向下、自底向上、三明治测试和非增量式的大爆炸集成测试:

自顶向下

单元、模块之间在集成时有高底层之分,而子系统、系统的由单元、模块组成时就像树结构一样,接口是它们的连接,单元、模块的实现是节点

  • 深度优先的测试:按照结构,用一条主控制路径将所有模块组合起来
  • 广度优先的测试:逐层组合所有下属模块,在每一层水平地沿着移动
  • 桩模块(Stub):是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
  • 优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
  • 缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。

自底向上

自底向上的集成测试是最常用的一种集成测试方案,自底向上测试是从最地层的模块、单元进行组装的测试,而模块单元已经经过了单元测试,所以不再需要开发桩模块,由于没有著驱动那个程序,所以需要开发驱动程序

  • 驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
  • 优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
  • 缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。

三明治测试

也叫混合测试,同时使用自底向上和自顶向下的测试方法,综合了两种方法的优点,也产生了新的缺点

  • 选择一个层为中间层
  • 对中间层以上的层使用自顶向下的测试
  • 对中间层以下的层使用自底向上的测试
  • 中间层不测试或者单独测试
  • 优点:出来具有自顶向下和自底向上两种集成策略的优点之外,运用了一定的技巧,能够减少桩模块和驱动模块的开发
    缺点:中间层不能尽早得到充分的测试,或者因为中间层如果选择不适当导致增加驱动模块的和桩模块工作量的设计负担

Big-Bang集成测试

大爆炸集成是属于非增值式集成的一种方法,也叫一次性组装或者整体拼装。该集成测试在辅助模块的辅助下,一次性把所有系统组件集合到被测系统中,不考虑组件之间的相互依赖性或者可能存在的风险,一般一次性成功的几率不大

  • 大爆炸测试比较适合在原有稳定系统增加子模块或者系统较小时使用
  • 优点:成本低,测试用例少,幸运的话,可以不需要或者只需要开发少量的辅助模块,就可以完成测试
  • 缺点:这种一次性组装的方式图在辅助模块的协助下,在模块单元测试基础上,将所测模块连接起来进行测试。不可避免的存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大,即使运行成功,也很可能会存在隐患
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成测试:自底向上、自顶向下、Big-Bang集成测试、三明治集成测试 的相关文章

随机推荐