章节
- 背景
- 问题
- 埋点治理
3.1 第一阶段 – 人工执行
3.2 第二阶段 – 系统监控
3.2.1 实时检验能力
3.2.2 用户行为树
3.2.3 埋点数据看板
3.2.4 双周埋点质量分析报告 - 总结
- 未来构想
1.背景
在转转,回收来的每一台设备都会经过质检流水线严格、全面的“官方验”,而官方验工程师们每一次的操作行为、检测内容、设备信息、执行耗时都会以埋点的形式,由检测端上报至质检埋点系统,作为质检的数字化资产。在实际业务中,又基于埋点数据进行分析,再结合数字化策略和标准,形成对质检过程进行数字化管理的手段,从而提高官方验的时效、准确性。
综上,埋点数据在这个过程中发挥着非常重要的作用,可以说,埋点数据质量会直接影响整个数字化的质量,从而影响质检业务。
2.问题
在24年以前,需求中关于埋点的内容,客户端开发完成后,自己自测完就结束了,缺少QA介入测试、产品验收的环节。这导致曾经出现过上报不准确、误报、漏报的现象,影响了质检业务分析和决策。 基于上述问题,经过项目组讨论并决定,针对产研的迭代需要有管理数字化埋点数据质量的机制和手段。为此,从QA侧牵引,做出了几个举措,共同将数字化埋点质量提升。
3.埋点治理
3.1 第一阶段 – 人工执行
在治理初期,就只是单纯的从人工角度来保障质量。
24年开始,由QA推动项目组明确,埋点测试的负责人由开发转为QA,并制定了数字化埋点质量管理流程标准,规范了产品、研发、QA等角色针对埋点需求的参与方式和流程。
以QA为例,埋点测试必须在需求、测试方案/用例上有体现,且严格按用例执行,有验收环节,和日常迭代的管理流程保持一致。目前,QA参与埋点测试的覆盖率从去年的0%提升至100%。
3.2 第二阶段 – 系统监控
人工的方式是最基本的保障,面对日益繁多的埋点和业务需求,单靠人工也难以持续投入。并且,有可能测试时确实上报是正确的,但是线上的情况是复杂百倍千倍的,如何能打包票说我这个埋点上报一定没问题呢?这时候就需要一定的基建能力来帮助我们了,为此,我们实现了一套数字化埋点治理平台,主要有以下的能力:
3.2.1 实时校验能力
在线下测试埋点时,涉及端比较多,每个埋点测试工作量都会翻倍,这很耗费测试资源。分析一下埋点的测试过程,就是验证各个参数传值是否正确的过程,再仔细想想,其实参数里面有很大一部分是存在规律的,和当前业务场景无关。举个简单的例子,埋点上报时需要上报检测开始时间、检测结束时间、埋点上报时间,这几个时间就会存在如下的逻辑关系:
1.检测开始时间 早于 检测结束时间
2.检测开始时间 早于 当前时间
3.检测结束时间 早于/等于 当前时间
……
在对每个埋点进行验证时,目前均需 QA 耗费精力去关注这几个时间。鉴于这属于既定规则,我们不禁思考,能否借助自动化方式开展此类验证工作,从而使 QA 能够将更多精力聚焦于与业务紧密关联的逻辑层面。经过与开发团队深入探讨及调研后了解到,埋点数据在入库完成后会生成 binlog,而这些 binlog 会接入 kafka,最终会有 kafka 消息向外发送。基于此有利条件,我们完全可以利用这一消息来构建校验逻辑,其整体的流程可参考如下图示:
有了这样的能力后,只需要把不与业务耦合的规则梳理出来,在埋点实时校验系统中实现即可。校验系统可以不间断的在线下、线上环境运行,无需QA、研发做任何额外的动作,每一个上报的埋点都会经过大量规则的校验。即使有了新的埋点,只要当前的规则符合,直接就可复用,规则不符合新增对应的规则即可。当校验失败时会立即将异常信息触达给责任人,这不仅提高了线下测试的效率,也提高了埋点测试的准确率。更棒的时,在线上运行时,还把历史版本中有问题的埋点全部抓出来,一网打尽,推动客户端开发来了一波修复。
3.2.2 用户行为树
埋点数据其实是极其臃肿、繁杂、枯燥的,每次需要排查问题都要面对海量的json串,很头疼。为此,我们将数据库中繁杂的埋点数据,转换为工程师一系列的操作行为,称之为【用户行为树】。它以大众比较能接受的UI界面,完整展示工程师的操作过程和关键信息,提高对埋点问题的排查效率。同时,埋点也不单单是埋点了,它也成为了业务问题排查的线索之一,为开发、产品、运营日常工作提供了便利,如下图。
3.2.3 埋点数据看板
光有上面这些过程执行的治理还不够,还需要有纵览全局的能力,能明确看到每日每时埋点上报数据及质量。于是,我们利用QuickBi搭建了埋点看板,有以下两种:
1.埋点上报看板,主要监控埋点上报的整体数据。支持监控大盘趋势,也支持按品类、客户端、版本号等多个维度的数据展示,并可结合业务看板数据分析线上可能存在异常的问题,及时告警、处理,缩短影响时长,减少影响数据量;
2.埋点实时拦截看板,主要监控埋点上报异常的数据,可快速分析某个客户端、某个版本的埋点质量以及对应的异常占比、明细。
有了这两个看板数据,既能看全局,也能掌握具体版本的明细,可以更加直接的反馈出埋点质量情况。
3.2.4 双周埋点质量分析报告
每双周持续输出埋点质量报告,对双周数据进行详细汇总,并结合质检业务数据进行分析,持续与相关责任人沟通反馈。
结合质量报告数据,推动各端责任人对质量报告中的问题进行排查处理,最终完成质量治理闭环。
4.总结
大半年来,通过人工介入、系统干预的方式进行埋点治理,最直接的成果是今年线上新增的异常埋点只有1例,较去年降幅83%;建设的基建能力使得埋点测试提效约40%,也能持续为以后的埋点提供质量保障和完善的监控系统;在项目组内也能给其他小伙伴提供便利。
总的来说,到达了我们专项启动时的目标和规划。当然,这也是我们项目自己小小的探索,如果你有其他的构想也可以一起讨论。
5.未来构想
1.将埋点实时校验的规则配置变得灵活些,目前都是代码里写死,预期后续能优化成apollo动态配置式;
2.丰富实时校验规则,并与业务数据进行结合分析,更准确判断埋点是否异常;
3.形成客户端功能和埋点之间的关系图谱,可分析修改后的影响范围,对开发测试改动后场景覆盖提供指导,降低代码改动风险;
关于作者
程杰,深圳业务-质检QA
想了解更多转转公司的业务实践,欢迎点击关注下方公众号:
声明:文中观点不代表本站立场。本文传送门:http://eyangzhen.com/424212.html