蚂蚁金服技术专家:更聪明的做线上质量

2020 年 5 月 29 日

蚂蚁金服技术专家:更聪明的做线上质量

作者介绍:张翔

车手、歌手、程序员,有态度有方法的质量TL、新技术探索者和布道者,现就职于蚂蚁金服,他和他的爱车定居于成都。


你可曾遇到过这些问题?



在支付宝钱包的出境频道,会给用户推荐各色的内容,店铺、优惠券、旅游景点、攻略等。而一些奇葩的错误常常发生:


图 1:推荐店铺的内容上有错别字、禁忌词。


图 2:推荐了大量相同/相似的内容。


图 3:店铺的主图清晰度低,缺乏吸引力。


图 4:店铺图片出现了死链接。


这些奇葩的问题为什么会出现?


QA 都是吃干饭的啊?这些问题为什么研发过程中发现不了,上线后才发现,太打脸了啊!


稍微分析一下,发现这类问题在研发流程中的 QA 是解决不了的:



线下环节:确保了应用系统的代码逻辑是 OK 的;线下造数据验证推荐的功能,但无法验证推荐有效性、内容有效性。


线上环节:在灰度发布阶段,可以进行效果验证,并基于当天的数据、算法模型,做推荐有效性、内容有效性验证。


上线多天:上线多天后,我们发现哪些奇葩问题会从多个地方引入:


  1. 运营改了一个配置规则,导致某些地区内容推荐失效;

  2. 运营配置的营销页面,时间太长失效了,成为了死链接;

  3. 新的数据引入了一些体验不好的“脏数据”,并且推荐给了用户;

  4. 神经网络等不可解释性的模型,不知道哪天就引入了一些badcase。


而这里面最大的问题是:


用户很可能比我们更早知道这些问题,但他们不会打电话给客服反馈,他们只会在心里默默的骂了一句“SB”然后再也不来了。


我们团队坚信,这些用户体验类的细节问题,会是我们成败的关键。


奇葩问题的人肉巡检 1.0


首先,这类问题是不好监控的:


  1. 问题无法衡量:用户在“看到”这些情况后,并不会去“交互”,所以很难记录行为并作指标统计。

  2. 问题无法分析:从页面访问行为等指标上,很难“环比”/“同比”出问题是什么。


所以产品经理和运营在刀耕火种年代,采用的办法就是承包责任制,每个人每天去看看自己所承包的城市/区域,有没有“死链接”、“内容敏感”、“垃圾图片”等问题,找到问题后拉着运营/产品经理/研发一起定位分析,尝试解决。


在我看来,这种方式简直就是石乐志


  1. 发现效率:人工方式,不一定能够赶在用户之前发现问题

  2. 改进效率:每次找人定位/解决,重复,解决慢

  3. 人力成本:全球有多少城市?用户体验问题有多少种?

  4. 优化价值:做了这么多优化,成效如何体现?


人和动物的本质区别就在于是否会使用工具,所以我们尝试用技术的力量解决。


用户体验巡检


<把 Badcase 转成巡检用例>:我们建立了一套和产品经理/运营的协作机制,帮助我们收集各种各样的花式问题;我们把这些问题转成检测项后,保证每一次检测都会覆盖全部的 Badcase,不会出现人肉检测的“漏测”问题;在开发检测项的时候,我们用到了图像识别/NLP/位置核对等 AI 能力。我们建设的 30 多种用户体验检测项,覆盖了:


  1. 像店铺出现错别字/乱码/死链接/敏感词,店铺评论出现涉黄/涉暴/辱骂内容,这样的基础质检场景

  2. 像内容过期/内容重复,这样的推荐检测场景

  3. 像领土争端(例如把香港认定为国家)/宗教禁忌,这样的法律合规场景

  4. 像推荐店铺过远/推荐店铺不在本城市,这样的位置准确性场景

  5. 像推荐店铺的门店/菜品图片不清晰,这样的图像质量场景


<模拟用户漫游全球>:我们用大数据的形式,每天找出全球重要地区/城市/街道的几万个经纬度点,模拟十几种具备不同特征的用户,作为不同的位置参数和用户参数,触发不同的推荐内容。和人肉检测相比,覆盖了更全的区域、用户群。


