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

起点学院产品经理365成长计划,2天线下闭门集训+1年在线学习,全面掌握BAT产品经理体系。了解详情

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

anlifenxiangfupan

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

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

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

问题是什么

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

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

问题在哪里

程序设计错误

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

功能测试遗漏

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

存在问题的原因

新代码设计不合理

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

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

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

提测单未写明修改点

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

测试未覆盖内容版块

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

我们能做什么

安抚用户

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

紧急修复

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

尽快发版

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

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

我们应该做什么

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

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

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

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

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

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

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

写在后面

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

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

您的赞赏,是对我创作的最大鼓励。
2人打赏

评论( 9

登录后参与评论
  1. 学习

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

    回复
    1. 回复

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

    2. 回复

      哈哈哈

    3. 回复

      。。

  3. 从作者描述的问题在哪里来看,好像你没有参与这块工作?或者没监督、验收这块工作?。其实程序设计是开发做的,但是产品逻辑应该是你设计的,开发只不过帮你实现而已,如果自己不太擅长,也没关系,可以开发主导,但是你得对这个逻辑表示知道。测试就更不用说了,你真幸福有测试部门,但是按理说测试用例你应该去看去把控,测试结束了,上线前的最终验收应该产品经理也要参与的。这样能避免很多问题。

    回复
    1. 回复

      的确有诸多不足 :x

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

    回复
    1. 回复

      近期会总结下工作,还会写几篇工作中遇到的问题。 :cool:

加载中