一个致命的bug--自负

王豆豆现在怀着无比复杂的心情写下此文,谨以此文献给广大越挫越勇的软件测试人员们。

此刻为什么王豆豆的心情无比复杂呢?

原因有三:

1.在临近年关的时候,好多小伙伴都放假了,王豆豆却还在加班上项目

2.上项目也就罢了,竟然还被开发在眼皮底下写了一个bug上去

3.写了一个bug也就罢了,竟然没有被发现消灭在摇篮中,竟然在线上去招摇了一圈。

简单总结起来就是一句话:项目上线后发现了一个bug

为什么项目上线了才发现bug呢?说到原因王豆豆要先去哭哭再回来。

哭完回来了分割线


说起原因先追溯下项目本身需求:

本次项目的需求很简单,就是A公司向我们借款,借钱肯定是大事情嘛,不都得打个欠条什么的(借款合同),然后我们向B公司请求在签约平台上签了好欠条(借款合同),签好之后推给我们,欠条嘛不都得双方都保存的么?所以我们也存表并将欠条(借款合同)回调给A公司。

是不是一个很简单的逻辑,很清楚明了的一个需求?

就是这样一个简单的需求,大名鼎鼎的王豆豆竟然栽上面了,与其说是被栽上面上,不如说是被开发给谋害了(此处伤心过头,开始推卸责任了),伤心啊,枉我一世英名啊。。。

BIG BUG诞生的原因:

这个项目从上周四提测之后,苍天不负有心人王豆豆花了一天多时间将分析出来的所有测试范围测试完毕,然后就开始与B公司联测(A公司还在开发),与B公司联测完毕后,就等A公司了,这里差点连黄花菜都等出来了。

好不容易星期一开始与A公司联测,不管与谁联测,联测从来没有顺利过,至到昨天终于与A公司联测完毕,所有测试流程都通过,我们发给他的欠条也能正常收到

话说今天就准备开始上线了,原本计划上午上线,但是开发说优化了一下代码,要先回归一下,回归就回归嘛,好简单的事情嘛。

今天下午开始回归,测试过程很顺利,唯独就是给A公司调回调接口发欠条的时,总是返回“连接超时”,最后确定是对方环境的问题,也就没管了,然后就开始上线了。

我滴个神,BUG诞生分割线


项目上线后,前面流程很顺利,但后来一个华丽丽的BUG就这样诞生了。

我们调A公司生产合同接口时发欠条(测试环境和生产环境不同,回调接口也不一致),给我们返回“保存信息失败”,这是什么情况?

当时王豆豆想的是这一定不是我们的问题,一定是对方存数据出错了,因为在测试时对方就报了这样一个bug。

现实和想象总是那么滴不同,不仅不同,而且还这么反转,难道你以为这是在拍电影么?话说电影就是来源于生活,也不是没有道理。

最终检查数据发现,结论:就是我们的BUG,给对方的request_data未按要求写,少了一部分内容。

戏剧啊,太戏剧了,当时王豆豆真不敢相信她的眼睛,不是已经联测过了,为什么联测的时候通过了?

继续查询分割线


最后发现,就是从今天下午四点后向对方请求的报文都少了内容,请求体与前面的不同,原来是开发人员优化代码是将报文对象引用成别的对象导致的。

事情的经过就是这样,开发在我眼皮底下写了一个bug,而我竟然没有发现,而且还让其上线了,真是好伤心,简直是给我幼小的心灵重重一击。

总结:

按理这么明显的一个bug,为什么会没有发现呢?

主要原因是以下几点:

1.对方测试环境不通,一直返回连接超时,而将保存信息失败的bug隐藏起来了,导致我这边无法获取到最真实的结果-----直接原因

2.明知对方环境不通,我也只是在微信群上发了几次,在对方并没有完全解决好问题的情况下,就不在追踪了-----间接原因

3.为什么不追踪?如果是我们一直联调测试也没有成功,我肯定会一直跟踪下去,但是我没有,最直接的原因是因为自己的自负,相信昨天的结果-----深层次原因

