目录

  • 我们为什么需要集成测试?
  • 集成测试的方法
    • 非增量测试
    • 增量测试
      • 自顶向下
      • 自底向上
      • 混合增量

我们为什么需要集成测试?

  在各个模块均进行了单元测试且通过的前提下,就能保证整个功能是可用的吗?显然是不够充分的。我们从软件研发流程的V模型前半段,可以看到需求是如何一步步拆解到方法的,那么测试时就需要反过来,一步步将零件组装起来,以保证整体是可用的。

  集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求(如根据结构图、流程图)组装成为子系统或系统,进行集成测试。

  除了单个程序内部各个模块间的集成,随着微服务的流行,一个动作可能需要多个服务间相互调用才能实现,所以我认为将多个系统间接口串联组合起来进行的测试,也是集成测试。

集成测试的方法

  集成测试的方法区分,主要是在如何组合多个模块,以及组合的顺序上。主要可分为粗暴的非增量测试,及循序渐进的增量测试。

  先简单假设一个需求场景,以下均以该需求进行阐述,待测试程序的模块结构如下:

非增量测试

  非增量式集成测试策略也叫做大爆炸集成,是将所有的模块直接组合起来,按完整的功能进行测试,从功能层级设计测试案例,而不考虑各个模块具体的情况。

  就提到的案例而言,非增量的集成测试,就是在ABCDEF都开发完成后,再将各个组件联合起来进行测试。

  这种测试方式的优点有:

  • 1.一个测试案例会直接贯穿多个模块,单个测试案例的覆盖率高,所以总测试案例数少;

缺点也很明显:

  • 1.测试的颗粒度较粗,对单个模块的各种集成情况,无法测试完全;
  • 2.测试过程中发现问题难以定位,不能直接确认到是哪个模块导致;
  • 3.发现问题较晚,若需要为了解决问题需要改造接口,则成本较大;

  适用场景:对稳定系统做小范围改造的二次开发。

增量测试

  增量测试是指从某一功能点开始,逐步对整个流程进行测试。又可根据测试顺序,分为自顶向下、自底向上、混合增量三种测试形式。

自顶向下

  与非增量测试相同,直接从整体的功能入口开始测试。不同的是,自顶向下时并不是直接将各个模块实际引用了进来,而是采取“测试桩”来替代,具体技术实现手段比如使用Mock模拟返回。这样便排除了与下游的未测试模块的依赖,而可以专注测试本模块。

  当顶上的模块确认测试通过时,逐步用实际模块替代测试桩,并新增新的测试案例,此时之前已有的案例依旧可以再次执行,进一步验证。

  结合案例,从A到E分支的测试步骤应该是这样的(其他分支以此类推):

  • 1.先对A模块进行测试,并编写BCD的桩模块模拟返回,确保A模块的逻辑无误;
  • 2.然后实际调用B模块,替代上一步的测试桩,并编写E模块的桩模块模拟返回,以确保B模块被完全测试;
  • 3.最后将E模块实际调用,替代上一步的测试桩;

自底向上

  自底向上的顺序与自顶向下相反,需要更多的测试案例,而不再需要测试桩。

  结合案例,测试步骤如下:

  • 1.编写测试案例对E、C、F进行测试,确保功能正常;
  • 2.针对B、D模块编写测试案例,并且将E、F直接引入调用,进一步测试E、F;
  • 3.针对A模块编写测试案例,并且将B、C、D直接引入调用;

混合增量

  混合集成则是将自顶向下与自底向上结合起来,选取中间点,中间点以上采用自顶向下的模式,中间点以下则是采用自底向上模式。

