【记录】让人淡疼的BUG之参数传送错误
前言
面试的时候往往容易被面试官问到:“说说你遇到过的比较重大或经典的Bug有哪些,能说一说吗?”
我被问时脑海的反应是:“尼玛,这个我从来没有刻意记!一时半会咋想得起来,然后还是没想起来或者是随意给了一个并不符合期望的回复”,各种不靠谱。
最近在测试过程中默默然发现一个一直存在、但一直未被人发现的Bug,把它记录起来吧!
背景
我们有金卡服务,针对VIP付费用户。
开通金卡服务后,经理人的简历在被猎头或企业搜索到时,经理人页面会统计“简历被搜索到:*次”,搜索到时次数会+1,统计的数据依据由前端发给后端。
发现
在某次上线测试过程中发现,猎头或企业搜索到我的简历后,我的被搜索到次数并没有增加。
同时,通过查询数据发现:最近5天以内开通金卡的经理人,他们的简历居然没有被任何猎头和企业搜索到,但开通6天以上的经理人有零星的被人搜索到。
到这里,仍然无法解释造成这种现象的原因是什么,最后,通过检查代码发现,发现……
原因
发现,前端向平台发送的数据是错误的。
平台在有一次上线中,将统计简历搜索次数的参数由“简历ID”变成了“用户ID”,而猎头或企业搜索到相关简历时,前端向平台发送的数据仍然是“简历ID”而不是“用户ID”。
这样做通过代码检查是无法看出错误的,因为用户ID和简历ID都是由一串数字组成且长度都同一区间内,所以程序处理十分正常。
同时由于两者有许多重叠的ID,就出现了我们看到的开通6天以上的经理人会零星有被猎头或企业搜索到。
总结
这个问题之所以存在并长时间未被发现,有以下几个问题:
# 底层平台改动后,对于其影响的区域未能准确定位、修改、测试,导致部分数据处理不正确
# 功能项长时间未改动,同时回归测试未能覆盖,导致出现问题时,无法被发现
# 这个问题最特殊、最可怕的不是他们的数据类型一致,而是他们有大部分数据是相同的(使得问题无法暴露)
【记录】让人淡疼的BUG之参数传送错误的更多相关文章
- 退役III次后做题记录(扯淡)
退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...
- geotrellis使用(十二)再记录一次惨痛的伪BUG调试经历(数据导入以及读取瓦片)
Geotrellis系列文章链接地址http://www.cnblogs.com/shoufengwei/p/5619419.html 目录 前言 BUG还原 查找BUG 解决方案 总结 后记 一.前 ...
- Android记录一个setTextColor常见的一个bug
今天写代码 一不小心就犯了个错误. 细致检查才发现,仅记录一下,防止各位同学犯相同的错误哦 代码例如以下: remote.setTextColor(summaryId, R.color.news_ha ...
- iOS 记录近期遇到的几个bug
1. actionSheet与pickerView 不兼容 发生环境:ios 9以上,其他无测试. actionSheet与pickerView在一起使用时,当actionSheet弹出后,紧接着再弹 ...
- 记录一个chrome 65渲染的bug
前段时间发现一个chrome 65+的BUG(chrome已更新到66,BUG仍然存在),一个元素同时使用了以下样式(失去焦点和css3的Z轴平移0deg),渲染异常 /*bug style*/ fi ...
- 电脑可以识别sd卡手机无法识别 的解决方法。 我成功了。 淘宝买的sd卡 不用退货了。 退的人肝疼
https://wenku.baidu.com/view/822e471055270722192ef736.html 电脑可以识别 sd 卡手机无法识别 * (本教程只是本人实际操作方法,可以解决一部 ...
- 让人头疼的AI bug (随想)
虽然概念上,人工智能和机器学习不等同.但是本文提及的AI,指的是基于机器学习的AI. 一个软件产品,出了错误叫bug,bug需要修.那一个机器学习的模型,准确率在那摆着呢,大伙心知肚明是有一定的犯 ...
- 记录人生中的第一个bug
对象的引用 使用**只是拷贝了字典的最外层,加个deepcopy可以实现深拷贝,递归的去复制对象 bug来源: 在一次将数据库里的数据转成json格式过程中,在遍历数据库对象时,对象的引用不当,导致最 ...
- 记录一个从没见过的bug
js的默认启动 $(function(){ )}; 不识别,意思是如果你把js内容放入这个东西里面,它不会执行.必须把它去掉才可以. 包括.tag里的文件也是一样. 这是发生在系统框架迁移发生的事,以 ...
随机推荐
- Oracle inactive session (last_call_et)
注意last_call_et的值, select s.status,s.last_call_et,s.* from v$session s where username='DDD'; 在本例中,开了个 ...
- js原生bind()用法[注意不是jquery里面的bind()]
<div id="a"> <div></div> <div></div> <div></div> ...
- pat 1006 Sign In and Sign Out (25)
At the beginning of every day, the first person who signs in the computer room will unlock the door, ...
- 史上最全的phpstorm常用配置
取消自动保存并标识修改的文件为星星标记 1.取消自动保存 进入 File -> Settings -> General,取消下面两选项的勾选: 2.星星标记 进入 File -> S ...
- Java _Map接口的使用(转载)
转载自:http://blog.csdn.net/tomholmes7/article/details/2663379.转载请注明原作者地址 Map Map以按键/数值对的形式存储数据,和数组非常相似 ...
- FFMPEG高级编程第一篇:环境搭建及编译
前段时间在翻看电脑里面资料时,发现了以前做的在嵌入式硬件上面运行以ffmepg为基础,以嵌入式硬件解码的多媒体播放工作,发现都快忘记完了.今日得闲整理温习了一下ffmpeg在嵌入式上的运用,这里给大家 ...
- ajax.abort 终止AJAX请求
$(document).ready(function () { var ajax; $('#choice').change(function() ...
- C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是TAP(Task-based Asynchronous Pattern, 基于任务的异步模式)
学习书籍: <C#本质论> 1--C#5.0之后推荐使用TPL(Task Parallel Libray 任务并行库) 和PLINQ(Parallel LINQ, 并行Linq). 其次是 ...
- vs2012找不到system web optimization命名空间
今天新装了vs2012,安装完成后,创建了一个mvc4应用程序,创建生成出现了几个错误.通过错误我们的解决方案就是去找引用不到的路径,如何在vs2012中实现呢? 在工具栏中找工具--库程序包管理器- ...
- crontab环境变量问题
今天设置linux定时任务时,python内调用的shell指令总执行失败,单独调用python脚本则无问题,考虑到是环境变量未生效引起. 故在执行crontab -e编辑配置文件时,将shell内执 ...