首页 > 其他分享 >血泪的线上bug,有关Object.fromEntries

血泪的线上bug,有关Object.fromEntries

时间:2023-03-16 21:45:19浏览次数:42  
标签:Object 然后 复现 测试 fromEntries bug

因为这个线上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

相关文章

  • Succession 的 bug
    1、Succession先前有个bug,就是会将动画中的所有物件都先添加到屏幕上,再实施动画,目前这个bug已经被修复(但是没有完全修复)2、但是如果 Succession中存在让物件消失的......
  • 【JavaScript】用Object.definePropety()对对象的属性实现监听和修改_TA远方的博客
    本文中会讲到对象函数Object.defineProperty(),也许你对这个函数比较陌生,要知道这个函数用途可大了,等自己想到它的时候,就知道它的重要性。文章目录举个栗子赋值其它......
  • C#使用ObjectPool提高StringBuilder性能
        在C#中我们知道使用StringBuilder能提高大量字符串拼接的效率,其实StringBuilder的效率也可以提升,那就是使用ObjectPool。本文将介绍怎么使用ObjectPool提高StringB......
  • Object.prototype.toString判断类型的原理
    项目中,我们经常会直接使用Object.prototype.toString用来做类型判断。他基本是几种方法里可以开箱即用、且判断类型最完善了。现在我们来扒皮一下他。具体原理在toString......
  • Jmeter——性能测试的认知以及思考bug(一)
    前言性能测试是一个全栈工程师/架构师必会的技能之一,只有学会性能测试,才能根据得到的测试报告进行分析,找到系统性能的瓶颈所在,而这也是优化架构设计中重要的依据。测试流......
  • 关于安卓开发 日记打卡中出现不能同时建两个表的bug及解决方案。
    我的sqldiary的创建表的语句并没有错误,但是却不能创建第二个表。我百思不得其解,我上网查阅了大量的资料都没有找到问题的解决方法,但是最后我把sqllite的数据库的表删除......
  • Vue.js 数据代理-回顾Object.defineProperty方法
    视频<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"/> <title>回顾Object.defineproperty方法</title> </head> <body> <scripttype="text/javascript"......
  • 学习-Object.keys()方法
    标准内置对象Object  /** * Object.keys() * Object.keys()方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组 * 中属性名的排列顺序和正常循......
  • web测试 bug定位(待补充)
    1、前置条件1.1、需要的知识熟透系统业务、团队成员情况熟悉使用F12或抓包工具了解HTTP/HTTPS协议了解系统的架构,数据走向1.2、定位前的操作(1)保存bug产生的记录(2)排......
  • Object类
    Object1.getClass()方法返回引用中存储的实际对象类型应用:用于判断两个引用中实际存储对象类型是否一致packagecom.zhang.oop.Obct;publicclassStudent{priv......