QA如何体现价值?探索构建软件产品质量保障体系
受疫情影响,有短暂的专属时间来总结、反思、学习。下面的内容将分几个部分来介绍加入公司两年多的一些工作总结、心得。
在介绍探索构建质量保障体系历程之前,分享下对软件测试工程师这个职业的理解。
01
测试团队的价值
一家公司为什么要有测试团队存在?
基于国内大环境和软件开发公司现状,一般公司随着业务的发展会对线上产品质量有要求,需要有一个特定角色来帮助开发来检验交付物是否符合需求的预期,对于对产品质量有要求的公司,那这个角色就是专职的软件测试工程师。给大多数人的印象是测试人员是来找bug的,这么理解也没错,找bug只是测试的其中一项工作。
测试有两种角色,QAT,业务质量保障;QAD,测试开发。不论是哪种测试工种,做到好的QA,测试工作必须贯穿整个软件研发流程的每个阶段,每个阶段中的每个环节都需要有质量的完成,才能做到确保最终上线有质量。重要的是在质量和效率上坚守和找到平衡点。
1.1、价值一:产品质量
测试团队首要的工作是确保线上不出P0P1级的缺陷影响生意,同时也需要在线下提升产品质量。高质量也为高效率打下基础,我们常说“没有质量就没有效率”。
1.2、价值二:降本增效
可能大伙第一反应为什么不是效率,我这里更进了一步,在提升效率的基础上还要降低成本。效率,从“利他”作为出发点,不仅仅是测试本身的效率,也需要帮助开发团队提高效率,缩短研发周期,帮BD、产品和运营团队提高工作效率。
02
探索构建质量保障体系起步
公司中的各个团队都会经历0到1, 1到n的过程,测试团队也不例外
2.1、0到1阶段
2.1.1、2018年现状
时间回到2018年2月,从几个方面来介绍当时的情况
-
人员
-
四位测试人员,加上我5个。
-
测试活动
-
在开发结束后通知测试有任务测试,这时才展开测试工作,存在的问题:
-
测试不知道何时会有任务来,没有任何准备和预期,措手不及的展开工作
-
没有时间写测试用例,因为手上有已经有需求在测试,并且很紧迫要上线
-
测试工作只在UI层开展手工功能测试,有零星的压测
-
上线时间
-
被通知有xx功能需要测试,同时被告知“xx时间上线”,待测功能上线时间在没有测试任务到来之前未知
-
测试流程、规范
-
新功能测试完,部署到预发,在预发环境验证通过上线,生产再次验证新功能。流程和规范比较单一。
-
研发/测试流程
-
传统的职能交付式流程,功能全部开发完提交测试
-
分支发布方式
-
分支开发和测试,分支发布,曾经同一个工程同时存在多达十几个分支,导致上线原有功能代码被冲掉,再次紧急验证后上线,内耗严重。
-
基础设施
-
Jenkins部署开发、测试、预发、生产 环境
-
禅道管理缺陷,但是以需求功能来创建的项目,没有规范来指引如何创建项目、版本、人员,后续缺陷统计分析不方便
-
测试环境有,但是测试活动没有在测试环境中开展。测试环境管理和部署由开发或运维来操作
2.1.2、改进第一步
一句话概括现状,测试工作相当被动,不仅仅是测试工作,也包括开发工作、产品工作。
前段时间,周末在家里陪宝宝一块观看人类来自哪里的视频,介绍人类是怎么从地球上的第一个细胞经过几亿年的进化为现代人,生命进化如此强大、震撼,进化行为贯穿始终,“要么进化,要么消亡”频繁上演。
其实生活、职业生涯也是如此,“要么精益,要么“消亡””,这里的消亡打引号,意思是平庸或被淘汰或出局。
2018年3月某一天,基于上面的问题,当天晚上给产品、开发、测试分享前公司的敏捷实践,从此开启公司研发过程引入scrum框架,开始试点的第一个需求。
改进对比图
-
人员
-
到2018年5月搬入新地址,测试人员增至12人,其中有测试开发、性能测试工程师,新加入的人员80%能读写代码
-
测试活动
-
参加需求评审、编写测试用例、用例评审
-
开展接口功能测试、UI功能测试、接口性能测试、兼容性测试、接口自动化测试、探索测试、回归测试
-
引入scrum框架
-
上线有节奏,火车模型,定期发布,上线时间固定已知
-
滚动式的开发、测试,任务拆解到1-2天,每个任务开发完成后提测,马上介入测试,做到持续测试。意味着敏捷开发、测试活动开启。
-
研发过程指标,cc通过率、cc及时率指标确定和统计
-
测试流程规范
-
梳理制定测试流程规范,包括有里程碑意义的开发自测、冒烟测试、回归测试
-
分支发布方式
-
主干开发主干上线
-
功能代码开始逐步解耦,特别是hotel工程
-
基础设施
-
测试环境管理和部署由测试人员来操作、测试活动在测试环境开展
-
jira管理缺陷,便于统计、分析
-
千里眼开始搭建
03
构建质量保障体系
从上面的改进涉及到几个方面的活动,涉及到各个角色部门,可以称为综合治理,这几个方面的活动远远不够
3.1、四个部分
整个体系大致分四个部分
-
基础设施
-
关键词:高效、稳定
-
目标:构建各团队稳定、高效的工作环境
-
线上
-
关键词:安全、稳定、监控、定位
-
目标:为用户提供安全、稳定的产品和服务,并能快速发现、定位、解决问题
-
上线中
-
关键词:发布
-
目标:按需、分级发布新功能新产品
-
线下
-
关键词:质量、效能
-
目标:交付高质量的用户需要的产品
质量保障体系全景图
按产研阶段:
橘色部分表示构建中或还未开始构建
从各角色域:
写在最后,
质量保障体系的构建是一个长期工程,一般跟随公司的发展,分为几个阶段:
-
产品从无到有阶段,以最快的方式、最少的精力验证商业模式为主,功能可用即可,在质量的重点在于保障核心功能点的正确性。
-
功能/产品发展期阶段,功能需求爆发,功能、性能成为质量保障的重点。
-
产品稳定阶段,安全、稳定、监控预警、快速定位修复成为质量保障的高优先级。
你觉得呢?有任何想法欢迎在评论区讨论或留言。
另外,研发质量效能、职级晋升、职业规划等将会持续输出干货。
关于我,二十年QA、测试、敏捷研发、研发质量效能相关经历;历任百度、易宝、艺龙、直客通、蔚来等QA负责人、测试总监及研发质量效能负责人;在求职面试、职业规划、职级晋升、职场生存潜规则、敏捷研发、质量效能领域专业知识和落地实践有相当丰富经验。