目录

背景

测试金字塔

持续自动化测试


背景

背景:云测CloudTest

敏捷和DevOps开发模式下,产品要具备随时可发布的能力,本文介绍如何应用测试金字塔和CI/CD持续自动化测试实现高效的测试反馈,保障随时发布产品的质量。

测试金字塔

自动化测试金字塔最早是由Mike Cohn在2009年的著作《Succeeding with Agile: Software Development using Scrum 》(《Scrum敏捷软件开发》)中提出。最早提出来的时候是一个三层的金字塔,从上到下分别是UI界面/Service服务/Unit单元测试,随着敏捷测试的不断推进,测试金字塔出现一些变种。实际使用中不用太拘泥于每层的名字,在服务化软件架构中Service层也可以理解为API测试。

这种下宽上窄的三角形结构,代表在各层自动化的建议投入分配比例,越接近底层的单元测试建议的投入最多,接口测试居中,界面层建议的投入最少。

Martin Flower关于测试金字塔有这样一段评论:“GUI测试用例还很脆弱,如对系统的一些修正可能导致很多用例的失败,这时候你需要重新录制。你可以放弃录制的方法来解决这个问题,通过写GUI测试代码,但是这样效率非常低。就算你已经很精通了GUI测试代码的编写,端到端的GUI测试用例也很容易出现不可预期结果的问题,因此,基于GUI的自动化测试是脆弱、耗时(包括用例维护和执行)的。所以测试金字塔要表达的是:底层应当有更多的单元测试和接口测试和逻辑测试,GUI测试用例能覆盖到主业务流程即可。”

测试金字塔中每层中涉及的测试技术均有自己的优势和局限性,由于上层GUI测试的脆弱(不稳定性)、耗时(执行效率)问题,以及问题表现位置(UI)和问题根因位置(代码)距离太远的问题,测试金字塔由关注测试数量转向关注测试质量,推荐增加底层的测试投入。

  • 层次越靠上,运行效率越低,延缓持续集成的构建-反馈循环。
  • 层次越靠上,开发复杂度越高,如果团队能力受限,交付进度受影响。
  • 端到端测试更容易遇到测试结果的不确定性。
  • 层次越靠下,单元隔离性越强,定位分析问题越容易。

原则上单元测试需要开发人员承担,很多团队中开发人手不足,优先保障功能的实现,在单元测试的投入不够,并且很多开发人员的单元测试经验不足,导致很多团队中不做单元测试或者被动执行流于形式,有人提出了金字塔结构的反模式:蛋筒冰激凌模式纸杯蛋糕模式

蛋筒冰激凌模式由Alister Scott在2012年提出,金字塔中界面测试和单元测试的比例导致形成倒金字塔,界面测试之上有大量的手工测试。反模式不是建议模式,但却是实际团队中大量存在的。团队初期没有自动化测试,完全依赖手工测试,然后从功能测试自动化入手,产生了一些界面自动化测试用例。这种由外向内进行自动化测试的建设方式,导致了这样的反模式。这样的模式在测试效率、测试用例可维护性角度讲,均存在一些问题,但又往往是很多团队自发进行测试自动化能力建设过程中的必经路径,问题积累到一定阶段需要逐步向测试金字塔方向演进。

持续自动化测试

持续自动化测试是在持续集成和持续部署过程中运行自动化测试,快速反馈失败,最早源自开发人员在开发环境中通过单元测试获取快速反馈的思想。持续自动化测试是随着CI/CD(持续集成和持续部署)发展而逐步成熟的。现实需要开发人员能够越来越快的发布产品变更,修复在线问题。如果仍然依赖原来的手工测试或者开发和测试完全分离的方式,难以保障在很短的时间窗口中完成测试质量保障活动,因此需要在CI/CD过程中嵌入自动化测试“持续”保障交付物的质量。

持续测试意味着测试活动纳入到持续集成、持续反馈、持续改进循环中,持续不断的测试,贯穿了整个软件交付周期。持续测试提倡尽早测试、频繁测试和自动化测试。

“持续”体现在贯穿了敏捷、DevOps流程中交付物由小粒度逐步演变为软件成品的全过程,从代码白盒测试,到组件模块测试、接口测试、E2E(端到端)功能测试,甚至交付之后进行生产环境的在线测试。每个阶段正好映射了测试金字塔由下向上的各层,越下层的测试在越早的阶段执行,越上层的测试在越后的阶段执行。这类似于汽车制造流水线的各个环节,每个环节的组装结束后都会进行必要的检查通过才进入到下一个环节,在软件DevOps开发过程中Pipeline流水线承载了这样的组装、检查测试过程。

  • 测试左移、测试右移

    二者强调在持续测试过程中测试活动越过了传统测试的时间、角色、部门限制,将测试活动发展为连贯的持续性的质量保障活动。

    测试左移强调测试活动尽早开展,测试人员更早地参与到软件项目前期的各项活动中,在功能开发之前定义好相关的测试用例,提前发现质量问题,开发人员参与到测试。

    测试右移强调在生产环境中测试监控,并且实时获取用户反馈,持续改进产品的用户体验满意度,提高产品质量。

  • 测试自动化

    持续测试要实现快速流动和快速反馈,需要使用自动化的手段来提高效率,于是自动化单元测试、接口测试、E2E测试就应用嵌入到了DevOps流水线中。自动化测试提高了测试反馈效率,也降低了人为因素导致的错误。测试自动化不仅仅要完成测试用例脚本执行的自动化,还要实现其它所有可以减少人力投入的活动,例如自动化环境创建,自动化部署,自动化监控,自动化数据分析等。

  • 好了 学习也就到此结束了 想了解更多相关知识请关注我吧!

