因为这个线上bug引发的反思:
1,兼容性测试的重要性
2,代码review的重要性
3,技术敏感的重要性
还有很多……
因为出现线上bug,这个链路上每个人都有责任和需要学习的地方,
而作为测试的话,更需要提高警惕,并不断学习提升自己的水平
bug背景:
本来这个需求应该是要排我这边的,但是由于需求挤压,就由另外一个同事负责跟进,上线之前让我简单协助验证了部分功能
上线之后,第二天发现,某个场景流量降低,然后对照时间,发现跟这个需求的上线时间几乎吻合
立马回滚线上包,观测半小时,数据逐渐恢复,由此定位到确定是这个需求上线有问题
需求定位到了,好了,开发去check代码逻辑有没有漏洞,测试去打开电脑尝试复现
本地复现不了,开发check完代码猜测是某个方法低版本不兼容导致的
根据数据的表现来看,并不是断崖式下降,是部分下降,肯定是某些场景有问题,
好以上两点,符合猜测
然后我们里面下载了一个低版本,访问了下有问题页面,果然,凉凉,复现了
Uncaught TypeError: Object.fromEntries is not a function
然后点开详细一看,果然
然后去查Object.fromEntries的兼容性,果然
复现的低版本浏览器的google内核是69,没到72.。。
以上就是一个普通的,很幸运的快速能定位问题的线上bug
那么,作为测试,要问自己,为什么没有在测试的时候发现问题?或者缺少了某种敏感性?
我问自己,换做是我,会不会也会发现不了?我思考了很久,也许概率也很大
首先,能够每次都做兼容性测试的话,会覆盖的更广一些,一定概率避免这种兼容性问题,但是并不完全
再者,虽然尽量每个提测都进行codereview,但是这真的是需要保持技术的敏感,看到换了一种方法解析参数,为啥要换这个方法?这种方法会不会有兼容性问题?
多问两个问题,以后会不会能少踩这种坑?……
然后再说线上兼容,巧了,我做过UI兼容,也恰好有这个页面,也有报警 报出来,然后并没有惊醒我,为什么呢
UI自动的化本身误报很多,由于元素的变化,时间等待的原因等等的很多很多误报,导致我有点习以为常,但是我看到这个报警了确实去看了,因为跟平常的误报不一样,特别打开看了一下
然后还发现本地没问题,当时有点怀疑人生,因为第一反应是觉得线上有问题的,因为这个报错确实不常见,然后还让其它同事看了下,她那里也正常
然后巧了,今天我非常忙,忙到看到报警很烦,然后又复现不了,更烦躁了,然后就从源头消息免打扰了一下,。。。
我觉得,这是我最应该反省的地方,对线上报警不敏感,是大忌。
最后我觉得,自己需要做个复盘,努力提高自己的测试水平和技术水平,最起码以后不再犯同样的错误
标签:Object,然后,复现,测试,fromEntries,bug From: https://www.cnblogs.com/happiness30/p/17224273.html