站在DevOps肩膀上的TestOps(一)

一十一

发表于 2018-03-14 15:50:03

TestOps

摘要:

DevOps团队的职责是“无摩擦发展”。 这是对“速度需求”驱动的发展理念的一种渴望,以及有意识地去除从概念到客户的想法。 无摩擦的发展使产品团队能够专注于创新,而不是陷入经常任意的过程。 这种运动为质量保证工程师提出了一个有趣的问题,因为“对速度的需求”的思路让他们以更少的时间(主要是时间)做更多的事情,同步对话的双方面临的挑战往往是棘手的。

着眼于提高交付速度往往会使质量问题成为焦点。 怎么确保‘速度需求‘不仅仅是‘快速‘,而是效率?调整DevOps和TestOps团队是一种技术,可以加速产品发布并支持强大且可靠的以质量为核心的产品,这两个领域通常包含对方。

任何敏捷团队都会经常发布产品更新(在某些情况下会比每天更新), DevOps团队通常是这一过程的焦点,为构建和部署环境创建工具,使团队能够按照自己的期望尽快完成工作。但在测试过程中,由于作为 质量保证。 这个过程产生了QA和测试速度是项目交付瓶颈的印象。这时候便有了一个新的概念‘TestOps‘,构建一个无缝部署的测试环境。

TestOps团队本质上集中于从功能测试到集成测试到更低级别的单元和API测试的所有级别测试所需的基础架构和平台的可用性。 这与传统的测试工程师角色有所不同,后者经常可以成为编写测试工具和维护测试框架的负责人。这有助于将质量责任(通过测试覆盖率和流程)转移到整个团队中(而不是传统的‘测试‘)。 如果与DevOps的“无摩擦发展”理念正确结合,可以实现非常强大的优化开发,测试和发布过程。

在DevOps团队专注于构建,配置和部署的过程中,TestOps团队可以与构建和配置阶段进行交互,以与该系统进行通信,提供测试反馈机制,这些机制在产品团队自己拥有的测试规范中定义。 这提供了一个无缝的,标准化的工作流程,可以减少开发过程中的瓶颈。 通过持续集成扩展了这种灵活性,可以避免几小时的人工干预,以设置测试环境,从而减少在客户面前获取高质量,经过测试的代码所需的时间。 这只有在DevOps和TestOps平台同步时才能成功,两个团队在产品和流程上紧密合作。

案例分析:

2010年初,Workiva拥有一支由30名开发工程师组成的团队和一支由5人组成的QA团队,他们都致力于Wdesk,这是一个基于云的应用程序,旨在帮助公司在美国证券交易委员会创建和存档账户,预发行文件和其他文件。

预发布验收是在手动探索的基础上完成的,只需手动测试即可覆盖应用程序的能力成为一个问题,从手动测试场景到自动化测试流程的毕业生成为一小组QA工程师的项目。

这个新团队的初始目标是自动测试覆盖率,以便QA团队在每次发布之前完成的800个手动测试场景(此时,Workiva的每周发布时间安排为每两周发布一次,每次发布最多2000次更新)。 这些测试方案主要包括从文档创建和编辑到格式转换的端到端测试,以确认文档内容和格式在转换为SEC为企业会计定义的格式时是正确的。

为了使测试人员能够轻松创建覆盖范围,我们创建了一个易于使用的拖放界面来创建使用业务语言驱动的测试装置构建的测试。 测试运行者和测试的这种分离意味着在获得我们产品的测试覆盖率时可能会发生快速进展,而无需测试人员编写代码或为测试完成产生大量的许可证成本。

在接下来的两年中,测试覆盖率从每个发布的800个测试中增加到最初的手动测试案例(项目的初始目标),达到7000个全堆栈测试。 这些测试现在每天24小时运行,发布候选版本全面运行,产品团队构建的定制组件以及小型小时烟雾测试版本。

随着时间的推移,支持基础架构也从对一个小型物理机器场的测试运行到40个Google App Engine服务器的虚拟化平台,400个亚马逊ec2机器复制用户,并且每月运行大约1,000,000个测试场景。 该框架在某个地方采用了“天网”这个名称。

图1 - 初始测试和发布过程

初始测试成功,未来扩展问题