敏捷测试金字塔和持续自动化测试(最详解)相关推荐

  1. 什么是测试金字塔?如何使用测试金字塔来构建自动化测试体系?

    测试金字塔 (Test Pyramid)是一套使用单元测试,集成测试和端到端测试来构建自动化测试体系的方法. 如下图所示,在金字塔的最下方是单元测试,中段是集成测试,最上方是端到端测试.单元测试实现的 ...

  2. Docker持续部署图文详解

    2019独角兽企业重金招聘Python工程师标准>>> Docker持续部署图文详解 博客分类: docker 架构 JAVA项目如何通过Docker实现持续部署(只需简单四步),即 ...

  3. Python Unittest-根据不同测试环境跳过用例详解

    Python Unittest-根据不同测试环境跳过用例详解 本文章会讲述以下几个内容: 1.Unittest 如何跳过用例 2.如何使用sys.argv 3.自动化测试项目中如何一套代码多套环境运行 ...

  4. WebDriver自动化测试框架详解

    webDriver自动化测试框架详解 一. 简介 WebDriver API相对于Selenium Remote Control API来说,虽然同样是控制浏览器,但它的编程接口更加简洁 WebDri ...

  5. (渗透测试后期)Linux进程隐藏详解

    文章目录 (渗透测试后期)Linux进程隐藏详解 前言 Linux进程基础 Linux进程侦查手段 Linux进程隐藏手段 一.基于用户态的进程隐藏 方法1:小隐隐于/proc/pid--劫持read ...

  6. DFT - 对芯片测试的理解(二) 详解

    DFT - 对芯片测试的理解(二) 详解 参考: https://www.docin.com/p-2014360649.html The basic view of DFT scan chain 这图 ...

  7. 丝绸之路翻译软件测试,域渗透测试指南之GPO和OU详解(下)

    导语:Rohan在他的文章中提到的,BloodHound 1.5代表了BloodHound项目的一个非常重要的里程碑.通过添加GPO和OU结构,我们大大增加了Active Directory攻击面的范 ...

  8. DevOps敏捷测试之道(全栈最详解)

    DevOps敏捷测试之道 目录 DevOps敏捷测试之道 背景:云测 CloudTest 敏捷和DevOps 测试债务 测试的焦点:业务价值的质量 自动化测试金字塔 常规安全与弹性安全 测试左移和测试 ...

  9. java docker 持续集成_最佳实战Docker持续集成图文详解

    前言 关于Docker的文章铺天盖地,但精品文章往往翻译居多.都说Docker天生适合持续集成/持续部署,但同样,可落地.实际可操作性的文章也很罕见. 基于这些情况,虽然我们专栏定位为运维管理性文字, ...

最新文章

  1. 十步优化SQL Server中的数据访问
  2. [原创] Matlab 指派问题模型代码
  3. 2018.12.22 spoj7258 Lexicographical Substring Search(后缀自动机)
  4. FastDFS安装、配置、部署(三)-Storage配置具体解释
  5. Python文件与目录操作
  6. c语言更新数据,sqlite学习笔记10:C语言中使用sqlite之查询和更新数据
  7. linux 权限掩码 umask
  8. 超分辨率技术,随机噪声
  9. VMWare虚拟机NAT模式下static IP
  10. 线性代数 矩阵消元与回代
  11. 彻底解决android读取中文txt的乱码(自动判断文档类型并转码
  12. xshell密钥远程登录管理服务器
  13. ora-22858:数据类型的变更无效 for clod
  14. 传感器(6)环境传感器简介及光线传感器各返回值含义
  15. 计算机编程入门语言哪个好?
  16. 从此刻立志——我要做大牛
  17. SpringBoot--多线程07
  18. 学习WEB前端第四天(3)-背景图像
  19. Unity - Ray射线检测
  20. http-equiv=“X-UA-Compatible“是什么意思?

热门文章

  1. 源泉书签,助您管理海量收藏。今日更新【里程碑】支持书签导出功能了,从此不怕网络书签丢失了,随时随地备份您的书签。...
  2. 查看主机IP端口与快解析的内网映射
  3. 深圳市中电电力技术有限公司
  4. CHOLAN:一种模块化实体链接方法
  5. SDU创新实训 9.创建各类文件数据汇总整理
  6. h5登录闪退_传奇登录器突然间闪退
  7. linux的时间准确性问题
  8. python 给年周期 找准确的时间(本周一,下一周一)
  9. 测试用例设计方法之正交法
  10. 假期过后,你的元气值恢复了多少?(一)