案例分享|我们的一次线上事故复盘

7 评论 16174 浏览 25 收藏 6 分钟

问题出现了并不可怕,只要我们追本溯源,找到问题根源所在,科学的解决问题,合理的制定流程,就能离成功更近一步。

线上事故,这应该是产品经理最怕的事情。很不巧,我的产品这几天正好遇到了线上事故,在处理完问题之后,我对事故进行了复盘,警以为戒,希望各位轻拍。

“小凡,你看微博有用户反馈xx问题。”

每次听到运营妹子的声音都会有种心惊肉跳的感觉,因为这悦耳的声音背后往往意味着用户吐槽,意味着线上bug。这不,昨天刚发布的版本出现了问题,用户怒了。

问题是什么

我负责一款以内容为核心的工具型应用,在我们最新发布的版本中,我们对内容展示页面进行了优化,索引词会高亮显示以帮助用户更好地查看、理解内容。

但是上线后用户反馈索引词的顺序有问题,全部提至了句首,导致句子全部错误,无法正常阅读。

问题在哪里

程序设计错误

程序猿在做索引词高亮处理时,程序逻辑设计不当,虽然对索引词加了高亮,但是处理高亮词是将整个句子视作一个词条进行处理,提取索引词后进行高亮处理,将高亮词放回时,替换其到index=0的位置,导致索引词显示在句首。

功能测试遗漏

测试同学在做模块化测试、全功能测试时,并未测试到该细节,导致该bug发布上线,当用户反馈后才补充了内容测试相关case。

存在问题的原因

新代码设计不合理

旧的逻辑是按照空格进行字符串的分割,将句子拆分为一个个词,再去判断是否有索引词,如有则提取出来做高亮,而我们本次处理的内容由于语种特性并没有空格。

程序猿并未考虑新需求的不同之处,依旧使用统一的处理方式,导致新的语种内容在呈现上出现异常。

正常处理逻辑应该是不按空格进行拆分,直接判断例句中是否包含所查索引词,如有并作高亮显示。

提测单未写明修改点

按规范每轮单元测试,需将新功能、修改点、可能涉及的影响都写明,让测试同学知晓以便进行全面测试。但在开发同学看来本功能较小,并未在单元提测中单独标明。

测试未覆盖内容版块

测试针对新功能、UI和测试用例进行了测试,但是未考虑到本应用是重内容的应用,缺乏对内容的测试。

我们能做什么

安抚用户

定位问题之后,运营同学第一时间与微博用户联系,先表达歉意,再标明程序猿正在修复中,请用户耐心等待;同时发布正式通知,告知用户问题已经开始修复,我们将尽快发布新版本以解决问题。

紧急修复

在运营同学发布通知的同时,程序员立即着手修复该bug,并针对此前忽略的内容问题进行复查,自测通过后移交测试人员。测试通过后,请教研同学配合进行内容测试,确保内容相关展示无误。

尽快发版

苹果应用商店的正常审核流程是3至7天不等(必须吐槽),但是紧急bug刻不容缓,不能走此正常流程。面对极其重视用户体验的苹果,加速审核申请往往能帮你在数小时候审核通过。

必须让苹果知道你是非常重视用户体验的,而你的app现在出现了非常严重的bug,为了用户的体验你必须立刻发布一个版本,这样加速审核通过的概率会很高。审核通过后,立即发布上架让用户更新,这时候用户更新说明也是至关重要的,值得用心去写。

我们应该做什么

上面几个步骤重在解决已发生的问题,而在我看来更重要的是知道如何规避未来的问题。这就涉及修改流程了,我们是这么做的:

1.两端开发人员系统梳理代码逻辑,差异点、疑问点及时进行沟通、确认;

2.版本正式开发前,增加技术拆分会,确认开发思路和实现逻辑;

3.iOS开发人员加强代码交叉review;

4.iOS开发人员加强自测,自测中加强与安卓端对照;

5.测试人员增补内容测试用例,加强两端对照测试;

6.严格执行产品体验会,发版前组织教研、内容、运营等人员进行产品体验。

写在后面

这次事故出现后,我们团队迅速行动,从bug定位到新版本发布上线,只用了不到24小时,我想这也是值得欣慰的一点吧。

愿各位同行的产品都不会出现事故!

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 测试用例,不用回复

    来自河北 回复
  2. 好奇一点,听上去本次更新的主要内容就是索引词高亮功能,但这个主要功能的重大bug竟然没有测试发现,听上去很匪夷所思的感觉

    回复
    1. 这个功能点的确引发了bug,但只是本次迭代中非常小的一个功能点。

      回复
  3. 对我这样刚转行没多久的小白来说,这都是宝贵的经验,多谢分享!

    来自天津 回复
    1. 近期会总结下工作,还会写几篇工作中遇到的问题。 😎

      来自上海 回复