自顶向下集成测试方法和自底向上集成测试方法各有优缺点,一般来讲,一种方法的优点是另一种方法的缺点,因此产生了混合渐增式集成测试方法。下面介绍三种常见的混合渐增式集成测试方法。

1) 衍变的自顶向下的渐增式测试,它的基本思想是强化对输入/输出模块和引入新算法模块进行测试,再自底向上组装成为功能相当完整且相对独立的子系统,然后由主模块开始自顶向下进行渐增式测试。

2) 自底向上—— 自顶向下的渐增式测试,首先对含读操作的子系统自底向上直至根结点模块进行组装和测试,然后对含写操作的子系统进行自顶向下的组装与测试。

3) 回归测试,这种方式采取自顶向下的方式测试被修改的模块及其子模块,然后将这一部分视为子系统,再自底向上测试,以检查该子系统与其上级模块的接口是否匹配。

在组装测试时,测试者应当确定关键模块,对这些关键模块及早进行测试。关键模块至少应具有以下几种特征:

*    满足某些软件需求。

*    在程序的模块结构中位于较高的层次(高层控制模块)。

*    较复杂、较容易发生错误。

*    有明确定义的性能要求。

现在已经分别介绍了非渐增式测试方法和渐增式测试方法,从中可以看出渐增式测试方法相比非渐增式测试方具有以下优点:

1) 非渐增式测试需要更多的工作量,对于图8-17所示的程序模块结构,使用非渐增式测试方法可能需要5个驱动模块和6个桩模块。但对从底向上的渐增式测试方法仅需要5个驱动模块,不需要构造桩模块,减少了辅助性测试工作。

2) 非渐增式测试方法先分散测试,再集中起来一次完成组合和测试,如果在模块接口处存在差错,只会在最后的组合时一下子暴露出来。而使用渐增式测试方法可以较早地发现模块接口错误,这是由于较早地把模块组合起来进行测试所致。

3) 作为一个结果,使用渐增式测试将使调试工作变得容易,因为渐增式测试逐步组合和逐步测试模块,把可能出现的错误逐步分散暴露出来,并且由于每次组合一个模块,错误发生时,可以比较容易地定位;这些错误是在最新增加的模块的连接中出现的。反之,使用非渐增式测试方法,直到对各个模块测试结束,对整个程序进行组合时才能发现错误,这时再确定错误的位置就非常困难,因为它可能出现在程序的任何地方。

4) 渐增式测试方法利用以前已测试过的模块取代非渐增式测试方法中所需要的驱动(或桩)模块,这样对后面模块的测试会使得前面已经实际测试过的模块得到更多的检验,因而使得整个程序的测试能取得较好的效果。

那么非渐增式测试方法为什么还要存在呢?一个原因是因为在实际工作中有人是这样进行程序的组装测试的,需要在这里指出其弊端;另一个原因是非渐增式测试方法在一些特定条件和特定范围内能起到一定作用,它把整个软件系统组装起来也很快,但是必须小心谨慎。下面是一系列非渐增式测试方法应用的条件,但这仅仅是必要条件。那就是在一个做得很好且高度模块化的设计中,模块间的相互作用很小,而且详尽说明了接口,且将接口错误保持在最低限度,这时可以考虑用非渐增式测试方法。