提供测试覆盖率的最初目标已经得到满足,并且在发布之前已经发现了数百个错误(并继续存在),尽管这些工具很快变得明显,这些工具非常“专注于测试”。 尽管开发人员可以在将产品和功能放在一起的同时创建功能测试覆盖范围,但这样做的工具不在环境和存储库开发人员每天工作的范围之内。 随着组织机构迅速转向多个产品团队和服务模型,这些团队和服务将通过由DevOps倡导的简化版本基础架构独立发布,因此这种扩展性无法扩展。 其他耗时的问题出现在所需的人工干预(如图1所示)之间,在开发和质量保证后构建之间进行人工切换,发布管理也一样,发布质量保证结果审查,并且这些需要在未来进行缓解。

随着组织分拆成各自独立的团队,每个团队都在独立代码库之外提供自己的微服务,重要的是要重新评估整个产品团队的这个模型,以及新的DevOps交付模型。

TestOps团队

由于DevOps团队负责构建和部署架构,使工程组织能够按照其业务需求尽可能快地进行扩展,所以TestOps团队能够相应地进行交互并与DevOps一起发展非常重要。 如果测试基础架构不易维护且可用作灵活的构建和发布机制,则会导致软件发布的延迟,因为QA在检查其规定的测试活动的发布可信度方面得到备份。 随着敏捷团队更频繁地向客户发布较小版本,这种凝聚力变得更加重要。 反过来,许多基于云计算的供应商都可以为客户提供服务,即使能够以更高的频率更新应用程序,也必须保持质量。

DevOps团队将构建并支持新的架构和工作流程,使产品团队能够按照他们自己选择的时间和频率发布软件。 构建支持基于容器的应用程序部署(使用Docker)并创建支持产品团队最适合其产品/服务的所有技术的生态系统。

除了DevOps之外,测试工程团队(在被称为TestOps之前)已经是测试框架的所有者,并且该团队已经开始意识到目前正在使用的测试模型无法扩展,当然在组织中是 移动速度更快,并希望比以前更快地构建部署。

确保DevOps和TestOps团队与工具同步是一项挑战。所有这些都必须接近无缝,因为任何人工干预或延迟开发都会存在不可预期的后果,并成为流程中的瓶颈或薄弱环节。 因此,团队之间的依赖关系的沟通是在一开始就建立起来的,每个团队的架构师都要确保两个团队的愿景,同时集中在不同的领域导致看起来是相同的结果。

发布管理团队是另一个有趣的组成部分。 负责管理客户的每一次更新版本的每一部分,在新模型中,团队有权在任何时候自行发布,随时准备这样做。

        发布管理重点转向自动化发布工具,来帮助更快地发布产品。提供一套工具,如测试覆盖率报告和自动发布过程检查等,并简化团队发布流程以使其更快地交付。

质量保证人员也应改变传统观点,将其从源码交付、版本构建到产品质量的整个交付过程作为质控的一部分。

至关重要的是,成熟的测试工程团队需要转向更加‘TestOps‘的前景,以确保我们能够提供工具和支持,以确保在质量方面维持高标准并保持规模,并且团队 现在对其整个发布流程负责,但与DevOps和整个工程所倡导的“无摩擦发展”路径保持同步。

持续集成(CI)系统是DevOps/TestOps成功的中坚力量。 一个好的CI系统可以快速反馈构建稳定性,更快地将工件制作成QA,并最终更快地生成代码。 通常,DevOps将拥有构建系统,部署工具(假设基于云/服务器的产品),生产监控系统(有时称为CloudOps),并经常发布一致性度量工具,如代码覆盖率报告。 TestOps还可以利用所有这些工具,部署测试版本,报告性能和一致性等,为产品团队提供与生产部署完全相同的基础架构的反馈,从而减少时间和成本,以便为部署设置和维护单独的测试资源 并给出更真实的世界反馈循环以释放信心。

TestOps中文社区公众号
 
 微信   :  wonter
 QQ群 :  632418478

原文地址:https://www.cnblogs.com/Javame/p/8675953.html

时间: 2024-10-28 11:38:34

站在DevOps肩膀上的TestOps(一)的相关文章

站在DevOps肩膀上的TestOps(二)

一十一 发表于 2018-03-14 16:40:22 TestOps 摘要: TestOps模型旨在将整个团队的注意力集中在质量上,因此TestOps确实需要无缝且可靠. 一个简单的例子是任何测试框架必须足够可靠,以至于很少有停机或连接问题. 无论何时,如果评估失败,或者延迟发布版本的反馈,都会对系统的有用性产生不好的印象. 这使TestOps团队的心态变得至关重要. TestOps工具 对于TestOps团队来说,最重要的活动就是准确提供产品团队测试和接收反馈所需的工具. 对于敏捷产品团队和

