2

MTSC专题系列——酷家乐渲染质量保障体系建设

 1 month ago
source link: https://tech.kujiale.com/mtsczhuan-ti-xi-lie-ku-jia-le-xuan-ran-zhi-liang-bao-zhang-ti-xi-jian-she/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

一、背景介绍

渲染作为酷家乐通用的中台能力,一直承接面对较多上游业务。渲染类型多,渲染流量大。

面对大量业务问题反馈及工单数据,消耗了大量人工成本,尤其部分效果问题的沟通确认。

问题排查与回归压力大,快速迭代背景下对测试要求极高。

有限的人力面对海量业务时,总会捉襟见肘。

如何在此背景下做好业务质量保障,成为大家面对的一大难题。

我们的目标则是打造业务稳定质量可靠的中台,希望能做到以前几点:

  • 业务快速对接
  • 工单快速处理
  • 质量稳定可靠
  • 回归高效快捷

二、思路讨论

任何问题的解决都离不开人、工具和方法。对于业务质量问题,我们同样认为,流程、工具和团队建设都是必不可少的。

  • 通过流程化规范化处理业务对接问题
  • 通过平台工具建设提升业务效率,不断赋能业务
  • 通过团队建设,建设一支协作紧密的团队,不断保障流程持续运转与平台建设

2.1对于流程体系建设

建立完善需求、设计、推测、部署、灰度、线上变更一系列规范,通过工具的方式完成关键节点识别与通知,不断完善各个节点的流程对接

  • 产研流程建设:通过敏捷迭代治理,不断规范测试流程、线上操作与规范;规范发布标准流程,降低业务影响
  • 业务线支持机制:统一中后台对接业务模式,设置关键角色跟进响应;整套体系赋能
  • 应急与oncall:建立应急响应手册与oncall制度,线上问题高速高效处理

流程对不同业务大同小异,关键在于适用于当前团队,并能够持续推行完善。

2.2 团队共建

建设产研大团队,围绕不同业务属性,在对接和沟通中建设一支协作紧密运转流畅的团队。

对于测试本身来说,我们强调领头羊的作用,不断完善各项能力,鼓励探索各类有益实践。同时会将好的BP复制到其他业务线,实现以点带面的效果,并铺向大团队。

对于工作流,我们则跟进不同类型问题,推动相关角色的协作。如敏捷迭代治理,主要为产品、研发和测试同学的协作;工单问题排查,则为客服、技术支持、研发和测试对接模式。

2.3 工具建设

对于业务质量来说,从需求开始到上线后的一系列监控反馈,中间涉及多个环节,相应的也会有不同工具和平台支撑业务流转。

比如在敏捷迭代管理中,kaptain作为统一的任务管理平台系统,对于整个需求的生命周期管理非常重要。当然,这里更多会是基于流程的任务管理才会更加科学。

对业务测试与通用回归能力,我们有Apollo接口测试平台与Hades UI自动化测试框架,发布节点会执行CI卡点。

对于上线后的监控,有中间件监控以及业务巡检,可以实现日志、接口等不同维度的巡检能力,覆盖保障业务。

但是对于业务问题定位,及业务属性较强的回归能力,则需要业务线各自支持。

因而基于现状,我们实现了渲染的定位回归平台以及回归平台,进一步完善我们的质量保障手段。

--.png

三、平台能力建设

基于上述讨论结果,在充分利用当前已有能力和平台框架的基础上,紧贴业务建设多维度工具满足业务保障需求,实现工具平台化生态化

3.1定位能力建设:

面对业务线多,数据量大,所有问题必须从渲染侧倒序排查的问题,我们对定位工具实现以下几个关键目标

  • 复杂链路下各个节点数据定位与排查能力
  • 围绕渲染方案、渲染速度、渲染结果等各个维度的数据快速定位能力
  • 复杂链路下的任务流转,串联场景并实现快速定位,并实现链接化定位能力
  • 复杂业务场景数据的可视化建设
  • 支持业务线数据定位能力快速接入
  • 建设围绕渲染为核心的快速定位能力工具,支持业务线快速定位
  • 围绕渲染链路数据,建设各类定位工具,完善渲染体系定位生态
  • 赋能业务方与前线问题排查处理,释放人力

下图是定位平台核心能力,将所有渲染任务通过生命流转树的方式,记录所有关键节点数据,包括准入准出,从而为问题定位提供了极大便利。

并在此基础上,围绕渲染业务链路,不断拓展相关问题定位能力

2.png

关键能力一:任务流转树

如下图所示,定位平台实现任务全生命周期数据记录,并能够链路化展示关键节点状态,实现所有节点出入数据、状态、节点数据解析支撑。从而对渲染链路问题定位一目了然

3.png

上述的各个节点有不同的内部流转,比如 第一个关键节,点击我们可以看到该阶段下的关键数据和子节点

4.png

关键能力二:数据可视化

对于3D业务数据复杂不直观的问题,我们将业务数据可视化,支持3D拖动展示、业务数据过滤,从而业务线数据一目了然。为问题定位提供了极大便利,尤其是3维数据变更相关问题。

