质量模型演化进程
DevOps(Development 和 Operations 的组合)是一组过程、方法与系统的统称,用于促进开发(RD)、产品运营(PM)和质量保障(QA)部门之间的沟通、协作与整合。
简单来说,其核心理念是提倡开发、测试、运维人员之间的高度协同,在高频率部署的同时,保证生产环境的可靠性、稳定性和安全性。
“升级”到 DevOps 后,有几个特点,线下有完整的质量流水线在检测项目和代码,从多维度去检测质量,同时不需要测试人员干预,可以说 DevOps 将会干掉测试,干掉那些纯手工测试的测试,因为 DevOps 的高度自动化,解决了很多功能测试所能覆盖的问题,而且在功能、性能、安全、兼容性等层面测试保障。具体几个特点,
如果需要做到 DevOps,重要的前提是把项目和代码的流程标准化,各角色如何配合,各项目阶段如何做到准入。同时需要把人为的执行流程,使用工具管理起来。既保证了流程标准化,也同时对于项目的数据做到集中共享。推荐使用 jira。
DevOps 是一种框架,类似于一艘航母,需要装备“电磁炮”,“战斗机”,“核潜艇”等等,才能发挥最大作用。从项目开始,DevOps 这艘航母就开始保障项目质量。从深度上讲,单测、模块自动化、集成自动化、系统自动化,多层覆盖;从广度上讲,功能测试、性能测试、兼容性测试、静(动)态代码扫描,多维度覆盖。这些测试组件,有的叫测试服务化,是 DevOps 最尖端的武器。在配合项目流程场景下,分别从代码开发、提测准入、功能回归、全链路压测、线上回归等等,对项目提供质量保障
没有 DevOps 时,测试服务(工具/平台)是游离在项目之外的,即使有工具平台,但缺少完善的使用场景,对于不同的业务,不同的端,不同的测试同学,所使用的工具平台是不一样的,同时对测试场景的制定,也需要线下制定,然后手动,非常费时成本较高。而 DevOps 是无需人力干预,从项目开始就在保障了,整个流程中,都是自动的,且在每个环节都有标准,保证质量的持续提升。此外,在不停地持续构建部署中,做到测试前置,在交付给 QA 的代码,是保证高质量的。
一般评估项目的质量,是从项目效率、代码质量、服务稳定性、线上事故、用户反馈等几个维度来评估的。在 DevOps 中的各个武器,都需要对质量检测做数据输出,比如说自动化测试的代码覆盖度率、接口覆盖率、bug 率等等;而项目管理工具,可以对项目的各阶段效率数据化;从线上监控,可以拿到事故的数据指标,什么级别,什么原因,影响面等等;用户反馈接口,获取用户的数据,并通过一定算法(后续文章可以解答),抽取有效信息并聚合。如此,线上、线下、用户侧多个场景拿到数据,评估整体项目的质量。
基于高效,高质的持续部署方式,测试同学不用在执行重复低效的点点工作,而更多关注在如何提高 DevOps 的测试赋能(后续也会提到),这样 DevOps 第一批干掉了纯测试的同学(说真的,这些同学前景堪忧),这时候从常规的比例提高(1:3 => 1:5),而测试赋能,把测试技能输出给研发,这时候研发自测的效率和质量更高了,新功能测试的工作量降低了,测试的排期进一步压缩(1:5 => 1:7),而 DevOps 的武器库使得更多的项目,无需测试参与,极限情况下可以把比例压缩到1:10。这就是阿里之前提过的,干掉 QA,正式通过 DevOps 方式
现在大厂都在实施 DevOps,BAT 依托于各自的云计算,优秀的团队,快速地搭建地 DevOps。
作者:yushu_bd 链接:https://www.jianshu.com/p/dd4e09384a20