二张图解释什么是DevOps、TestOps、TestDev
DevOps
wikipedia解释:DevOps是一种软件工程文化和实践,旨在统一软件开发(Dev)和软件运维(Ops)。DevOps运动的主要特点是在软件构建的所有步骤中极力提倡自动化和监控,从集成、测试、发布到部署和基础设施管理。DevOps的目标是缩短开发周期,增加部署频率,更可靠的发布,与业务目标紧密结合。DevOps是一个完整的面向IT运维的工作流,以IT自动化以及持续集成(CI)、持续部署(CD)为基础,来优化程序开发、测试、系统运维等所有环节
Devops的技术栈如下所示:
从上图可见,想从事Devops相关工作是非常困难的,涉及的技术领域及其广泛,下面这张图做了更为细节的划分,也更为贴近实际工作。
从上图可以看到,对于开发、测试、和运维又做了更为细节的划分:
DevOps 开发兼运维
TestDev 开发兼测试
TestOps 测试兼运维
DevOps 和TestDev更注重编码能力(本质就是开发),作为有十五年测试经验的老鸟,我更推荐大家往TestOps方向发展!
TestOps
TestOps,即测试运维。Testops 还要站在测试角度推动研发和运维,将持续测试运用到持续集成中的我们都可以称之为 TestOps。简单的说:全栈测试+运维= TestOps。
TestOps流程
当开发提交代码后,每天晚上系统自动触发静态检查体系(sonar);
开始调用xunit框架完成自动单元测试,确定所有单元测试用例通过则进一步进行打包发布到测试平台,否则将错误信息返回通知相关人员;
打包完成后自动发布测试平台,测试平台会进行接口及UI的自动化,如果都正常通过则生成测试报告发布测试版本到手工测试平台;
手工系统测试及A/B测试。
TestOps未来的价值
团队价值:推动先进的团队协作方式,持续交付生命周期的把控,持续集成高质量要求。
个人价值:DevOps和TestOps技能,自动化测试推动持续交付,主导开发流程的生命周期。
DevOps能推动整个测试和运维团队统一整个研发流程,帮助团队更敏捷的提交产品。他能解决流程问题,但无法发现开发过程中的测试的缺陷。只有更专业TestOps的站在专业的测试角度推动开发和运维一起进行。TestOps和DevOps形成一个完整的持续集成和持续交付体系,才是真正提升整个团队的效率。
TestOps、DevOps、 Full stack的比较
TestOps vs DevOps
TestOps主要目的是推动整个研发体系与发布体系更多在质量方面。DevOps是从研发推动配合运维和测试,而TestOps是从测试角度推动研发和运维。所以TestOps才是真正把测试落地到整个研发体系的关键岗位。
TestOps vs Full stack
全栈是Testops的升级, Full stack可以理解为 DevTestOps。