<发现在用户之前,解决于润物无声>:我们对巡检项划分了重要等级,并在线上进行巡检任务的分级调度,包括分钟级、小时级、天级等几种方式;等级最高的巡检项需要 5 分钟发现 30 分钟解决;而等级低的巡检项,一般通过项目排期等方式延后解决。巡检系统发现问题后,会把问题现场、错误原因等信息,通过钉钉机器人、邮件、大盘指标展示等渠道可视化出来,紧急任务自动创建任务流,让大家可感知可跟踪。而更有意思的是,我们把运营配置类的解决过程进行了沉淀,和业务系统一起形成“熔断”机制,保证了部分紧急问题的快速止损,让用户无感知。



在巡检体系建立后,我们先后发现并推动解决了几十个线上问题,预防了可能恶化影响更多用户的后果,将问题扼杀在摇篮之中。在这个通过技术赋能保障线上质量的过程中,更多的技术点、需求也都涌现了出来。


Think Big, Next to do


当我们在支付宝钱包的出境频道上实践成功后,发现还有更多的事情要做:


  1. <经验复用开袋即食>:支付宝首页的恵支付/腰封广告等渠道,也需要具备线上巡检的能力;我们做为线上质量的标配能力,如何快速赋能新业务,并让各渠道的个性化检测能力更灵活的实现,是后续要考虑的命题。

  2. <推拉模式主从解耦>:如何更好的和业务系统一起做“熔断”?除了由巡检平台发起熔断之外,巡检平台把巡检能力在“异步检测模式”的技术上,增加了“同步检测模式”;提供检测服务接口给业务系统,让业务系统获得检测建议并发起熔断。这样可以让巡检平台只掌握最重要的熔断操作,让业务系统可以定制自己专属的熔断操作。


To be continue


在大数据/AI 时代,全生命周期质量保证中的线上质量越来越重要了,在我们死磕“线下质量”、“研发效能”的同时,需要在特定的业务场景更加关注线上质量。


出问题不可怕,只要能够在用户之前发现并解决就好;只要你跑的足够快,问题就追不上你的脚步。


2020 年 5 月 29 日 15:27130

评论

发布
暂无评论
发现更多内容

架构师训练营第 1 期 week6

张建亮

极客大学架构师训练营

区块链云算力挖矿平台开发公司,云算力软件开发价格

135深圳3055源中瑞8032

打破内卷化,AppGallery Connect的全生命周期赋能方案

脑极体

第2周 框架设计-作业

SuGeek

2020中国系统架构师大会活动回顾:ZEGO实时音视频服务架构实践

ZEGO即构

架构设计 RTC

架构师训练营第 2 周学习总结

菜青虫

极客大学架构师训练营

技术实践丨PostgreSQL插件之pg_dirtyread "闪回查询"

华为云开发者社区

数据库 后端

Mac常见问题解决方案与使用技巧

jiangling500

Mac

一周信创舆情观察(10.19~10.25)

统小信uos

C 语言实现一个简单的 web 服务器

C语言与CPP编程

c c++ socket C语言 HTTP

架构师训练营第 1 期第 6 周作业

du tiezheng

极客大学架构师训练营

作为打工人,如何正确的选择自动化测试工具(完全指南)

软测小生

软件测试 测试 软件自动化测试 测试工具 测试开发

人少钱少需求多的新项目该怎么带?看到这篇我心里有底了!

华为云开发者社区

技术 运维 后端

架构师训练营 -week06-总结

大刘

极客大学架构师训练营

架构师训练营第二周作业

李日盛

架构

前端组件化

韩向民

第六周 Doris临时故障时序图

Geek_fabd84

二、ood原则

Geek_28b526

训练营第二周总结

大脸猫

极客大学架构师训练营

架构师训练营 - 第 6 周课后作业(1 期)

Pudding

区块链钱包开发技术公司,数字钱包APP系统搭建

135深圳3055源中瑞8032

架构训练营 - 第6周课后作业 - 学习总结

Pudding

区块链交易所源码开发,币币场外交易系统搭建

135深圳3055源中瑞8032

区块链将与人工智能、物联网、云计算技术形成互补

CECBC区块链专委会

人工智能 物联网

“绝影”机器狗如何利用ModelArts强化学习算法更改导航轨迹

华为云开发者社区

人工智能 机器狗 导航

训练营第二周作业

大脸猫

极客大学架构师训练营

第二周-作业

Geek_0b0f83

极客大学架构师训练营

承兑商支付平台开发搭建,USDT支付系统解决方案

135深圳3055源中瑞8032

DDIA 读书笔记(3)数据编码与演化

莫黎

cglib 入门前篇

Rayjun

Java cglib

新手初学Java性能之 垃圾收集器

Java架构师迁哥

蚂蚁金服技术专家:更聪明的做线上质量-InfoQ