5.png

关键能力三:业务线赋能

任务流转树的概念,也通过二方包的形式提供给业务线,对于其他非渲染链路的数据,可以快速接入,从而实现定位能力的复用。

支持业务线数据快速接入,可以业务线链路节点自定义,将上下游场景化串联,从而打通断头路。如用户模型上传解析处理链路的各个节点,完成接入,方便相关问题的问题节点识别与处理。

6.png

关键能力四:渲染定位生态 丰富定位能力

除了上述渲染链路相关问题定位,围绕渲染其他数据,我们不断完善了相关数据的快速定位工具,如:方案图册数据快速查询、速度耗时快速诊断、渲染结果定位与数据修复,对于用户反馈问题可提供快速处理能力。

7.png

3.2回归能力建设

渲染上游对接了几十个不同业务,任务类型可达300+。

中台的快速迭代背景下,频繁改动不可能每次都协调上游业务协助回归测试。

同时,渲染场景的差异、速度和效果,都是我们需要提前考虑的情况。因此我们设计的大概思路如下

  • 分别从前台、中台、后台三层,建设各类回归能力,多方位覆盖线上业务场景保障核心链路
  • 提供用例快速生成及管理能力
  • 支持回归结果的验收与效果的比对
  • 打通回归能力与定位能力,回归能力工具化、业务化,通过回归能力实现快速问题定位,并反哺回归用例集
  • 渲染回归能力好不好,如何评价?
  • 如何实现渲染图效果的diff能力
  • 回归能力如何快速实现问题定位
  • 回归问题如何与定位能力快速打通
  • 输出赋能业务线,降低中后台在业务线用例的回归成本

关键能力一:多样化的回归能力

回归能力分层,分别从前台、中台及后台不同维度支持独立回归能力,各自的业务回归不再强依赖上游, 只需关注自己业务的节点逻辑。实现发布与回归上的解耦,不再需要相互确认。

如下图所示,红线截断处即表示一个渲染任务在不同截断的节点。回归支持了从各个节点独立回归的能力,能保证互不依赖和数据的一致性。既可以独立回归,也可以为下游业务的回归提供协助。

8.png

关键能力二:用例快速生成与管理能力

测试用例一键录入、用例管理模块化场景化、定时回归与自由执行、中台场景收集、覆盖海量业务线、输出赋能业务线简单易上手

1、基于定位平台的任务流转树,我们可以快速将线上数据转化为测试用例,只需要提供一个任务的id,即可一键录入用例。极大提升了构造业务数据的效率。

录入方式上,支持多种方式的用例录入。除了流转树,也可以将用户自己保存的数据一键加入。

同时,可以根据不同业务线标识,快速从线上环境筛选数据转换。

9.png

2、用例标签管理。如下图,用例完成后支持用户自行打标签,平台也会根据用例数据识别一些关键标签,方便其他用户筛选复用。

10.png

3、同时将用例通过测试集的维度将同一类型的用例管理起来,方便同时回归测试。

11.png

4、对用例集分析,排查确认当前用例类型覆盖情况,以及任务结果执行整体概况,省时省力。减少人力维护成本。

12.png

关键能力三:回归结果验收与效果比对

快速展示回归进度与结果

13.png

支持类似任务效果比对,并通过diff效果图的方式展示,方便人工快速确认,如下图。

如同一类任务,上线前后,通过在beta环境和prod环境的效果验收对比,能够快速回归效果变化,尤其细微差异变化,能够减少人工误判

14.png

同样对视频,也支持同步播放能力,辅助确认效果变化差异

15.png

3.3发布拦截能力建设

围绕业务发布痛点,建立日志比对能力,最大化问题前置暴露。尤其海量error日志识别,需要在前期识别正常业务日志,并将可能异常的问题抛出来由开发确认,并纳入到发布流程规范中。

如下图,我们在各个阶段提供了新增日志与存量日志的识别能力,并通过灵活的更新与通知方式,提升各个阶段的测试验收确认

16.png

通过一段时间的实践与完善,当前我们基本形成了以下固定协作模式

  • 建立渲染各类对接机制,流程反馈完善工具的循环
  • 工单响应流程化
  • 问题高效对接标准化
  • 不同角色各司其职
  • 效能工具建设,工具支持流程建立与流程驱动
  • 问题定位前置,释放研发资源
  • 研发重点处理高优工单、疑难问题
  • 新的能力与方法进一步平台化前置赋能,实现正循环
  • 定位平台提升前线自助定位能力
  • 业务对接与排查团队共建
  • 团队全员工具建设能力
  • 专项问题建设最佳实践团队
17.png

从结果来看,月均故障由6降到不足1个,每周发布时间由1d降到不足2h,高效响应支持30+业务线,平均问题处理时间下降70%,整体提效较为明显。

同时对于测试同学,各个业务团队合作更加高效,面对研发同学的相关问题对接沟通方式,也由反复督促变为通过监控变更和数据度量的方式。团队对接高效顺畅。

18.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK