布道师玄柯的测试江湖 《Python 测试开发技术栈—巴哥职场进化记》—一个 bug 引发的思考

布道师玄柯 · 2020年11月04日 · 最后由 布道师玄柯 回复于 2020年11月30日 · 3194 次阅读

上篇文章《《Python 测试开发技术栈—巴哥职场进化记》—Python2?还是 Python3?,巴哥确定之后要使用 Python3,因为 Python2 已经停止更新,如果想使用最新的 Python 特性只能使用 Python3。今天我们来看看巴哥会经历哪些事情,精彩还在继续…………

01 出大事了

早上巴哥早早来到公司,准备吃刚买的热乎乎的肠粉。说道肠粉,是巴哥比较喜欢的广东特色小吃,基本从来了深圳后,每天早上都会吃。

巴哥吃的正香时,华哥火急火燎的走了进来,一脸严肃的坐在了自己的工位上,快速的打开了电脑,噼里啪啦的操作起来。

以巴哥敏锐的观察力,巴哥意识到,一定是出大事了。巴哥不禁联想到不是昨天 app 客户端刚发了一版吗,难道跟这个有关系?!

巴哥快速的消灭掉了肠粉,擦了擦嘴角的肠粉酱油,走到了华哥的工位。

“华哥,是不是出什么问题了?”,巴哥小心的问道。

“咱们的 ios app 出问题了,老用户升级之后直接 crash 了,我也是无语了,因为这个版本是个小需求,都没覆盖到这种覆盖安装的场景”。华哥回答道。

“不管怎么样,还是要尽快的解决问题,将影响降到最低,估计得紧急再发一版才能解决问题”。

02 Bug 复盘

当天华哥、巴哥他们对即将发布的包进行了全流程的回归,重点回归了下 app 升级及覆盖安装的问题。晚上发完版后,华哥跟巴哥说,每次出现问题都需要开复盘会,盘点下这次问题出现的原因,核心目的是为了找到对策,避免类似的问题再次发生。

第二天上午,华哥召集了开发、项目经理、测试、运维一起召开问题复盘会,华哥首先说了下这个问题出现的时间,以及 bugly 上报的 crash 率,然后让大家各自从自己的角度来阐述这个问题出现的原因。

“这个问题的主要原因是我对本地 sqlite 数据库进行了升级,增加了两个字段,覆盖安装的用户安装之后,因为没有对数据库做好升级兼容性,所以出现了 crash”,IOS 开发雪松首先说道。

“为什么数据库会做改动呢?我的需求里好像没涉及到这方面的需求吧?”,产品经理晨晨反问道。

“主要是想对底层的一个数据模块进行改造,我想着应该没啥问题的”,雪松接着说道。

“华哥,测试在测试时没有覆盖到这个 case 吗?”,项目经理威爷问华哥。

“这个因为 ios 我们没办法验证升级,都是等了上线才去验证,另外雪松这边提测是也没有提到这个改动,所以造成了问题的逃逸”,华哥一脸无奈。

“那就看看之后怎么避免同类的问题再次出现,看来咱们流程是有漏洞的”,威爷说道。

03 新流程

华哥思考了一会,说:“测试这边之后在 IOS 上线之前,会把 testflight 利用起来,提前对升级流程进行验证。另外会对发版前的回归测试用例进行梳理,看有没有遗漏的地方”。

“但是,也需要开发在提测时,对于非需求类的改动都写到提测邮件里,方便我们做针对性的回归测试”,华哥接着说道。

"行,没问题,之后我将我改动的所有点都列到邮件中",雪松补充道。

“雪松,testflight 的使用流程,也需要你配合我们测试梳理一下”,华哥跟雪松说道。

经过上面两个流程补充,就可以将同类型的问题都解决掉。

04 巴哥日记

在产品开发过程中出现的任何一个问题,都可能映射到流程上的缺失。

当然提升自身的能力和意识也很重要,但还是需要有流程上的约束力才能万无一失。

所以,当出现出乎意料的 BUG 时,不要惊慌。

首先是解决问题,之后一定要组织大家开问题复盘会,不断完善流程。这样才能减少 BUG 逃逸的概率。

很久没更新巴哥系列了,之后尽量保持一周一篇

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 4 条回复 时间 点赞

感觉这个复盘是不是少了一个很重要的点,就是在发版流程甚至系统里监控 sqlite数据库进行了升级 这个改动点,如果有进行强提醒,让负责发版的同学引起警觉?

另外,升级这个场景,在大部分情况下,其实和新版本在老版本基础上覆盖安装差异不大,那是不是可以改为做老版本覆盖安装测试,甚至把这个流程做成自动化?

通过增加流程来控制问题,个人认为是下策。时间长了流程会越来越复杂,成本越来越高。而且流程的执行强依赖人,不同人执行质量也会有差异,这些都是会导致流程失效的潜在因素,也是风险。

陈恒捷 回复

嗯呢,我其实更想强调的可能是项目研发中的流程。不过正如你所说流程多了,会让组织显得十分复杂,我还经常跟领导说,我们不像互联网团队,有点像传统企业里面的团队。
但是,我觉得可以对主流程做精简,然后通过技术的手段自动化主流程,比如采用流水线。
考虑流程,其实我的出发点是不能保证团队每个人的水平,只能靠流程来补充完善。
😀 😀 😀

其实我的出发点是不能保证团队每个人的水平,只能靠流程来补充完善。

以前我也是这么想,人的水平参差不齐,通过流程规范,保障最低水平达到及格线。

但实践发现,人才是最关键的。流程要靠人落实,人不靠谱,再多流程也没意义(因为除非你持续监督,否则流程都是没有落实到位的,很可能只是装个样子应付领导)。所以最低水平不应该是流程保障,而是要人或者系统去保障。

对于防止人为失误,个人觉得与其加流程,还不如多做故障分享学习,让团队每个人都意识到这个点,自觉做好防范?

陈恒捷 回复

嗯嗯,是的。
应该朝着建立质量文化的目标前进。
团队每个人都应该掌握必要的技能。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册