一、背景介绍
渲染作为酷家乐通用的中台能力,一直承接面对较多上游业务。渲染类型多,渲染流量大。
面对大量业务问题反馈及工单数据,消耗了大量人工成本,尤其部分效果问题的沟通确认。
问题排查与回归压力大,快速迭代背景下对测试要求极高。
有限的人力面对海量业务时,总会捉襟见肘。
如何在此背景下做好业务质量保障,成为大家面对的一大难题。
我们的目标则是打造业务稳定质量可靠的中台,希望能做到以前几点:
- 业务快速对接
- 工单快速处理
- 质量稳定可靠
- 回归高效快捷
二、思路讨论
任何问题的解决都离不开人、工具和方法。对于业务质量问题,我们同样认为,流程、工具和团队建设都是必不可少的。
- 通过流程化规范化处理业务对接问题
- 通过平台工具建设提升业务效率,不断赋能业务
- 通过团队建设,建设一支协作紧密的团队,不断保障流程持续运转与平台建设
2.1对于流程体系建设
建立完善需求、设计、推测、部署、灰度、线上变更一系列规范,通过工具的方式完成关键节点识别与通知,不断完善各个节点的流程对接
- 产研流程建设:通过敏捷迭代治理,不断规范测试流程、线上操作与规范;规范发布标准流程,降低业务影响
- 业务线支持机制:统一中后台对接业务模式,设置关键角色跟进响应;整套体系赋能
- 应急与oncall:建立应急响应手册与oncall制度,线上问题高速高效处理
流程对不同业务大同小异,关键在于适用于当前团队,并能够持续推行完善。
2.2 团队共建
建设产研大团队,围绕不同业务属性,在对接和沟通中建设一支协作紧密运转流畅的团队。
对于测试本身来说,我们强调领头羊的作用,不断完善各项能力,鼓励探索各类有益实践。同时会将好的BP复制到其他业务线,实现以点带面的效果,并铺向大团队。
对于工作流,我们则跟进不同类型问题,推动相关角色的协作。如敏捷迭代治理,主要为产品、研发和测试同学的协作;工单问题排查,则为客服、技术支持、研发和测试对接模式。
2.3 工具建设
对于业务质量来说,从需求开始到上线后的一系列监控反馈,中间涉及多个环节,相应的也会有不同工具和平台支撑业务流转。
比如在敏捷迭代管理中,kaptain作为统一的任务管理平台系统,对于整个需求的生命周期管理非常重要。当然,这里更多会是基于流程的任务管理才会更加科学。
对业务测试与通用回归能力,我们有Apollo接口测试平台与Hades UI自动化测试框架,发布节点会执行CI卡点。
对于上线后的监控,有中间件监控以及业务巡检,可以实现日志、接口等不同维度的巡检能力,覆盖保障业务。
但是对于业务问题定位,及业务属性较强的回归能力,则需要业务线各自支持。
因而基于现状,我们实现了渲染的定位回归平台以及回归平台,进一步完善我们的质量保障手段。
三、平台能力建设
基于上述讨论结果,在充分利用当前已有能力和平台框架的基础上,紧贴业务建设多维度工具满足业务保障需求,实现工具平台化生态化
3.1定位能力建设:
面对业务线多,数据量大,所有问题必须从渲染侧倒序排查的问题,我们对定位工具实现以下几个关键目标
- 复杂链路下各个节点数据定位与排查能力
- 围绕渲染方案、渲染速度、渲染结果等各个维度的数据快速定位能力
- 复杂链路下的任务流转,串联场景并实现快速定位,并实现链接化定位能力
- 复杂业务场景数据的可视化建设
- 支持业务线数据定位能力快速接入
- 建设围绕渲染为核心的快速定位能力工具,支持业务线快速定位
- 围绕渲染链路数据,建设各类定位工具,完善渲染体系定位生态
- 赋能业务方与前线问题排查处理,释放人力
下图是定位平台核心能力,将所有渲染任务通过生命流转树的方式,记录所有关键节点数据,包括准入准出,从而为问题定位提供了极大便利。
并在此基础上,围绕渲染业务链路,不断拓展相关问题定位能力
关键能力一:任务流转树
如下图所示,定位平台实现任务全生命周期数据记录,并能够链路化展示关键节点状态,实现所有节点出入数据、状态、节点数据解析支撑。从而对渲染链路问题定位一目了然
上述的各个节点有不同的内部流转,比如 第一个关键节,点击我们可以看到该阶段下的关键数据和子节点
关键能力二:数据可视化
对于3D业务数据复杂不直观的问题,我们将业务数据可视化,支持3D拖动展示、业务数据过滤,从而业务线数据一目了然。为问题定位提供了极大便利,尤其是3维数据变更相关问题。
关键能力三:业务线赋能
任务流转树的概念,也通过二方包的形式提供给业务线,对于其他非渲染链路的数据,可以快速接入,从而实现定位能力的复用。
支持业务线数据快速接入,可以业务线链路节点自定义,将上下游场景化串联,从而打通断头路。如用户模型上传解析处理链路的各个节点,完成接入,方便相关问题的问题节点识别与处理。
关键能力四:渲染定位生态 丰富定位能力
除了上述渲染链路相关问题定位,围绕渲染其他数据,我们不断完善了相关数据的快速定位工具,如:方案图册数据快速查询、速度耗时快速诊断、渲染结果定位与数据修复,对于用户反馈问题可提供快速处理能力。
3.2回归能力建设
渲染上游对接了几十个不同业务,任务类型可达300+。
中台的快速迭代背景下,频繁改动不可能每次都协调上游业务协助回归测试。
同时,渲染场景的差异、速度和效果,都是我们需要提前考虑的情况。因此我们设计的大概思路如下
- 分别从前台、中台、后台三层,建设各类回归能力,多方位覆盖线上业务场景保障核心链路
- 提供用例快速生成及管理能力
- 支持回归结果的验收与效果的比对
- 打通回归能力与定位能力,回归能力工具化、业务化,通过回归能力实现快速问题定位,并反哺回归用例集
- 渲染回归能力好不好,如何评价?
- 如何实现渲染图效果的diff能力
- 回归能力如何快速实现问题定位
- 回归问题如何与定位能力快速打通
- 输出赋能业务线,降低中后台在业务线用例的回归成本
关键能力一:多样化的回归能力
回归能力分层,分别从前台、中台及后台不同维度支持独立回归能力,各自的业务回归不再强依赖上游, 只需关注自己业务的节点逻辑。实现发布与回归上的解耦,不再需要相互确认。
如下图所示,红线截断处即表示一个渲染任务在不同截断的节点。回归支持了从各个节点独立回归的能力,能保证互不依赖和数据的一致性。既可以独立回归,也可以为下游业务的回归提供协助。
关键能力二:用例快速生成与管理能力
测试用例一键录入、用例管理模块化场景化、定时回归与自由执行、中台场景收集、覆盖海量业务线、输出赋能业务线简单易上手
1、基于定位平台的任务流转树,我们可以快速将线上数据转化为测试用例,只需要提供一个任务的id,即可一键录入用例。极大提升了构造业务数据的效率。
录入方式上,支持多种方式的用例录入。除了流转树,也可以将用户自己保存的数据一键加入。
同时,可以根据不同业务线标识,快速从线上环境筛选数据转换。
2、用例标签管理。如下图,用例完成后支持用户自行打标签,平台也会根据用例数据识别一些关键标签,方便其他用户筛选复用。
3、同时将用例通过测试集的维度将同一类型的用例管理起来,方便同时回归测试。
4、对用例集分析,排查确认当前用例类型覆盖情况,以及任务结果执行整体概况,省时省力。减少人力维护成本。
关键能力三:回归结果验收与效果比对
快速展示回归进度与结果
支持类似任务效果比对,并通过diff效果图的方式展示,方便人工快速确认,如下图。
如同一类任务,上线前后,通过在beta环境和prod环境的效果验收对比,能够快速回归效果变化,尤其细微差异变化,能够减少人工误判
同样对视频,也支持同步播放能力,辅助确认效果变化差异
3.3发布拦截能力建设
围绕业务发布痛点,建立日志比对能力,最大化问题前置暴露。尤其海量error日志识别,需要在前期识别正常业务日志,并将可能异常的问题抛出来由开发确认,并纳入到发布流程规范中。
如下图,我们在各个阶段提供了新增日志与存量日志的识别能力,并通过灵活的更新与通知方式,提升各个阶段的测试验收确认
四、总结
通过一段时间的实践与完善,当前我们基本形成了以下固定协作模式
- 建立渲染各类对接机制,流程反馈完善工具的循环
- 工单响应流程化
- 问题高效对接标准化
- 不同角色各司其职
- 效能工具建设,工具支持流程建立与流程驱动
- 问题定位前置,释放研发资源
- 研发重点处理高优工单、疑难问题
- 新的能力与方法进一步平台化前置赋能,实现正循环
- 定位平台提升前线自助定位能力
- 业务对接与排查团队共建
- 团队全员工具建设能力
- 专项问题建设最佳实践团队
从结果来看,月均故障由6降到不足1个,每周发布时间由1d降到不足2h,高效响应支持30+业务线,平均问题处理时间下降70%,整体提效较为明显。
同时对于测试同学,各个业务团队合作更加高效,面对研发同学的相关问题对接沟通方式,也由反复督促变为通过监控变更和数据度量的方式。团队对接高效顺畅。