最近很多同学在公众号后台留言,咨询质量内建和质量门禁相关的问题。
其实质量门禁在工作中大家都在执行,只不过可能换了个新名词,大家理解上有了误差。
从我的角度来看,质量门禁是一种更适应当下软件研发交付流程的方法论。
目的是更清晰的定义从需求到线上发布交付这一整个流程中,每个环节的准入准出标准,以及如何更科学合理的制定门禁这一概念。
这篇文章,从我的角度来聊聊质量门禁相关的话题,以及在工作中如何落地。
如何理解质量门禁?
如上图所示,一般来说一个软件产品或者技术项目,一个生命周期大概需要经过这几个步骤:
- 项目计划:项目背景、项目目标、项目范围、开始截止时间,投入的资源等;
- 需求描述:描述这个项目具体的业务模块、业务场景和交互逻辑,以及影响范围;
- 产品设计:包含产品原型图、UI、技术实现方案等相关的内容;
- 编码实现:研发同学通过代码实现需求和产品设计所描述的功能;
- 测试验证:测试通过设计case,从各个维度去验证研发实现的软件产品满足预期指标;
- 线上交付:测试通过,运维同学编译、打包、更新配置后在线上环境进行服务发布,交付用户使用;
我们经常会说一句话,产品质量是设计/构建出来的,不是测试出来的。
测试日常的工作内容主要是从不同的维度和场景验证交付的软件系统满足产品预期需要满足的各项指标。
换句话说,从工作内容来说,测试同学更多的像个拿着锤子砸钉子的人。
我们还知道一个道理,风险越早发现越早修复,成本就越低。
而质量门禁的作用,就是从需求阶段开始,尽早的介入需求设计、产品设计和技术方案设计等环节,通过评审、提问等方式,尽可能多的发现存在的漏洞和不足。
然后通过制定科学合理符合项目实际情况的准入准出标准,来保证每个环节流转到下一环节的产出物,质量更高。
质量门禁如何落地?
上面提到了,质量门禁的具体实践,其实就是制定准入准出标准,并且尽可能把控这些标准,严格保证产出物的质量。在具体的工作实践中,我认为质量门禁落地大概分为如下六个步骤:
选择对象
首先要选择合适的门禁对象,比如要把控提测质量,我们的做法常见的就是P0场景的冒烟通过率。要提高编码的质量,我们可以从单元测试覆盖率、编码规范等角度切入。在选择对象时,要注意这两个原则:
- 范围明确:一定要界定清楚选择的对象对应的范围,不要模糊不清或者范围重叠;
- 简单入手:相比于挑选难度大的对象,我更建议选择更容易解决的难题。这样做的好处一方面是不需要投入太多资源和时间,另一方面也可以尽快拿到结果,便于评估后续是否要加大投入和扩大范围;
定义指标
指标的含义是,从哪些维度衡量门禁把控的对象,对其进行客观合理的评估。比如提测质量,我们通常的做法是测试提供P0的case,研发确保自测通过且需要有对应的测试报告。在定义门禁指标时,需要考虑如下两点:
- 共同目标:即定义的指标是研发、测试都认可且相信其是客观合理的,而不是随便定义;
- 责任明确:要明确定义的指标中,谁来做什么,不同岗位的任务和责任是明确的,切忌大包大揽;
确定数值
定义好共同的指标后,需要确定具体的度量数值和度量方式。
以冒烟通过率为例,比较通用的数值是测试提供P0的case自测通过率必须100%;以单元测试来说,可能存在历史负债,因此在刚开始确定数值时,可以设定2个维度的数值:参考值和通过值。
- 参考值:业内大厂或者标杆案例的度量数值是多少,我们的目标应该在多少时间内达到这个数值;
- 通过值:刚开始做单元测试,可以选择小范围的试点,比如第一个版本选择增量代码覆盖率不低于20%,后续根据效果逐渐扩大范围,提高通过值的标准;
能力建设
选择了合理的对象,定义了共同认可的指标和合理的度量数值,接下来就是如何执行和度量评估的问题。
在执行时最好是自动化执行,尽量避免人工执行。同时,测试同学一定要具备度量和检查的能力,而不是相信人的自驱和自制能力。在执行和度量时,也需要注意这两个方面:
元数据:执行的结果和度量的数值,仅需要一份即可,否则多个数据源,反而没有了统一可信的数据来源;
强制检查:对门禁对象进行执行和检查时,一定要有强制度量和检查的手段,不能跳过,不要由于需求紧急等因素就放过,否则质量门禁就失去了存在的意义;
处理规则
质量门禁的本质是定义科学合理的准入准出规则,因此规则的定义、执行和度量上,要有清晰的定义。
同时,规则不是一成不变的,而是要根据项目和质量数值的变化不断调整,持续复盘更新。
要不断跟进执行和检查的过程以及结果,对结果反馈尽快响应处理,才能更好的利用质量门禁来把控每个环节的产出物质量。
持续改进
质量门禁并不是制定好就完全要依照规则执行,不再变更。在执行的过程中,要弹性调整,切忌不断加码。
刚开始推行质量门禁时,一定会遇到很多的挑战和困难。遇到这些问题,采用渐进管控的方式,不断加深质量门禁的实践,不断拓展门禁的作用范围,才是更合理的方式。
而不是刚开始就追求大而全,这样做的话质量门禁很可能胎死腹中。我们都知道局部最优不一定是全局最优。
为了追求全局最优,刚开始就要做好清晰的定义和规划;但在落地管控过程中,要先从局部的质量门禁实践做起,不断改进和优化,最终达到全局最优的质量保障目的。
质量门径对质量保障的价值
业务和技术之间的关系是很有意思的。业务追求的是想法快速实现,变更快速响应,产品快速交付。而技术更在意的是实现难度、交付效率和交付质量。
表面看,业务和技术之间完全是2个维度,但其实业务和技术之间存在共同的目标,那就是更明确的范围、可量化的指标以及实现业务价值。
而质量门禁的作用,就在于提前发现和预防风险,提高交付质量,保障最终交付的产品,风险可控,质量更高。
混沌工程中,有个名词叫做“爆炸半径”。质量门禁的价值,其实就是在软件产品生命周期中,控制风险的爆炸半径。
标签:定义,数值,质量,落地,门禁,交付,度量 From: https://www.cnblogs.com/imyalost/p/17241931.html