一 背景
质量保障是一门基于软件测试的系统化工程,遵循渐进式的发展规律。通过因地制宜地制定落地策略,设计场景方案,获取试验结果,并加以循环往复。最终,在每一位得物测试工程师的共同努力下,积累出一套适应得物技术的质量保障方法论,即本文介绍的得物质量管理体系。
二 建设“四化”体系
得物质量管理体系,历经三年的建设,现已拥有了完备的机制、流程、方法以及工具。目标是通过实现标准化、线上化、自动化以及智能化,最终形成立体的得物质量管理体系。其中:
“机制”即:(研发)质量保障机制。以“迭代质量评审机制”为基础,每迭代开展,上线风险可控,方可准出。
“流程”即:测试&协同流程。分为测试流程以及协同流程。测试流程的应用,用于不偏不倚地反映研发质量;辅以测试质量校准。协同流程的有效应用则会帮助测试质量提升。因此,引入协同质量,用以稳定测试质量,保障最终线上稳定。
“方法”即:落地实施方法。以业务域“质量月”活动为主要载体,持续优化研发过程质量,包括跨域评审、CR合并、准时提测、冒烟通过、缺陷日清、缺陷引入、缺陷逃逸等基础指标。
“工具”即:质量工程工具。围绕稳定、质量、效率、安全、体验、合规为核心,完善工具支撑能力。每个工具的最终都会指向到核心的一项中去,如:RDC 用于使得研发流程标准化、线上化以及部分自动化,以提升协同效率,从而优化交付“效率”;质量大盘作为研发过程质量洞察的可观测性工具,服务于过程“质量”。现有的工具(研发工具链)如下图所示:
“迭代质量评审机制”是质量平台全域统一的评审机制。依托于质量大盘为主要工具,结合各业务域的质量保障组合策略,聚焦于每个迭代版本的质量与效能下钻分析。识别当前迭代内,影响到交付的风险以及相对应的规避措施,确保在低风险或者风险可控的情况下发布上线。
“内建质量”俗称“研发质量”,提测后正式固化。“测试质量”通过缺陷逃逸水平,反应测试覆盖的全面性,同时,可校准研发质量。“协同质量”用以稳定测试质量,保障最终的线上稳定。举例说明如下:
需求未能准时提测,带来的测试执行进度风险;
频繁过程变更带来估时偏差,返工损耗,甚至遗漏的变更覆盖。
“质量月”专项活动在得物技术各业务域全面推广,通过“事前”应用跨域 用例评审机制,拉通上下游协同技术实现与验证覆盖场景;“事中”应用“迭代质量评审机制”,有效评估过程质量风险,严格把控准出的需求质量;“事后”应用“线上事件复盘机制”,形成结果校验,以指导下一迭代在开发、测试、发布、生产各阶段的细节优化与改进。在取得全面结果后,该活动所倡导的“质量”关键词,早已融入到每一位得物技术人的意识中,日常践行高质量地交付标准。
“机制、流程、方法、工具”的关系,定义为机制设定了质量管理的总体框架和目标,流程定义了达成这些目标的具体步骤,方法是在流程的每个步骤中采取的具体实施技术,而工具则是执行方法和流程所需的辅助设备或软件。这四个概念相互依赖,相互促进,共同构成了研发质量管理的整体体系,确保产品和服务从设计到交付的每个环节都能满足预定的质量标准。
三 机制的目标与框架
质量是质量保障机制的立身之本,稳定是有效质量活动的自然结果。通过合理的故障定义与分级作为牵引目标,遵从不出大问题(故障),小问题快速恢复(冒烟点/事件),将故障影响尽可能最小化(故障影响 = 故障影响面 x 故障修复时长)的原则加以校验。
随着得物业务规模的迅猛发展,得物App可用率、资损防控、隐私合规、数据安全等方面面临着严峻挑战。得物技术依据业务特性分而治之,同时,依据生产故障等级逐层降级达到化整为零的效果,取得生产故障总数连续下降的佳绩。如下图所示:
质量保障机制的框架描述为:以质量管理白皮书 V2.0澄清阶段的质量目标,具象化地定义相应的执行规范与配套要求。在迭代过程中应用迭代质量评审,于准出前识别风险并做下钻归因诊断,形成风险降级或风险规避的具体措施,并加以在上线前落实;最终,通过迭代质量复盘,还原过程典型现场,举一反三;同时,以线上运营结果校准/修正目标及其配套规范的适配性。整个过程如下图所示:
进而通过重复上述循环,形成螺旋式的上升效果,有节奏地递进到更高的目标。
值得指出的是,经过上百个迭代的优化,研发质量显著提升超60%,技术债务大量减少70%;过程基础质量指标,如准时提测率、冒烟通过率稳定在99%以上。
四 流程与规范
得物项目管理,通过Sponsor 区分业务与技术两种类型的需求类型;同时,依据需求复杂度、规模等考量落入迭代或项目中,进行交付。针对四种组合,即业务迭代、业务项目、技术迭代以及技术项目。测试的流程与规范略有差异,分别制定了业务/技术迭代需求质量保障流程与规范、业务/技术独立项目质量保障流程与规范(含小项目)。下图为通用测试流程与规范:
其中,特别制定质量平台业务/技改需求质量保障方案,定义测试关键Action、准出标准、以及工具平台,细化指导测试团队开展工作,如下图所示:
过程中,基于case驱动优化改进,沉淀出跨域用例评审流程与规范质量平台跨域用例评审机制实施方案V2.0,以规避多业务域横向协作引起的边界问题未覆盖情况。
此外,针对业务/技术项目,制定质量平台业务/技改项目质量保障方案,细化测试Owner的职责与执行规范。针对业务刷数的场景,制定业务刷数测试方案,明确流程规范,降低高频的业务刷数变更带来的变更风险。
五 方法与工具
测试用例,是最基础的测试资产,正如代码之于API,API之于分布式系统。借助各类工具平台可转化或加工成多种形式的“测试产品”。而各类“测试产品”的应用依托于得物业务域的研发、测试同学的落地实践,通过三年的连续积累,形成了百家争鸣,蓬勃发展的态势。以下是一些典型的实践:
接口自动化测试,作为回归测试的主要方法,也是经典的测试执行提效方法。通过接口自动化平台,应用于开发自测、冒烟(准入)以及集成回归阶段。ROI呈现线性关系,对于高频迭代的模式下,自动化测试能够做到核心链路的可用保障;尤其在服务/接口迁移,架构治理等技改项目中收益最大化,为技术债务清偿保驾护航。
流量回放,作为上线前的测试兜底方法,通过流量录制回放平台,应用于预发阶段。通过简单的生产录制,预发回放方式,较低成本获得一次较真实的用户场景覆盖。结合接口覆盖率,挑选或构造增量流量到流量池,使得分布更全面。由于其低成本的应用方式,可低成本地应用于发布前的兜底测试;另外,针对服务/数据迁移,局部重构等变更极其应用友好,大大降低测试投入。
精准测试,作为辅助测试分析与执行方法,查漏补缺提升测试覆盖率,测得更准。通过精准测试平台,应用于冒烟阶段(提测后),依据代码变更,配合已维护的标签及绑定关系,如资损字段、资损码、(越权)敏感等。推荐测试用例执行覆盖。如果出现差集,即未有关联的接口,往往需要CR 并评估覆盖计划。其应用既能校验变更Scope评估准确性,又能评估测试分析的全面性,对于业务/系统模块的理解形成了正反馈。
监控告警,作为线下辅助测试执行的方法,查漏补缺拦截异常缺陷,测得更细。通过监控平台,应用于线下测试执行阶段。开发、测试同学共同制定业务告警规则,以实现告警聚合与收敛;在此基础之上,实现告警洞察与缺陷转化,以T或T+1日清方式加以良性应用。
前端巡检,作为用户体验的主动响应方法,每日巡检关注用户侧使用反馈,早发现早修复。通过前端巡检平台,针对存量URL 通过近xx日TOP访问记录导入,设置定时任务巡检;增量通过精准URL推荐导入,巡检覆盖。在预发阶段可以提前拦截JS Error异常,在生产运营阶段可以做到早发现早介入,先于用户主动拦截。
资损防控Dcheck,作为资损拦截的有效办法,实时对账,早发现早止血。通过Dcheck平台,以线上线下结合的方式应用。线下演练资损场景,并能起到脚本规则的保鲜作用;线上实时监听,异常告警。
在工具应用方面,值得关注的是,有三个成本需持续优化以逐步降低:
测试用例的“转化”成本(开发投入度)
工具间相互“支持”成本(集成费力度)
各类工具的“应用”成本(工具易用度)
下图是一些效率优化点及优化思路。
最终,有了工具原子能力清晰,组合应用便捷的效果,让测试工程师逐渐专注于对业务系统的深入理解,对技术实现的精细评审,从而完成合理的测试策略制定与敏捷实施。
六 聚焦“关键词”
得物技术“关键词”作为官方划的重点,是纷繁复杂工作开展的价值判断依据,亦是阶段复盘总结的中心思想,更是有效业务支撑的前哨与灯塔,指引技术工作做对、做好。以终为始,围绕“关键词”不懈实践,持续收获。
稳定,一般情况下是有效质量保障的自然结果。往往由稳定性或运维团队主导,对线上进行实时监控,故障应急响应。生产故障数及其分布是主要核准指标。策略上遵从:不出大问题,小问题快速恢复,将故障影响尽可能最小化,即:故障影响 = 故障影响面 x 故障修复时长。
效率,通过业务交付能力、计划保障能力以及过程协同能力自底向上逐级支撑与保障以实现高效的目的,也就是用数据呈现“多”与“快”,结合NPS 拟合业务体感。
体验,面向用户改善使用得物产品的体验。使得App更好逛,商品更好买/卖,售后更放心等。针对得物App进行启动、首响、性能、包体积、安全隐私合规等多方面的度量,基线防劣化以及竞品评级追踪。
成长,软件工程是一门重实践学科,实践、持续实践,实践中获得的积累就是工程师成长的获得。依据费曼学习法,结合博客想清楚、写出来、通过分享讲明白。
创新,通过“组合创新”、“AI创新”在稳定、效率方面深入挖掘找到有效的场景。稳定方面,聚焦覆盖全面性及覆盖颗粒度;效率方面,聚焦实施、运营降低。
七 总结
机制设定了质量管理的总体框架和目标,流程定义了达成这些目标的具体步骤,方法是在流程的每个步骤中采取的具体实施技术,而工具则是执行方法和流程所需的辅助设备或软件。这四个概念相互依赖,相互促进,共同构成了研发质量管理的整体体系,确保产品和服务从设计到交付的每个环节都能满足预定的质量标准。
质量保障机制的框架描述为:以质量管理白皮书澄清阶段的质量目标,具象化地定义相应的执行规范、要求;在迭代过程中应用迭代质量评审,于准出前识别风险并做下钻归因诊断,形成风险降级或风险规避的具体措施,并加以在上线前落实;最终,通过迭代质量复盘,还原过程典型现场,举一反三;同时,以线上运营结果校准/修正目标及其配套规范的适配性。
测试用例,是最基础的测试资产,正如代码之于API,API之于分布式系统。借助各类工具平台可转化或加工成多种形式的“测试产品”。
有了工具原子能力清晰,组合应用便捷的效果,让测试工程师逐渐专注于对业务系统的深入理解,对技术实现的精细评审,从而完成合理的测试策略制定与敏捷实施。
得物技术“关键词”作为官方划的重点,是纷繁复杂工作开展的价值判断依据,亦是阶段复盘总结的中心思想,更是有效业务支撑的前哨与灯塔,指引技术工作做对、做好。以终为始,围绕“关键词”不懈实践,持续收获。