软件测试工程师真实经历,一个软件测试工程师的加班经历

_ vvnoN2|S#tPt0背景:RYWr~*xFS0

1C+@c

C}6V7`F:C!Y0        我们的软件产品需要在A、B、C三种硬件平台(理论上对我们的软件影响是不大的)上51Testing软件测试网)m;tq?H"Hh51Testing软件测试网1Wf S0]|$ff

其中,X和Y都是新写的程序,而且早些时候,在X上发现了较多BUG,Y基本上没发现问题。Z的代码在以前的产品中就有,相对已经比较稳定。由于项目的时间压力,这三个部分没有时间做分别的s9V? zd[:sm051Testing软件测试网[6X^l4E

都是指针惹的祸:51Testing软件测试网|cw5H:O[I^&KxqtB51Testing软件测试网)~D{M0Hl,CY

一开始要加班是因为X的工作还没有完成,于是大家就一边等,一边“催”(X的leader声称要到12点才能完成,真是乌鸦嘴),一边各忙各的(我在上网看新闻)。事实上,X到7点多就完成了,但一测试发现有明显的内存访问问题。于是X就调试,由于X在内存访问问题上已经“臭名昭著”了,所以大家(至少我)相信是以前类似的问题,或者是以前的修改没有彻底。s/Q%Y%]O:S051Testing软件测试网'[^/xV7K&Cw*B\@#~

但很快,X发现问题是:Y传了一个空指针给X;很快,Y也证实了X的说法。大家责问Y,为什么程序员自己测试时没有发现?其实很简单,程序员的51Testing软件测试网;op _

\3UF3p1OB51Testing软件测试网J|lE2Q3bJ

找一个BUG好难:51Testing软件测试网7R|C&a,^7k

于是Y的leader也加入了调试队伍,因为Y的代码都有详细的Log,所以很快就定位到了他的一个team member的代码里。不幸的是,Y learder的开发机器在关键时刻down掉了。好在我们初步实施了软件配置管理,Y leader很快在别人的机器上重新搭建好了调试环境。51Testing软件测试网\L4@mG2~([?@

z

naK"kp0        Y作了些修改(事实上,他改的这些代码都是无关紧要的),经我测试后,发现还是不行。以我的职业感觉,我觉得X也有问题(后来知道是歪打正着)。但X宁可上sina看“北京某景区有人裸泳”也不肯检查一下自己的代码。Y经过艰苦的调试(其实绝大部分时间我想是在理解这些不属于他的代码),发现是因为某个数据没有取得而导致了空指针的出现,但照理,Z应该总是把这项数据传送给Y的。但Y对Z的“指控”很快被证明是无效的,因为Z leader向大家“展示”了她从硬件取得的数据是好好的。Vnoe,Q7K:d-j-oKV}051Testing软件测试网9yslS2KD

于是,Z leader继续吃饼干;Y leader继续调试;X一干人等继续“研究”我国风景区的管理问题。而我也终于无聊到了极点,开始“友情赞助”,检查Y的问题代码。代码很少注释,写得也很随意,甚至缩进的格式都显林乱;但好在代码不长,逻辑也不复杂。我重点检查了内存的操作,但没有发现问题。]w(A:P%~+n0

%y$t(hKpw _'~0        正在我纳闷同样一段代码,为什么vZh`Yw)dm&_7e0

B3ir%K-o)~0有多少Code可以重来:

1N}9_+d\Y0        Y leader忙着改C文件和H文件,因为这个数据项的名称出现在多处,所以Y leader改得很仔细,也很辛苦;我想他心里一定在臭骂他的这个team member,为什么不定义一个常量或者宏。在Y leader改代码的时候,我也在想,这简直就像Z在故意制造陷阱:这两组数据这么类似,而且其他数据项的名称都相同,为什么偏偏这项数据,一个叫State,另一个叫Status,真是有空,真TMD。RK2Vq;IW7_w0

u.Hb(`5k&]Z2y0        Y leader终于确认改正了所有该改的State。但用他的team member的单元测试程序一测发现还是有老问题。你可以想象到我们当时的感觉,就像吃了一吨广告上那个很夸张的“凉”得透顶的润喉糖。51Testing软件测试网Rs#P%Cwj(R

:G.O-Sr-}hL!i6R!E6@Yi0        但是! Y leader大叫:单元测试程序里的State也要改成Status。在无数双眼睛的注视下,Y leader颤抖着replace all,save,F5。终于,当大家看到计算机上的一串字符后,每个人都舒心的笑了。(当然,如果没有刚才的虚惊一场,可能不是每个人都在快工作到午夜的时候还能笑得动的)。我想,此时此刻,此情此景,在Y leader的眼里,一定滚动着些东西,除了眼屎。%NA+G.@Kd?x051Testing软件测试网6}(J Hz#oy!H6m

现在,又轮到我上场了。Build时发现X的代码中也需要把一些State改成Status。(如果当初他们也检查一下就好了)。X的程序员也没有定义常量或者宏的习惯,所以我Build了多次,他们才把所有要改的State改掉。vnz&k$_M9| J0

U%O-qwCo;}P0一个QA的精彩:51Testing软件测试网|fC&y!e;X"u

:X6||bq;X(j0        后来发生的事可以用一个“峰回路转”来形容,在无数双眼睛的注视下(我的手没有颤抖,因为人已经麻木了,或者说一切都习惯了),我启动了我们的软件,连接到B平台上,检查所有的数据,全部OK;连接到C平台上,检查所有的数据,全部OK。搞定了!M4T1@

Bc051Testing软件测试网kim'eFX6B

“回家,回家,回家的感觉是多么多么……”,我想,当时,也许每个人的心里都在回荡着王杰的这首老歌(如果知道这首歌的话),包括陪我们加班到深夜的可怜的老板。(~%U/iQkx*X/x0

u*^AkEE(QH&Y0        当其他人已打算转身时,我的思想在激励的斗争着。看着同事们的脸,包括老板沧桑的脸和几张幼稚却不显年轻的程序员的脸,想着家里一天没能见到老爸的孩子,我想回家,但是,我是QA。我默默的连上了A平台,然后发现什么数据都没有。(如果把这个场景定格或者淡出,我怎么想都觉得象好莱坞预示续集的结尾)。51Testing软件测试网F1d"j^bA(HP:Z7JC51Testing软件测试网2}3F9?~-T3L

当我喊住大家时,我不知道该如何描述自己的感受。+M7d%i}J4E7z0

F1NY&xW;}S^0        无声,无声,又见无声!突然,老板告诉大家:今天的deadline搞定B和C平台就可以了,A平台下个礼拜再说。管他是真是假,老板发话就可以了,还不开溜。3分钟后(其中半分钟是给CVS打上Tag),我坐上了回家的Taxi。:~/d?wg7^1G051Testing软件测试网

]]mXO'U

凌晨一点的上海还是霓虹闪烁,好美。t?)O#ro.]:B!i0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值