-
集成测试之自顶向下、自底向上、三明治集成
2019-01-05 16:24:27定义:自顶向下的集成测试就是按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。 自我理解:自顶向下测试包含两种测试策略,分别是深度优先和广度...自顶向下测试
- 目的:从顶层控制(主控模块)开始,采用同设计顺序一样的思路对被测系统进行测试,来验证系统的稳定性。
- 定义:自顶向下的集成测试就是按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试。
自我理解:自顶向下测试包含两种测试策略,分别是深度优先和广度优先,这个不难理解,看例子基本就能懂
例子如下:
实现自顶向下测试方法(广度优先)
总结特点:从上到下(分层),从左到右(排序)
这句话可以这样理解先从整体上从上到下排列
第一层有:M1
第二层有:M3,M4,M2
第三层有:M6,M5
第四层有:M7
然后再从每层进行细分,从左到右排列
第一层排序后:M1
第二层排序后:M2,M3,M4
第三层排序后:M5,M6
第四层排序后:M7
再整合起来,自顶向下测试方法(广度优先)就出来了:M1,M2,M3,M4,M5,M6,M7
实现自顶向下测试方法(深度优先)
总结特点:从左到右(分支),从上到下(排序)
这句话可以这样理解,整体分支上是从左到右排序
(从左到右)
一分支:M1 - M2分支
二分支:M1 - M3 - M5分支
三分支:M1 - M3 - M6 - M7分支
四分支:M1 - M4分支
各分支具体编号从上到下排序
一分支排序后:M1,M2
二分支排序后:M1,M3,M5
三分支排序后:M1,M3,M6,M7
四分支排序后:M1,M4
在整合起来,遵循先左右,后上下,第一分支M1,M2,第二分支(M1在第一分支上已有)M3,M5,第三分支(跟前面同理,M3
之前分支已有)M6,M7,,第四分支(同理)M4
最终排序结果就出来了:M1,M2,M3,M5,M6,M7,M4
自底向上测试方法
- 目的:从依赖性最小的底层模块开始,按照层次结构图,逐层向上集成,验证系统的稳定性。
- 定义:自底向上集成是从系统层次结构图的最底层模块开始进行组装和集成测试的方式。对于某一个层次的特定模块,因为它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在测试过程中,如果想要从子模块得到信息可以通过直接运行子模块得到。也就是说,在集成测试的过程中只需要开发相应的驱动模块就可以了。
例子如下:
第一步,依次从左到右,d1,d2,d3,d4,d5,d6称为驱动模块
第二步,整合在一起
三明治集成测试方法
- 定义:三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法的优点,因此也属于基于功能分解集成。如果借助图来介绍三明治集成的话,就是在各个子树上真正进行大爆炸集成。桩和驱动器的开发工作都比较小,不过代价是作为大爆炸集成的后果,在一定程度上增加了定位缺陷的难度。
例子如下:
针对本题,三明治集成测试有两种方法
第一种:
目的:综合利用自顶向下和自底向上两种集成策略的优点
先要选择分界层 ,在此我选择M2 - M3 - M4层为界,在M2 - M3 - M4层以上采用自顶向下测试方法,在M2 - M3 - M4层以下采用自底向上测试方法
第一步,M2 - M3 - M4层以上采用自顶向下测试方法
第二步,在M2 - M3 - M4层以下采用自底向上测试方法
整合后
优点:出来具有自顶向下和自底向上两种集成策略的优点之外,运用了一定的技巧,能够减少桩模块和驱动模块的开发
缺点:在被集成之前,中间层不能尽早得到充分测试(在本题中,中间层即是M2 - M3 - M4层)
第二种:
相对于第一种来说,第二种能在一定程度上解决第一种方法的缺点
目的:充分发挥测试的并行性,弥补三明治集中不能充分测试中间层的缺点
先要选择分界模块,在此我选择M3模块为界,对模块M3层(M3即M2 - M3 - M4层)上面使用自顶向下集成测试策略,模块M3层下面使用自底向上集成测试策略,对M3层使用使用独立测试策略(即对该层模块设计桩模块和驱动模块完成对目标层的测试,参考https://blog.csdn.net/xhf55555/article/details/6819010)
优点:1.具有三明治集成的所有优点,且对中间层能够尽早进行比较充分的测试;
2.该策略的并行度比较高。(并行度在本题中指,并行测试M3层与M3层上面一层的集成和M3层与其下一层的集成)
缺点:中间层如果选择不适当,可能会增加驱动模块的和桩模块工作量的设计负担。
方便以后回忆,在此记录,我觉得重要的点,第一原理,第二怎么画,希望对误闯进来的道友有所帮助
-
集成测试:自底向上、自顶向下、Big-Bang集成测试、三明治集成测试
2020-04-02 19:28:59集成测试:自底向上、自顶向下、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试详解测试过程测试方案自顶向下自底向上Big-Bang集成测试三明治测试核心系统测试分层集成测试基于...详解
集成测试也叫组装测试或者联合测试,在单元测试完成的基础上进行模块、单元组装,组装成子系统、系统进行测试。单元进行组合时发生的错误经常和单元的接口有关,单元间互相影响,经过集成组合后,bug会逐渐放大,一个有效的集成测试可以帮助解决相关的软件与其它系统的兼容性和可操作性的问题
测试过程
IEEE规定了集成测试的过程为:计划、设计、实现、实行(实施)四个阶段
- 测试计划:根据软件规格说明书、概要设计文档和开发计划,拟定集成测试计划
- 测试设计:根据被测单元、模块的数据结构、接口、功能,根据测试的策略、测试使用的工具进行集成测试方案的设计
- 测试实现:实现集成测试的测试用例和测试代码
- 测试实行:执行测试,得到测试结果,整理成集成测试报告
测试方案
集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等,下面介绍比较重要的增量式的自顶向下、自底向上、三明治测试和非增量式的大爆炸集成测试:
自顶向下
单元、模块之间在集成时有高底层之分,而子系统、系统的由单元、模块组成时就像树结构一样,接口是它们的连接,单元、模块的实现是节点
- 深度优先的测试:按照结构,用一条主控制路径将所有模块组合起来
- 广度优先的测试:逐层组合所有下属模块,在每一层水平地沿着移动
- 桩模块(Stub):是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。在集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。
- 优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
- 缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
自底向上
自底向上的集成测试是最常用的一种集成测试方案,自底向上测试是从最地层的模块、单元进行组装的测试,而模块单元已经经过了单元测试,所以不再需要开发桩模块,由于没有著驱动那个程序,所以需要开发驱动程序
- 驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。
- 优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
- 缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
三明治测试
也叫混合测试,同时使用自底向上和自顶向下的测试方法,综合了两种方法的优点,也产生了新的缺点
- 选择一个层为中间层
- 对中间层以上的层使用自顶向下的测试
- 对中间层以下的层使用自底向上的测试
- 中间层不测试或者单独测试
- 优点:出来具有自顶向下和自底向上两种集成策略的优点之外,运用了一定的技巧,能够减少桩模块和驱动模块的开发
缺点:中间层不能尽早得到充分的测试,或者因为中间层如果选择不适当导致增加驱动模块的和桩模块工作量的设计负担
Big-Bang集成测试
大爆炸集成是属于非增值式集成的一种方法,也叫一次性组装或者整体拼装。该集成测试在辅助模块的辅助下,一次性把所有系统组件集合到被测系统中,不考虑组件之间的相互依赖性或者可能存在的风险,一般一次性成功的几率不大
- 大爆炸测试比较适合在原有稳定系统增加子模块或者系统较小时使用
- 优点:成本低,测试用例少,幸运的话,可以不需要或者只需要开发少量的辅助模块,就可以完成测试
- 缺点:这种一次性组装的方式图在辅助模块的协助下,在模块单元测试基础上,将所测模块连接起来进行测试。不可避免的存在模块间接口、全局数据结构等方面的问题,所以一次试运行成功的可能性并不很大,即使运行成功,也很可能会存在隐患
-
非增量式集成与增量式集成测试(自顶向下、自底向上和三明治集成测试)
2020-03-18 10:22:39非增量式集成与增量式集成测试(自顶向下、自底向上和三明治集成测试) ** 增量式集成 增量式集成测试是逐步集成和逐步测试的方法,把可能出现的错误分散暴露出来,便于找出问题和修改 优点 更早地发现模块间的接口...**
非增量式集成与增量式集成测试(自顶向下、自底向上和三明治集成测试)
**
增量式集成
增量式集成测试是逐步集成和逐步测试的方法,把可能出现的错误分散暴露出来,便于找出问题和修改
优点
更早地发现模块间的接口错误,有利于错误定位;
缺点
需要编写驱动模块和桩模块;
非增量式集成
在对每个单元进行充分测试后,将所有单元全部集成起来,一次性地进行集成测试
优点
减少测试工作量
缺点
难以定位和解决问题,可能会发现很多错误
自顶向下、自底向上和三明治集成
1、自顶向下集成
按照系统层次结构图,以主程序模块为中心,自上而下按照深度优先或者广度优先策略,对各个模块一边组装一边进行测试;
优点:
较早地验证了主要控制和判断点; 按深度优先可以首先实现和验证一个完整的软件功能; 功能较早证实,带来信心; 只需一个驱动,减少驱动器开发的费用; 支持故障隔离。
缺点
桩的开发量大; 底层验证被推迟; 底层组件测试不充分。
2、自底向上集成
从系统层次结构图的最底层模块开始进行组装和测试的方式;
优点
对底层组件行为较早验证; 工作最初可以并行集成,比自顶向下效率高; 减少了桩的工作量; 支持故障隔离。
缺点
驱动的开发量大; 对高层的验证被推迟; 设计上的错误不能被及时发现。
3、三明治式集成
一种混合增值式测试策略,综合了自顶向下和自底向上两种集成方式的优点;是中等规模的大爆炸。
优点
减少了桩和驱动器的开发工作量;
缺点
增加了缺陷定位的难度。
-
【软件测试】简述自顶向下和自底向上两种集成测试方法
2016-12-29 11:39:00自顶向下的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发桩模块。在集成过程中,可以采用...自顶向下的集成是从主控模块(主程序,即根结点)开始,按照系统程序结构,沿着控制层次从上而下,逐渐将各模块组装起来。在从上向下的集成测试过程中,需对那些未经集成的模块开发桩模块。在集成过程中,可以采用宽度优先或深度优先的策略向下推进。
自底向上的集成是从最底层模块(即叶子结点)开始,按照调用图的结构,从下而上,逐层将各模块组装起来。在从下而上的集成测试环境中,需对那些未经集成测试的模块开发驱动模块。
-
集成测试中自顶向下集成和自底向上集成两个策略的理解,它们各自的优缺点和主要适应于哪种类型测试
2021-01-01 20:00:20自顶向下集成 优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。 缺点:柱的开发量大;底层验证... -
集成测试(自顶向下、自底向上)
2019-09-17 22:30:12定义:集成测试就是把模块按系统设计说明书的要求组合起来进行测试。 集成测试有两种方法: 1、非增量集成 (分别测试各个模块,再把这些模块组合起来进行整体测试); 优点:可以对模块进行并行测试,加快工程... -
集成测试(自顶向下,自底向上,三明治)
2019-06-12 16:10:33文章目录集成测试(Integration test) 集成测试(Integration test) 也叫组装测试或联合测试,是在单元测试的基础上,将所有模块按照设计要求,集成为系统或子系统,并进行测试。 验证程序和概要设计说明的一致性,... -
自顶向下,自底向上、三明治集成的方法。软件测试
2018-12-11 14:42:22集成测试 实验日期 2018/11/30 实验成绩 实 验 目 的 、 要 求 及 内 容 (给出本次实验所涉及并要求... -
集成测试
2020-05-04 15:12:10集成测试策略4.1 非增量式集成测试4.2 增量式集成测试4.2.1 自顶向下集成4.2.2 自底向上集成4.2.3 三明治方法(混合式集成) 前言: 最近,项目需要进行集成测试,来梳理一下集成测试的主要过程~~ 1. 什么是集成... -
增量集成测试和非增量集成测试
2020-05-21 11:17:34增量集成测试: 集成是逐步实现的,即逐次将未曾集成测试的模块和已经集成测试的模块(或 子系统)结合成程序...三明治集成是一种混合增殖式测试策略,综合了自顶向下和自底向上两种集成方法的优点,因此也属于基于功 -
测试阶段 之 单元测试 集成测试 系统测试 验收测试
2019-03-28 14:18:24单元测试: ...自顶向下: 自底向上:最常用的集成测试方法。 核心系统集成: 高频集成: 敏捷方式开发:核心系统集成+高频集成 瀑布式开发:自顶向下+自底向上 单元测试:针对详细设计,针... -
软件测试技术第七章集成测试.ppt
2020-05-17 12:17:13集成测试;测试过程 单元测试 集成测试 系统测试;为什么总是集成不起来;7.1集成测试概述;7.2 基于功能分解的集成;非渐增式集成;目的 尽可能缩短测试时间使用最少的测试...自顶向下集成步骤: (1)以主控模块作为测试驱动 -
集成测试的几种策略与选用原则
2010-04-26 22:21:26集成测试的策略 大爆炸集成 自顶向下集成 自底向上集成 三明治集成 集成方法的选用原则 集成测试与单元测试和系统测试的区别 -
关于集成测试 系统测试
2011-10-27 12:40:29集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实... -
软件测试技术7集成测试.ppt
2020-08-19 15:32:45面向对象集成 见教材160页 集成测试策略的选取 一次性集成多用于系统规模较小的测试项目中 自顶向下集成较少使用自底向上集成(较常使用)混合式集成则多用于采用结构化方法开发的软件项目中 基于使用的集成方式用于... -
集成测试的策略
2015-05-03 18:27:00下面介绍集成测试的几种...适应于一个维护型项目或被测试系统较小2)自顶向下集成优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减... -
关于集成测试
2011-08-02 12:59:00集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实... -
集成测试-增式测试
2019-09-23 04:07:46集成测试的方法有两种: 非增式测试和增式测试 , 1)非渐增组装测试(非增式集成测试):将单元测试后的模块按照总体的...2)渐增组装测试(增式集成测试):在单元测试的基础上,采用自顶向下或自底向上逐层安... -
集成测试、系统测试、验收测试
2020-03-04 21:03:50一、集成测试要点: 1. 定义: 是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现...自顶向下:这是一种递增的组装程序的方法,... -
集成测试方法示例
2015-05-03 15:46:00集成测试方式分为自顶向下和自...自顶向下的集成步骤: 1、对主控模块进行测试,用桩模块替代被主控模块调用的子模块 2、根据选定的策略(深度/广度),每次用一个实际模块代换一个桩模块 3、进行集成测试 4、为... -
集成测试怎么做?
2017-09-18 15:09:281】.集成测试:是在单元测试的基础上,将...对面向过程的系统采用的集成策略有:自顶向下,自底向上两种。 4】.简述集成测试的过程 1. 构建的确认过程。 2. 补丁的确认过程。 3. 系统集成测试测 -
集成测试常用方案选型
2008-01-25 03:59:22集成测试的实施方案有很多种,如自底向上集成测试、自顶向下集成测试、Big-Bang集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。在此,笔者将重点讨论其中一些经实践检验和一些证实... -
【软件测试】集成测试策略总结
2015-04-06 17:22:00集成测试策略 ...先进行单元测试,再将所有模块一起进行集成测试。...自顶向下 自底向上 三明治 特点 需要的用例少,比较简单,效率较高;但不能处理复杂的程序,而且不容易一次成功... -
软件测试---集成测试
2013-06-22 11:32:531.1 自顶向下集成 1.2 自底向上集成 2.回归测试 3.确认测试 4.白盒测试 4.1语句覆盖 4.2 判断覆盖 4.3 条件覆盖 4.4判定/条件覆盖 4.5条件组合覆盖 4.6点覆盖 4.7边覆盖 ...