项目线上出现Bug怎么办? | 您所在的位置:网站首页 › 叮咚音乐功能出了问题怎么解决 › 项目线上出现Bug怎么办? |
先讲个线上事故的小故事。 目前为止碰到的最大的线上Bug就是,发给代理商的结算资金,数据计算重复,多算了几十万的问题。 好在业务方在后台及时发现,且代理商未进行提现,没有造成任何损失。 刚开始看到这个Bug,简直惊呆了,这个结算功能是已经上线一年多的功能啊!怎么会突然出现Bug??? 后来开发同学排查才发现,近期上线了一个跟代理商结算相关的需求,平台B动了结算的接口字段,但是没通知我们平台A,导致接口字段错用,重复计算。 我们的平台为A,提供计算数据接口的平台为B,平台B会提供API供平台A调用,具体逻辑: 1、平台B跑定时任务,向平台A发送通知,附带ID作为参数 2、平台A调用平台B提供的接口,获取对应的数据,并存入数据库中 3、平台B的数据会做分页处理,平台A需根据记录数量多次调用接口获取数据,有两个字段:总数量totalCount和总页数totalPage,比如有120条数据,每页100条数据,平台A就会调用2次接口 4、平台B的接口改动后,提供的接口不包含字段totalPage但包含totalCount,且未通知平台A 5、平台A误将totalCount代替了totalPage字段,且平台A未做幂等处理,即未检查相同月份相同代理商的情况,比如有120条数据,每页100条数据,平台A理论上只需调2次接口,却调了120次接口,导致同一代理商同一月份的结算数据被重复算了一百多次。 事故过程以及处理方案: 1、业务方反馈,后台结算页面,相同月份相同代理商的结算数据被重复计算了,导致总计金额多出几十万 2、开发,测试和产品(兼职项目管理负责人)迅速响应,立刻通知运维同学停服 3、从后台观察,本月还未出现代理商提现的记录,即暂未造成任何影响 4、测试同学协助开发同学重现,查log,找到了原因 5、开发同学修复,测试同学进行验证,并进行相关模块的回归测试 6、上线,并对线上数据进行清理 7、复盘。开发同学写事故调查报告,包括:事故现象,事故影响,逻辑说明,事故原因,建议和意见 8、追责。最后追责下来,是接口提供方的问题,好在没有造成损失 对于测试同学来说,项目线上出现Bug,应该都遇到过~ 而且,项目组成员的第一反应肯定是:测试同学怎么在测试环境没发现这个问题呢? 在没查清楚原因前,就会莫名的背锅。 问题来了,项目线上出现Bug怎么办? 一个原则:先救火,再追责。 对于测试同学来说,分以下三部曲来跟进: 一、评估Bug的严重程度以及影响范围 评估是否为核心功能的Bug,是否影响大批量的用户。 比较严重的Bug,例如购物网站无法下单,砍价等活动类项目无法分享,结算金额错误等等。 一般的Bug,例如页面兼容性问题,文案显示等问题。 二、确定修复方案:停服?回滚?线上修复? 如果是比较严重的Bug且影响范围比较大的,例如购物网站无法下单,一般采取的方式是回滚,先降低损失。 如果为一般的Bug,例如页面兼容问题等,开发同学顺手改改的事情,就可以立马改完验证后上线。 三、追责 分析Bug出现的原因,一般有以下4种: 1、测试用例未覆盖到 2、原型文档上未说明 3、测试环境无法模拟 4、其他平台修改接口未通知 如果是2,3,4的原因,那么应该说明原因,并反馈给相关负责人,及时规范流程,后续尽量避免。 如果是1的原因,主动承担责任,补充用例库,及时总结,后续避免犯同样的错误。 |
CopyRight 2018-2019 实验室设备网 版权所有 |