前言
虽然我也不知道到底 TestOps 这个名词是谁发明的,在我当初注册和使用 TestOps 这个名词时,我搜索了相关的网页也就得到了一个微软曾经有工程师提过这个名词而已,如今这个名词越来越多的出现在大家的眼前(QAOps 在埃森哲的文章中有出现)。
由来
TestOps 顾名思义测试运维,我在17年8月12日突发奇想的一个名词,正巧没人注册所以拿下了 testops.cn 和微信订阅号的该名字。应该说 DevOps 是 TestOps 一个很好的引导,既然开发和运维在一起做技能栈合并,那么为什么不让测试和运维做技能栈合并呢?在测试初期大多数测试都具备测试和运维的能力,因为搭建测试环境,监控测试甚至生产环境是很多测试负责的。现在由于测试环境的复杂,导致测试人员逐步失去了部署,监控,分析的能力,极大的限制了持续测试的效果。
TestOps 正是在这种情况下被提出的,解决 DevOps 流程下技能栈整合为开发赋能。
随着我对 DevOps 和敏捷的逐步深入,对于 TestOps 的定义也会有所变化,这也是一个必经的过程
定义
TestOps 测试运维是指具备测试和运维技能,作为敏捷团队中跨职能的一种技能栈多专人才。
在持续集成和持续交付下,当开发已经完成了构建脚本、运维解决了自动化运维发布,这个时候流水线的瓶颈就出现在了测试上。仅靠测试开发来完成测试自动化已经完全不够,测试需要一方面需要衔接 TDD 的自动化和左移提前设计测试的需求,另一方面也要维护线上系统的问题跟踪。在运维知识基于容器及编排工具的成熟下,测试人员跟进运维的代价也逐步减少,从而降低对运维的依赖,进一步解决独立构建测试环境、测试数据、测试脚本、测试执行,从而高效推进持续测试。

通过持续协作完成 TestOps 的技能栈跨越

测试人员需要负责左移的用户故事(需求)评审、自身的测试设计和测试脚本开发,测试执行;另一方面需要运维端的知识来解决测试环境、测试数据及监控;

误区
TestOps 是一个职位
很多初学者对 DevOps 的理解仅仅存在于开发与运维,然而在官方定义中 Dev 是针对研发团队的,而研发团队是指(业务 + 开发 + 测试),打通敏捷在研发团队与发布运维的最后一个跨部门是 DevOps 的突破。所以 TestOps 是面向于 DevOps 体系下的一种职能定位,更加强调在研发团队中测试人员应该具备运维能力来赋能给开发,提供针对代码的全方面服务,而这个理解和阿里的某些体系有很多不谋而合。

展望
最近越来越多的公司在落地 DevOps 流水线的时候都发现了传统的测试开发无力解决流程上的问题,仅仅完成自动化测试这样的单一维度工作是不行的。TestOps 也被越来越多的提起,被大家逐步认可。

合作
TestOps 是个开放的理念,欢迎有能力的朋友来一起规范、推动。
2019 年开始会在全国主要城市推动 TestOps Meetup 活动,与大家分享交流 TestOps 相关知识体系。
https://www.hudongba.com/u/g0oxou.html

关于作者
陈霁网络 ID 云层 持续测试、TestOps 测试运维推动者
DevOps、敏捷测试资深专家
阿里巴巴研发效能事业部认证架构师、腾讯课堂认证讲师、Exin 认证讲师、华为云/阿里云 MVP
多个行业峰会的分享嘉宾、霁晦科技创始人。著有《性能测试进阶指南-loadrunner9.1 实战》、《性能测试进阶指南-Loadrunner11 实战》系列、《LoadRunner12 七天速成宝典》、《敏捷测试实践指南》“即将上市”。10 多年培训经验、为行业内数百家公司数万学员提供测试技术咨询、培训、服务。DevOps Master、PMI-ACP、Agile Scrum Master、SAFe5 Agilest、ACA 证书获得者、DevOps Foundation 国内首批认证讲师,TMMI 会员。《测试敏捷化白皮书》项目经理。

微信公众号


↙↙↙阅读原文可查看相关链接,并与作者交流