集成测试 - 增量测试与非增量测试相关推荐

  1. 增量集成测试和非增量集成测试

    增量集成测试: 集成是逐步实现的,即逐次将未曾集成测试的模块和已经集成测试的模块(或 子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题.(分为: ...

  2. 应对LTE测试复杂化及成本挑战 非信令测试将成主流

    报告显示,预计2013年全球LTE用户将达到1.4亿,2017年将达到9.2亿.而TD-LTE用户,到2016年将增加到1.5亿户,约占全球LTE用户总数25%.在中国市场LTE智能手机有望在2013 ...

  3. 软件测试基础 按照测试对象划分 界面测试(UI测试.响应式页面 可靠性测试 容错性测试 文档测试 平台测试 易用性测试等

    软件测试进阶 1.APP 的测试 2. 按照测试对象划分 2.1界面测试(UI测试) 3.响应式页面 4.可靠性测试 5.容错性测试 6.文档测试 7.平台测试: 7.1 PC: 7.2.手机端: 8 ...

  4. (保守群组测试 非保守群组测试 二次重复测试 自适应二次重复测试)四种群体测试的C++代码

    目录 原理 保守组检测 非保守组检测 二次重复测试 自适应二次重复测试 四种测试方法的核心代码 保守群组测试 非保守群组测试 二次重复测试与自适应二次重复测试 测试代码 参考文献 原理 假设该病在人群 ...

  5. 编写测试用例基本要求、非功能性测试和状态迁移法介绍

    编写测试用例基本要求 1.项目测试流程 (1)需求评审 (2)编写测试计划与测试方案 (3)测试用例设计与评审 (4)测试执行与BUG跟踪 (5)编写测试报告 2.测试用例需求来源 (1)需求说明书, ...

  6. cmw500 lte非信令测试_如何分辩cmw500是信令还是非信令?

    产品名称: 如何分辩cmw500是信令还是非信令? 价格: 电议 所属类别: 热销 发货期: 1天内 发货地: 广东-深圳 品牌: R&S/罗德与施瓦茨 型号: cmw500 供货量: 50台 ...

  7. [转载]面向非射频测试工程师的射频测量技术基础

    http://blog.sciencenet.cn/home.php?mod=space&uid=80520&do=blog&id=453587 [以下内容均收集自网络,必要处 ...

  8. warning LNK4076: 无效的增量状态文件“../×××.ilk”;正在非增量链接

    VS编译警告:warning LNK4076: 无效的增量状态文件"../×××.ilk";正在非增量链接 解决方法:删除程序提示的输出目录的×××.ilk,重新编译,即可 转载于 ...

  9. 软件测试是采用(A)执行软件的活动,测试(Test)测试是一项采用测试用例执行软件的活动,在这.ppt...

    测试(Test)测试是一项采用测试用例执行软件的活动,在这.ppt Beta 测试是从用户角度进行的测试.( Y ) 项目立项前测试人员不需要提交任何文档. ( Y ) 单元测试能发现大部分的软件缺陷 ...

最新文章

  1. 不是所有邮件服务器都叫智慧邮件系统
  2. 一个游戏大量合服代表什么_[游戏服务器从入门到关门]4.分区分服、连服、合服...
  3. The import android cannot be resolved”错误解决方法
  4. c++中的继承--1(引出,继承方式,继承的对象模型)
  5. java声明arraylist,在java构造函数中声明ArrayList
  6. 使用React和axios设置服务器端渲染的最简单方法
  7. python 枚举类型_Python枚举类
  8. 保存网页内容为PDF,支持文本复制,链接跳转
  9. wincap的安装与环境配置
  10. Java游戏宋朝角色扮演_穿越历史并不现实,但是有这样一款游戏,带你回到宋朝...
  11. 前端HTML CSS JavaScipt JQuery
  12. 【CSS选择器】CSS选择器有哪些?如何选择合适的使用?各类选择器的优劣势是什么?
  13. 英国内政部(Home Office)间谍机构(spy powers)假装它是Ofcom咨询中的一名私人公民1525446049260...
  14. 灾备系统与备用服务器区别,服务器灾备方案是什么
  15. c#操作word图表(二)
  16. 如何批量给文件重命名?
  17. html网页播放器编辑代码大全
  18. 基因数据处理44之cloud-scale-bwamem安装
  19. 阿里云服务器ECS利用反向代理FRP内网穿透
  20. 《C++性能优化指南》 linux版代码及原理解读 第四章

热门文章

  1. 优化360小鸟壁纸,让它不再流氓!
  2. 【无代码体验】鲸智搭模板《办公用品管理系统》试用分享
  3. 云计算运维工程师怎样才能更好的进阶?
  4. 罗氏线圈的电流变送器
  5. JSP(JavaServerPages)介绍
  6. html蛋糕首页代码,HTML红色欧美形式蛋糕信息网页模板代码
  7. 针式打印机恢复出厂设置
  8. 仓库规划与布局(基础)
  9. 各种品牌的主板和笔记本的BIOS快捷启动按键
  10. 银行基金代销系统调研