细分析下来出现这样的bug,也是必然的,因为我犯了软件测试人员最忌讳的一点:过于自信,未精益求精,所以出现bug,责任全在于我,并不在开发。

因为我一般都不相信开发人员,开发人员说没改,那一定是改了,只不过改的范围小了一点,可能就是一个变量名,也可能就是代码换了一下位置,就像今天开发人员就是说自己没改,而我最相信的是自己,相信自己的测试结果,那个requst_data在前面测试时特意检查过,反而今天就不怎么在意了。

4.还犯了一个错误,以前在调对方接口返回错误信息时,我都会将请求体和返回信息一并发给对方,但今天只将返回信息发出来了,可能我认为就是对方环境的问题,与我们请求报文无关,如果一并发出来,也许群里的某个小伙伴就能发现。

软件测试这个工作来不得半点假,一定要用实事求是和精益求精的态度对待每一次测试,对于测试结果不要相信开发,不要相信自己,哪怕有一丁点儿不对,也要拿出死磕的决心来,对战到底,只有这样才不会放过每一个潜在的bug。

最后愿每出现的一个bug都会成为我们勋功章上的一抹亮丽的色彩。

原文发布于微信公众号 - 资深Tester(zishentester)

原文发表时间:2018-02-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Google 凭什么要赔给 Oracle 88 亿?

在 1995 年 Sun 公司发布了 Java,2009 年,Oracle 以 74 亿美元的价格收购了 Sun。2010 年 9 月,Oracle 就 Goo...

2023
来自专栏张叔叔讲互联网

【一文读懂】什么是网络爬虫,每天都在忙乎什么?

先自我介绍一下,我是一只网络爬虫,出生在计算机中,操作系统就是我的爸爸妈妈,现在都活了2000毫秒了,这个放到我们生活的世界来说,已经属于比较长寿了。我出生之后...

1322
来自专栏程序人生

代码结构的演进

过年了,各种公众号都在玩拜年,玩红包,甚至在玩喜羊羊,连程序君订阅的一些技术类的公号也不能免俗。作为大年三十还在苦逼上班的程序君,自然不会放过这个绝好的机会写点...

3525
来自专栏FreeBuf

没时间了,赶紧上车!教你如何在一小时之内加密你的整个数字生活

写在前面的话 Andy Grove曾经担任过英特尔公司的首席执行官,他参与了英特尔公司的创建并主导了公司在1980年-2000年间的成功发展。他是一位匈牙利出生...

3259
来自专栏未闻Code

如果你不知道做什么,那就学一门杂学吧

多年以后,面对人工智能研究员那混乱不堪的代码,我会想起第一次和S君相见的那个遥远的下午。那时的B公司,还是一个仅有6个人的小团队,Mac和显示器在桌上依次排开,...

1639
来自专栏机器人网

小型无人机飞控系统如何组成和设计?

在经历了早期的遥控飞行后,目前其导航控制方式已经发展为自主飞行和智能飞行。导航方式的改变对飞行控制计算机的精度提出了更高的要求;随着小型无人机执行任务复杂程度的...

3713
来自专栏拂晓风起

好消息!Html5游戏和动画的福音

1794
来自专栏腾讯大讲堂的专栏

解密Midas、Webank、金融云背后的核心数据库TDSQL【海量服务之道2.0】

如果,你在寻找一款数据库,希望: •在任何情况下,数据都不丢失或错乱; •能7*24小时不间断的对外提供服务,即使故障也不会中断; •能支撑业务量10倍以上的弹...

2709
来自专栏极乐技术社区

一周小程序【资讯教程Demo】更新

轻松一刻 ? 漫画来自于《程序员幽默》 官方资讯更新 小程序开放【支付宝卡包】功能 支付宝悄悄地上线了小程序的入口,并为你预装了20款不可删除的小程序 ... ...

2468
来自专栏云+创业计划

如何依托腾讯云完成海量数据的存储和备份

在安防监在我们提供的安防监控体系中,每个监控系统每天会产生几个 T 的视频数据,这些未经处理的视频数据一般需要存储几个星期,经过剪辑和压缩处理的视频数据可能需要...

1.2K1

扫码关注云+社区