android开发利器--站在巨人肩膀上前行

本文主要介绍有助于android开发的三方平台和网站. 一:开发阶段 1:SVN(一个开放源代码的版本控制系统) 团队开发没有服务器,代码管理就没那么方便了,推荐taocode阿里开源网站,方便团队开发,不用安装客户端,方便快捷. 2:服务器(一个管理资源并为用户提供服务的计算机) 团队开发初期,资金有限没服务器?阿里云免费使用6个月,新浪云也可助你一臂之力. 3:android论坛(在线答疑,资源共享,分享心得) 没有名师指路?EOE论坛追求提问没有0回复,解决问题好帮手;CSDN最大的中国I

站在巨人肩膀上——vb.net学习

jeecg v3.0入门视频 链接: http://pan.baidu.com/s/1bnrMfiJ密码: 8q0k MiniDao持久层 入门视频 链接: http://pan.baidu.com/s/1eQGc4W6 密码: stst JEECG-OnlineCoding<企业招聘系统> 视频 链接:http://pan.baidu.com/s/1sjHHVM9 密码: os7b JEECG公开课视频 链接: http://pan.baidu.com/s/1pJFeiiJ 密码: cr75

解决问题的方法--站在巨人肩膀上思考1

项目中使用js进行数据前台的显示,遇到一个问题和解决方法,对解决方法进行思考.      后台传数据给js,js负责把得到的数据放到img标签的title中,这时问题出现了,后台的数据又特殊字符&XXXX;("·"),这样在title中显示的时候就成为了的字符了. 1.于是就开始搜索怎么使用js把&XXXX;转换为"·",找了很多文章写的都不是很好,写了自己一套的js转义函数进行转义,这个问题没有这么复杂. 2.开始思考jquery有什么好的方法,没

站在巨人的肩膀上,C++开源库大全

程序员要站在巨人的肩膀上,C++拥有丰富的开源库,这里包括:标准库.Web应用框架.人工智能.数据库.图片处理.机器学习.日志.代码分析等. 标准库 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分. Standard Template Library:标准模板库 C POSIX library : POSIX系统的C标准库规范 ISO C++ Standards Committee :C++标准委员会 框架 C++通用框架和库

站在巨人的肩膀上学习Android开发

我们知道,一开始最好的学习方法是模仿,尤其是模仿巨人.那说到Android开发的模仿自然就是分析并研究主流程序的布局.实现方法,进而提升自己的技术. 第一招----逆向工程 要分析"巨人"们的软件,自然免不了逆向工程,即将APK程序转化为我们可以看的懂得源码.这个google官方已经帮我们做好了工具,apktool就是一款很好的逆向工具. 下载地址为:http://pan.baidu.com/s/1kTqRhaR 我们以分析微信为例来说明这个工具的使用: 你只需执行如下命令,即完成了反

站在巨人的肩膀上才能看得更加远[Amo]

本来只是路过,写详细一点.我看楼主浮躁得不得了.现在什么都不要做了,先去看几遍<不要做浮躁的嵌入式工程师>这篇文章,想清楚了,再动手吧.我做了个实例,不用ST的库来点LED,解答你的问题我的 KeilMDK 3.5我的STM32板子奋斗版是 ,IC 是 STM32F103VET6调试工具 JLINK V8LED 接在 PB5 ,高电平点亮既然楼主说一定懂C语言了,那么对于下面我的问题,不查百度,完全靠自己,懂多少?然后查了百度之后又能懂多少?(一)新建 keil 工程,IC选择 ST 公司的

站在源码的肩膀上全解Scroller工作机制

站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05

站在巨人的肩膀上——人事项目数据导出word

最近在做人事项目中的,数据导出word,具体的说就是从web客户端页面获取信息,添加到信函模板中,再导出为word文档.总结一下,学会了两种方法,1.通过将word模板转换为html文件,输出word.2.利用第三方组件Aspose.Words操作word模板,输出word. 一.通过将word模板转换为html文件,输出word 1.制作word模板,在word文档中要添加内容的地方输入占位符. 2.把word模板另存为html文件. 文件-另存为-网页htm文件. 3前台代码 <asp:Bu