一、引子
兔年五福走到了第八个年头,笔者在去年负责保障2022五福大促稳定性,偏技术风险,今年角色发生变化负责整体五福质量。于我而言,质量与技术风险其实水乳交融,不分彼此。作为年度最大“集五福”IP,要想让用户丝滑地参与体验五福,首当其冲的是要保障五福的平稳。下面从质量视角聊聊今年参与五福的一些想法,希望所说内容能对业界质量保障的同学有所启发和帮助。
二、当我们在聊五福质量的时候,我们在聊什么
当笔者接手负责五福质量,脑中浮出了很多画面。当我们聊五福质量,你会想到什么?停顿思考几秒......实际我们在说怎么基于五福质量目标建设一套完备的质量保障体系,建设质量保障体系是为了达成质量既定的目标,所有业务的质量目标都可以用同一句话形容:线上不出问题,同时能提升质量效率,那什么是质量保障体系呢?
质量保障体系,顾名思义,说的是保障质量的一套体系,什么是体系?体系是不同维度组合而成的多维矩阵,质量保障体系是指围绕质量工作展开的多维矩阵,它贯穿研发流程始终,通过方案选型、策略决策、工具支撑、组织协同分工等,把过程中的一系列质量活动系统化、标准化、流程化,嵌入在研发流程中做执行。如果记不住的话,那就记住这个公式:质量保障体系=质量活动+工具平台+质量流程。
只要是对质量能够起到保障作用的工作事项,都可以认为是一项质量活动。好的质量保障体系一定要追求质量活动的工程化(工具化、平台化),工具平台解决纯人工做不了的,大幅提高执行效率。质量活动伴随贯穿研发流程的,质量活动之间的串联组合就是质量流程。质量流程结合研发流程定义了每个质量活动的时间节点,准入准出,执行标准,以此保证每个质量活动的效果,进而保证整个项目质量结果。质量流程还定义了质量活动的角色分工,开发、测试、产品、业务方都可能是某个质量活动的负责人。
三、如何紧贴五福建设质量保障体系
建设五福质量保障体系,绕不开质量保障体系三要素,也就是质量活动、工具平台、质量流程这三个维度。
3.1 结合五福业务特点制定质量活动
质量活动有两个制定原则:
原则一:针对业务/产品的特有问题设计质量活动 空间 X 问题类型 —— 产品形态决定测试工作,对业务构建问题地图,然后设计对应的质量活动去发现这些问题
- 例1:每年五福客户端有新版发布,也有新技术运用,比如今年使用 AVIF 图片格式来降低图片资源的大小以节省带宽,那么由此引入的新技术风险需要有质量活动来规避。
- 例2:五福合成除夕夜开奖、生肖卡直播开奖等会有资金安全风险,那么需要有资金安全专项防控的质量活动。
- 例3:五福商业化素材和权益比去年规模多几倍,会面临验收效率和风险敞口变大的问题,那么需要设计质量活动进行整体把控。
原则二:针对业务/产品的研发过程设计质量活动的部署点 时间 X 引入环节 —— 业务研发过程影响测试工作,不同环节可能引入质量问题,本着“最早发现成本越低”原则,最好是在引入问题的环节后部署质量活动
- 例1:每年五福客户端福卡互动都会有视觉新规范,如果客户端和设计同学理解不一致,那么很有可能会引入视觉还原或动效不满足的问题,那么需要制定质量活动,如评审拉齐双方理解、设计现场验收。
- 例2:五福AI年画有实物打印,如果前后端有逻辑没考虑周全,那么很有可能导致用户年画所见非所得,这个环节就非常必要引入专项质量活动,如图片一致性比对发现。
- 例3:五福有很多业务正式配置需求,因为配置错误导致的问题屡见不鲜,那么在这个环节就需要制定质量活动,如平台铺设防御规则、梳理配置规则、多重角色集中
由此可以看到,每个质量活动的制定是为了拦截一种风险。质量保障体系是为了拦截所有风险,做到时空全面覆盖。紧贴五福的质量保障体系,需要分析出五福可能会出现的所有风险(包括共性风险和特性风险),然后通过一系列质量活动去对应保障。
质量保障体系通常分若干防线,每个防线再分若干质量活动。防线负责时间覆盖,目的是在适宜的流程节点做质量保障,防线内的质量活动负责空间覆盖,保障此时此刻的所有问题能够被拦截。
五福有多少风险,就有多少质量活动。质量活动一般可以从产品玩法、功能模块、技术栈实现、是否新技术应用、风险类型、具体风险,并结合引入环节等维度考虑。共性的可以抽出横向专项,业务特性的可以纵向攻克。
五福的质量活动图
横向:不区分业务,业务弱属性,各种维度切入
3.2 结合五福业务特性识别重复性工作,建设质量工具/平台
质量目标中除线上不出问题外,还可以识别以往质量活动中重复性高、效率低的痛点,提前谋划建设相应质量工具/平台,提高质量活动执行效率。考虑到时间和资源投入,今年五福开始前讨论并明确的几个横向提效目标:
- 建设五福商业化广告素材保障能力,验收提效xx%
- 优化五福演练方案,针对关键环节提高演练效率和深度
- 建设五福正式配置微灰度验证能力,做到灰度无需全站关流,“想验就能验”
3.2.1 广告素材保障提效——运营浏览验收素材图片
今年五福商业化关键词生态、开放,提供更多的商业化玩法,让更多的商家参与到五福中。在往年玩法的基础上,增加了更多的展位,这其中就包括福卡广告资源位。
列举几个数字,今年的广告素材进场数量多、时效性要求高、审核标准严格,如果纯人肉,工作量非常巨大,摆在我们面前的是必须串联好各个环节,这背后有业务系统技术方案的实现,也有自动化方案的落地,最终达到少投入人力验证的目的。
素材生产链路的统一
将不同来源过来的商业化素材提报链路统一接入到五福后台,由五福后台转换为五福服务端模型,并在五福后台进行管控。
广告素材自动化保障提效
验收流程
会场运营验收方案
会场运营验收针对广告素材需要审核文案,图片,以及端展现效果,往年需要审核同学手动配置素材、扫码得卡、跳承接页、录屏上传,操作繁琐且容易出错,耗费时间久。质量和服务端研发共同讨论确认了一套自动化渲染截图的流程只关注真机画面,让审核同学直接看真机图片,无需额外配置,从而降低审核成本,提升审核效率。具体系统链路如下:
商业化素材验收情况
广告素材准入环节,会场运营审核部分,每批次素材的会场验收均在24小时内完成。总计上线**素材,审核打回**素材,运营真正做到了只用坐在电脑旁浏览验收图片即可,明年这块还可以复用。
3.2.2 优化五福演练方案——演练效率更快点,深度更深点
每年五福因为项目范围广,功能多,参与团队众多,单纯依靠项目组成员在短短几周时间里全部完成测试和验收是几乎不可能的。所以一般会引入集团内部用户,提前参与项目的演练,帮助项目组发现问题。
演练流程
五福演练持续了多年,如下是五福的通用演练流程:
演练&商业化验收白名单隔离
往年五福期间演练有时间段控制,一般是当天几个小时,特别是在第二次演练开始后,五福商业化生态验收也开始启动。演练、商业化验收白名单以前是一个大白名单,混在一起,特别不方便管理,而演练出于保密考虑,演练时间结束就会回收白名单,基本是一刀切,这样商业化生态验收也会受到影响。今年提前考虑到演练和验收要互相隔离做到不影响,提高会场验收效率。
今年商业化验收的白名单,白名单生效同时会忽略活动起止时间,随时能领取福卡,广告素材自动化提效中使用到的验收账号就是用到了这部分白名单,和演练完全隔离,做到想验就验。
演练提效——白名单自助、首页演练氛围、演练数据分析
3.2.3 五福微灰度验证——灰度想验就能验
五福在活动对外前需要预留一段时间(一般10天左右)在灰度环境进行生产正式配置回归验证。因为灰度环境届时都是正式配置,包括五福自身白名单也会全放开,出于项目严格保密的需要,灰度正式配置演练的做法是只允许签署过保密协议的项目组成员的流量进入灰度环境,其他非五福相关的应用会直接关闭灰度引流,这样做持续时间不能太长(一般3天),否则会影响全站应用灰度验证的时间。今年项目组希望灰度正式演练在满足保密性要求的前提下,实现灰度想验就能验,直到活动上线。
在SRE同学道勤、玉尧的大力支持下,今年五福通过动态拉起AIG机器作为独立环境机器,独立代码部署、配置变更。通过精细化路由规则实现用户流量的精准识别和路由。
微灰度独立演练环境
在灰度环境动态创建一个流量隔离的微灰度环境,采用非独占灰度、单独组建灰度AIG的形式进行演练。
环境入口通过接口入参动态识别演练白名单用户进行环境准入。本次五福灰度演练的准入条件为网关请求中的userId白名单,通过解析网关请求中的userId与项目组白名单进行动态决策匹配来进行五福微灰度环境的流量准入控制。userId白名单通过OSS存储文件定时推送至业务机器,管控端实现了权限管控,可由五福项目组负责人根据项目需要随时动态生效白名单。
微灰度验证运行情况
相比于往年只有短短的几天时间,今年的灰度正式验证真的是太幸福啦(来自一线同学的心声)!
从1.4号全面启动,一直持续到上线前,完全不用担心灰度验证影响别人,利用这段时间达到了充分回归的目的,这期间又陆续发现了一些遗留问题,作为上线前的最后一道防线,微灰度验证起到了非常好的效果,明年这套能力依然能够复用。
3.3 紧贴五福研发模式制定质量流程
五福备战时间线可以划分为以下不同阶段,分别是规划准备、需求研发、交付测试、演练验收、灰度验证、作战值班、复盘总结。
阶段 |
责任角色 |
流程节点 |
质量交付物 |
需求评审 |
业务、产品、设计 |
只要有新需求 |
需求变化邀请开发、测试共同参与评审,不接受任何口头需求 |
需求研发 |
开发 |
开发自测结束后 |
需求自测报告 |
交付测试 |
测试 |
功能测试启动 |
测试日报,不要求每日反馈,但需要持续追踪 |
测试 |
专项测试启动 |
测试专项报告 |
|
客户端测试 |
客户端发版前 |
客户端发版准出报告 |
|
演练验收 |
业务、产品 |
产品功能演练前 |
产品功能验收报告 |
产品 |
客户端集成前 |
埋点验收报告 |
|
设计 |
视觉定稿 |
客户端/前端视觉验收报告 |
|
研发 |
第二轮演练结束前 |
集中代码评审报告 |
|
质量 |
每日演练结束 |
演练日报,包含演练数据、重点问题、代码覆盖率分析 |
|
灰度验证 |
业务、产品、质量 |
灰度正式配置到位后 |
业务、产品、质量出一份灰度正式配置验收报告 |
作战值班 |
业务、产品、研发、质量 |
线上业务有配置变更 |
业务配置变更邮件,针对高频业务变更,单独组群操作同步 |
复盘总结 |
业务、产品、研发、质量 |
每日白天值班结束 |
当日线上运行报告,共识线上问题,确保问题得到快速解决 |
整体来说,质量流程要兼顾质量要求和效能支撑两方面,要通过质量流程的约束达成质量结果,也要避免质量流程过重影响研发效率。
四、质量人看五福组织协作
从五福质量人的视角看,“业务玩法”和“风险分母”就像一对孪生兄弟,形影不离,分布在“质量与技术风险”天秤的两端,业务玩法多,风险分母必然也多,天秤想要平稳,质量保障体系的顺利执行离不开项目组各种角色成员的共同努力,有架构、质量、前后端、业务、产品、设计、PM、数据、技术保障、横向职能等同学。细数五福协作管理的规模,超过几百人参战,数十个团队相互协作,组织的复杂度也是超乎想象,这背后也同样离不开各角色一号位同学的引领,这就好比船长和船员,船长看准方向,船员一起努力,五福这艘大船才能披荆斩棘,乘风破浪,取得成功!