软件测试增值式集成测试的三种方法,混合渐增式集成测试方法相关推荐

  1. Php 链式执行,PHP实现链式操作的三种方法详解

    本文实例讲述了PHP实现链式操作的三种方法.分享给大家供大家参考,具体如下: 在php中有很多字符串函数,例如要先过滤字符串收尾的空格,再求出其长度,一般的写法是: strlen(trim($str) ...

  2. android 沉浸式状态栏的三种方法

    //状态栏 导航栏都沉浸 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {Window window = getWindow ...

  3. Python操纵Mysql数据库的三种方法,实现增删改查

    目录 这里使用的数据库是关系型数据库Mysql 一.首先,需要安装两个库 二.3种实现增删改查的方法 1.  使用原生语句进行增删改查 2. 使用表结构进行增删改查 3. 使用集成ORM类操纵数据库, ...

  4. 算法导论中求解时间复杂度的三种方法

    这一章讲的是递归式(recurrence),递归式是一组等式或不等式,它所描述的函数是用在更小的输入下该函数的值来定义的. 本章讲了三种方法来解递归式,分别是代换法,递归树方法,主方法. 1.代换法( ...

  5. Python中给字典排序的三种方法(有一种你绝对没见过)

    我们经常在计算机等级考试中遇到词频排序的问题,我们一般先通过生成字典的方法,统计词的频次,然后给字典排序.那么如何快速地给字典按照键值进行排序呢?下面介绍三种方法.第一种方法相对比较常见,但是第二种方 ...

  6. 自然语言处理NLP——中文抽取式自动文摘(包括中文语料库处理、三种方法实现自动文摘、Rouge评价方法对自动文摘进行打分)

    利用三种方法实现抽取式自动摘要,并给摘要结果打分(一.textrank 二.word2vec+textrank 三.MMR 四.Rouge评测) 具体代码我上传到了Github上,其中有45篇小论文( ...

  7. AutoSAR开发的三种方法:自上而下式、自下而上式、混合式

    目录 一.简介 二.三种集成方法 1.自上而下法 2.自下而上法 3.混合式法 三.总结 一.简介 autosar的架构主要分为三层:应用层.RTE层.BSW层:应用层主要是行为建模实现,使用simu ...

  8. html手机不能自动播放音乐,解决移动端浏览器 HTML 音频不能自动播放的三种方法...

    由于Android,IOS移动端的浏览器以及微信自带的浏览器为了用户更好的体验,规定不自动播放音频视频,默认屏蔽了autoplay,如果要想达到自动播放效果,需要单独处理,方法有以下几种: 第一种:添 ...

  9. 线程间通信的三种方法 (转)

    http://www.cnblogs.com/puxidun/archive/2009/12/06/1618142.html 线程间通信的三种方法 多线程通信的方法主要有以下三种:  1.全局变量 进 ...

最新文章

  1. Adobe Premiere Pro CC 2015.0 已停止工作【解决方案】
  2. AT3860-[AGC020F]Arcs on a Circle【dp】
  3. jquery php联动,jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
  4. BootLoader学习笔记(1)
  5. java GC的优化
  6. 解决系统关机变重启故障
  7. 括号匹配算法Java实现
  8. 设计模式之GOF23备忘录模式
  9. python开发微信点餐_微信点餐平台开发 (一)
  10. LaTex下载安装详解
  11. android调用系统录制视频教程,Android开发之使用MediaRecorder录制视频,android视频录制...
  12. SJT生成排列(清华OJ)
  13. pwm波如何控制电机代码_微电机如何精准控制?用这种控制系统就可以
  14. 这不就是微信朋友圈屏蔽功能吗?推特现在才做出来未免太迟了吧
  15. python图片保存jpg、show变成bmp_Python 图片格式转换
  16. 用ansys出黑白等值线图
  17. 曝NV或将推出新一代Titan显卡:48G显存 功率高达900W
  18. 嵌入式系统求职回忆录1
  19. 线上引流压测工具Meteor
  20. RTL8812AU/21AU and RTL8814AU drivers and linux driver

热门文章

  1. 【C语言-辗转相除法】代码学习
  2. 基于web assembly (WASM) 的H265 Web播放器
  3. nginx 部署前端vue项目dist文件
  4. 央采邮件系统名单发布,Coremail等企业中标
  5. android -- sim/usim卡导联系人
  6. Python基础 -- Task01. 变量、运算符与数据类型
  7. 微信小程序之生成条形码和二维码
  8. android r.id 自定义,什么是“ android.R.id.text1”?
  9. html学习系列教程7-td标签、tr标签
  10. 【健康】比吸烟还可怕的九大偏好!看到第一个就吓傻了!