解决软件测试Bug的五个阶段

上一篇 / 下一篇  2012-06-29 11:28:09 / 个人分类:杂谈

一个非常严重和困难的bug,能够成就一个饱经沧桑深受压力的有经验的专业程序员的职业生涯。经受这种考验的创伤程度,相当你受到了一次严重的身体伤害,离婚,或是家庭成员的离世。51Testing软件测试网1o"N:j ~0Nauy

   研究人员在研究了计算机编程心理学后,得出了一个程序员们在解决一个困难的bug时的心路里程。这些不同的境界,很像为大众所知的Kübler- Ross Stages of Grief(这个模型描述了人对待哀伤与灾难过程中的5个独立阶段(否认,愤怒,耍赖,抑郁,接受)。绝症患者被认为会经历这些阶段),而且原因都很相 似。就好像死亡所伴随的悲伤一样,fix一个bug是一个过程其初始化了一个事件,一开始是拒绝相信,其造就了你苦闷的情绪并开始逐步影响你的心智。这种 苦闷的情结果会让你纠结要努力忍受,最终会你会找到一个满意的结果。51Testing软件测试网]/i v;]:y RB5Oh&uy

C(fR(j$O"a|0  了解下面这几个bug-fixing的阶段,会让我们更好的生存下来,并持之以恒,最终带来……关闭我们所有的bug的结果。51Testing软件测试网+M`5Xb@5U,Z l+I"C

g8xg/B _vk}0  第一阶段:抵触

P!GY,lftv051Testing软件测试网[%a4|(Kgk(P,gS5L

  本阶段的状态:多疑Skeptical、生气Offended、易怒Petulant。

i7d7Y ZEK|-l0

FJ\(`H$S\m0  1、不理睬
C$^o ?r!^^0  也许这个bug会安静地离开。
51Testing软件测试网"e)l a:NK@0b4[0Q ]F$a

51Testing软件测试网"niC-SrZ+mx

  2、标记上“不是bug”51Testing软件测试网E4h n7i IX l Xu
  也许这是用户的错,或是本地配置有问题。是的,我确信就是那样,一会就会好的。

wQ3|g.G%zx q z8s051Testing软件测试网8LoKG~(m9J5G

  3、就是一次小故障51Testing软件测试网 @/xu4u:o!o8{
  我想这就是一次小故障,很奇怪地发生了一次,它不会再发生的,虽然没有搞清楚是为什么发生了,不过这就好像我们的数据库,网格,浏览器或别的什么打了几个嗝一样。一会就会好的,我确信。

6?us#voZ*q0

Q7mv^ @Rr!A0  4、躲藏
k| }-IG0]6?0  我要休几天病假,也许他们会把这个bug转给别人的。
51Testing软件测试网hIM6pi(I y

51Testing软件测试网xW&Al"MTP+a

  5、标记为“修改需求中”51Testing软件测试网 TH9ia-}3o$Pr
  你看,我是按照需求实现的。如果你们想要改这个行为和UI,就一定要修改需求。也许他们会决定就这样了。

Vb1Up[3Y~ C@#U$g051Testing软件测试网B5} `X Y d~U(JD

  6、需要更多的信息
} z(c2oQ"cz\,A|0  我不能确定这是一个bug,除非我能在错误日志中看到一条特定的报错信息。

2O#SL'ak[l0

]puxU,J5t0  7、转给其他人
7L#B[A3\ m3lF'^s0  我调查这个bug中看到了其它模块中我看不懂的数据,问题很大。我应该把这个bug转给开发那个模块的人。我可以在我的模块中检查一下那个边边角角的情况,但是正确的fix应该是在别人的模块中。反正那个在别的国家,我见不着他。

,QZ5up}*@051Testing软件测试网r7sN VH S

  第二阶段:接受51Testing软件测试网;O!Jx6vmC"eM!J

T'k G#k,J"O/_%q0  本阶段的状态:认命Resigned、被打击Defeated、被激怒Annoyed。

Q*m[^Bsi051Testing软件测试网RFTsS3a@cc

  1、接受现实51Testing软件测试网 q2u?om F:UQ(q
  行了,行了,行了!这是我的bug,我会修正它的。

,y@/C|&u p&o:y[+w051Testing软件测试网3~H wCl,\k"U1l

  2、把这个bug放到最后
3v8~6e$bZ4y o+W0  也许,我可以在我需要fix这个bug之前找到一个新的工作
51Testing软件测试网.C'a7mPmwH"G

MeP8[Wg\z0  3、和你的经理讨价还价
%a6_o(ezft~J0  好的,你看,我可以正确地fix这个问题,不过我需要一个月。也就是说,我可以给这个问题贴个创可贴,那不会真正的解决它,但是我们可以避免用户的抱怨,这可以为我们赢得几天的时间。
51Testing软件测试网;E)bV5_NO ig

SzXAy,P3}0  4、为这个bug标记一个无耻的时间
7B4qW _7E#_Ea9|F'R0  上帝啊,我希望这时间够了。
51Testing软件测试网x6UmwH/^

i(p7G jz0  第三阶段:投入和沮丧51Testing软件测试网L3N\R @

E t4~3xMI{.s0  本阶段的状态:眼花Giddy、头晕Light-headed、紧张Nauseous。

-T y?NH$B)K}$|)X051Testing软件测试网&nH:CpW UmW2y

  1、开始调查51Testing软件测试网8O B)@u*dL] C-`
  我能搞定它,我能搞定它!只需要小小的调整一下,小小的关注一下,多一点咖啡因,再加上一点时间,我能搞定它。

ytCHB:s}{K0

!`LiiY1}|q1n0  2、Befuddlement51Testing软件测试网4Y3c(d S;I
  Shit。这太扯了。我居然没有一点进展。这代码真是乱。这样的代码居然能编译和运行,真TMD的神奇,我有机会能搞清楚它什么不正常吗?

s]U!` I{051Testing软件测试网nH-|sS`9qX {

  3、再次躲藏
U|| sk1x f5X0  你看,很对不起。我不得不要去切除我的阑尾。再一次,是的,既然你提到了它,我的确有两个阑尾。现在我一个也没有了,你高兴了吧?
51Testing软件测试网uSZj1f{O1MP5`

51Testing软件测试网J:d+N M7s#O`6[]#L

  4、犯贱
DWXh!xlW h0  好吧,总之,你到底期望什么?想让我在一个没有高级调试器的环境下改这个BUG。我是什么?千里眼吗?我在我的Commodore 64上一个更好的调试器!

~#q"W.o;L|z0

2a Z K:y8pE!eInH0  5. 瞎搞51Testing软件测试网@9? R;Kp+l
  看看我试试这么改?Kao,这样不行。要不然这样搞?也不行。那么那样搞呢?Shit,虽然再糟糕。

]w~*L/fHdi0

6Q'}e E8n7k JW0  6、绝望
c)Q?N&o0  我不可能fix这个bug了。我是个糟糕的程序员。我太笨了。我在这个满是聪明人的地方干什么?迟早他们会知道我的能力太差,那时我就玩完了,在这也混不下去了。

%t!A~j$X051Testing软件测试网c"fk8P{ a

  7、耻辱51Testing软件测试网T3lZ l4N
  我的经理问我为什么我用了一个月的时候来fix这个只需要两天就可以解决的bug?老实说,我不知道怎么去读日志信息,我搞坏了我们的编译脚本。现在,我不敢去让别人来帮我,因为这样只会让我显得更愚蠢。

p h-gjV`H+u0

)UA'yM#U!l"LpM0  8、恐慌!51Testing软件测试网%RrW6D4u;B,e
  这事变得比我相像的要复杂!而我开始觉得复杂的事变得简单……而我觉得简单的事变成需要重定半打的类。为什么我以前在我的经理前拍着胸说我可以搞定这个事?

%Cy^!H+tc#k6n0

wj7Fh1a:jq:V?h0  9、通宵工作,远离朋友和家人
jFBs%UP!cy0  (语无论次的喃喃自语,一阵一阵地大声咒骂)。
51Testing软件测试网-s5V5{eew$b0c @/o5O

w+d7{7}b P3I0  第四个阶段:愚蠢的快感51Testing软件测试网2N5GCS:iKsd8X

Ar,D(n"A1y0  本阶段的状态:感恩Grateful、安心Relieved、极端地自我欣赏Awfully Impressed with Yourself。51Testing软件测试网]iJ0`-O)kQ*[

51Testing软件测试网z&X1a1V3ff0V

  1、醒悟51Testing软件测试网3h*m)K0Q/i2s T/e1]
  哦!我终于明白怎么搞定它了……

W#TS v:`Q-q051Testing软件测试网SI:L8{8`0M0]o6w

  2、写正确的代码51Testing软件测试网pM/Nc)\r
  我是编码机器!
51Testing软件测试网6o KIXs0LW"]!H

51Testing软件测试网fIm hqy/T8}Z-KO

  3、测试
m2HTy'f+p5U0  牛!通过一个测试。真牛!又通过一个测试了。靠!有测试失败了。这是为什么……
51Testing软件测试网g,Z$slN I

51Testing软件测试网3~vL`^.j

  4、隐藏测试失败
:o7|Je6}#|0  反正这完全是一个不重要的测试案例。没有人会检查它,这个测试真是毫无意义。

%@h^7\E\3H:x3ZW051Testing软件测试网&?3_"L3y-{s p9f&r

  5、提交代码51Testing软件测试网ODakR1i(A"Y
  我太牛了,厨房里有个馅饼可以庆祝一下吗?
51Testing软件测试网"ViKTi&n/s[%v E

(c il R0o9p0  6、关闭bug51Testing软件测试网FP/g:^Ju
  我听说那里有个馅饼可以庆祝一下。

9I:`,t2j"Zj051Testing软件测试网2oRI+P g0s+S

  第五个阶段:与“完成”肉搏51Testing软件测试网 dX6b;v)Io

%]6wU,TM$@*V^Cpg0  本阶段的状态:焦燥不安 Twitchy、神经过敏 Nervous、迷信 Superstitious。51Testing软件测试网X!G8l7f |$t4ZK:V z

9~F {.h3oD*Es0  1、有人reopen了这个Bug51Testing软件测试网eT&M k,k_})F
  真的?他们发现了你引入了另一个bug? Shit –那只是一个不重要的案例永远不会发生的。

BJI"L8^u051Testing软件测试网Qr.G3w%P'ON'w;J

  2、修正以前的修正
2k7mZTI8t,r0  是的,我甚至检查了员工的年龄是一个虚数的情况,就是为了防止出错。

"Q Em9E h#O S051Testing软件测试网'C1F4\FY5p}c5_\

  3、关闭bug
JT ju0uam;p0  是的,贱货,你被关闭了。全部都关了,再也不用心烦了。
51Testing软件测试网 hc/DTw WV

51Testing软件测试网"\,i$Z)~9U

  4、发誓以后再也不干这种事了。

0@)zy.bW0

}Dx,Y'~JWpK0  5、大家都意识到你现在是那个模块的专家了。51Testing软件测试网XX;yT$s

v@(J(N \U0  哦,不!现在他们又给了我三个那个模块的新bug。

8]S1m$f%oF,E051Testing软件测试网F5c3x)W5B

  没关系,现在你只需要GOTO第一个阶段。

Hz1EA&V051Testing软件测试网*T Hg4Js D

  此外,作为一个工作中的程序员,你会永远经历这些烂事,直到你——死亡,退休,或是被升到管理层。51Testing软件测试网.L Rt[tH/Y_x


TAG:

 

评分:0

我来说两句

Open Toolbar