解决软件测试Bug的五个阶段
上一篇 / 下一篇 2012-06-29 11:28:09 / 个人分类:杂谈
研究人员在研究了计算机编程心理学后,得出了一个程序员们在解决一个困难的bug时的心路里程。这些不同的境界,很像为大众所知的Kübler- Ross Stages of Grief(这个模型描述了人对待哀伤与灾难过程中的5个独立阶段(否认,愤怒,耍赖,抑郁,接受)。绝症患者被认为会经历这些阶段),而且原因都很相 似。就好像死亡所伴随的悲伤一样,fix一个bug是一个过程其初始化了一个事件,一开始是拒绝相信,其造就了你苦闷的情绪并开始逐步影响你的心智。这种 苦闷的情结果会让你纠结要努力忍受,最终会你会找到一个满意的结果。
q#r^f+z9P051Testing软件测试网 S3}X$e&V}O了解下面这几个bug-fixing的阶段,会让我们更好的生存下来,并持之以恒,最终带来……关闭我们所有的bug的结果。
CT ]bs YZ0TjGG;n)T-]0 第一阶段:抵触
-P_U ]wn%i051Testing软件测试网p:m!y8q U本阶段的状态:多疑Skeptical、生气Offended、易怒Petulant。51Testing软件测试网'KS'{!o:K
51Testing软件测试网0[fLekxhg*m 1、不理睬51Testing软件测试网 kqy&O5SeX#CG
也许这个bug会安静地离开。
2、标记上“不是bug”
sty:G&L\B1G{0 也许这是用户的错,或是本地配置有问题。是的,我确信就是那样,一会就会好的。
#}O;s9X
\Z0 3、就是一次小故障
g*]%U*`
]k'[_uqJ0 我想这就是一次小故障,很奇怪地发生了一次,它不会再发生的,虽然没有搞清楚是为什么发生了,不过这就好像我们的数据库,网格,浏览器或别的什么打了几个嗝一样。一会就会好的,我确信。
4、躲藏
/V_t4@u m0 我要休几天病假,也许他们会把这个bug转给别人的。51Testing软件测试网Qf%kb8F8?
5、标记为“修改需求中”
PKH_hb"Z0 你看,我是按照需求实现的。如果你们想要改这个行为和UI,就一定要修改需求。也许他们会决定就这样了。51Testing软件测试网t&H@P&v!]
5V2ML[Q1@3X1}9]0 6、需要更多的信息
)uvT
K N;d0 我不能确定这是一个bug,除非我能在错误日志中看到一条特定的报错信息。51Testing软件测试网4Q1o$?
B
FwN'l/B6n
`4GM2Z qm/df9y0 7、转给其他人51Testing软件测试网!P'@k
i!c#T:L
我调查这个bug中看到了其它模块中我看不懂的数据,问题很大。我应该把这个bug转给开发那个模块的人。我可以在我的模块中检查一下那个边边角角的情况,但是正确的fix应该是在别人的模块中。反正那个在别的国家,我见不着他。51Testing软件测试网y`3E@$Kdc8N V
[.Vm
第二阶段:接受
w6d6Ywff/v051Testing软件测试网RM;[PW.g E本阶段的状态:认命Resigned、被打击Defeated、被激怒Annoyed。
I2`lVm ^0[$Cp07?d]Z ZC/L?+dBT0 1、接受现实51Testing软件测试网1N8`"_:N7VI(A"C
行了,行了,行了!这是我的bug,我会修正它的。
d1i!^:g*}2e3[0 2、把这个bug放到最后
CDz"ngi!Z0 也许,我可以在我需要fix这个bug之前找到一个新的工作。51Testing软件测试网]fau$^1R$Zqo
3、和你的经理讨价还价51Testing软件测试网2cp ?*y0M7\U
i
好的,你看,我可以正确地fix这个问题,不过我需要一个月。也就是说,我可以给这个问题贴个创可贴,那不会真正的解决它,但是我们可以避免用户的抱怨,这可以为我们赢得几天的时间。51Testing软件测试网%aOY"A]L
^!wg&H!k9D/sO;M0 4、为这个bug标记一个无耻的时间
B'U!tD,d3t{
H(f0 上帝啊,我希望这时间够了。
co%S:P,[o'^wj0 第三阶段:投入和沮丧
0h8U5P+n~iTrQU6t2o0}S*p/?7VB,S:M0 本阶段的状态:眼花Giddy、头晕Light-headed、紧张Nauseous。51Testing软件测试网;E5F)|_~@;V {6W4E
51Testing软件测试网f A/r\9HK9p 1、开始调查
n)ld!{g0 我能搞定它,我能搞定它!只需要小小的调整一下,小小的关注一下,多一点咖啡因,再加上一点时间,我能搞定它。51Testing软件测试网]qX;B1w
2、Befuddlement51Testing软件测试网9K;zh2X@U+SVVA
Shit。这太扯了。我居然没有一点进展。这代码真是乱。这样的代码居然能编译和运行,真TMD的神奇,我有机会能搞清楚它什么不正常吗?
c(R,xO,C@^:y0 3、再次躲藏51Testing软件测试网mJ A"k1d.ksk-p!P
你看,很对不起。我不得不要去切除我的阑尾。再一次,是的,既然你提到了它,我的确有两个阑尾。现在我一个也没有了,你高兴了吧?
4、犯贱51Testing软件测试网c x(Xm}M*@&a#Y%]$Ee
好吧,总之,你到底期望什么?想让我在一个没有高级调试器的环境下改这个BUG。我是什么?千里眼吗?我在我的Commodore 64上一个更好的调试器!
;kTF-e%k0 5. 瞎搞51Testing软件测试网,k#jz(c7Q
看看我试试这么改?Kao,这样不行。要不然这样搞?也不行。那么那样搞呢?Shit,虽然再糟糕。
'hD;H8_;Z3k#E0 6、绝望51Testing软件测试网;C
FFt;]X y
我不可能fix这个bug了。我是个糟糕的程序员。我太笨了。我在这个满是聪明人的地方干什么?迟早他们会知道我的能力太差,那时我就玩完了,在这也混不下去了。
*l+L7@4x3a.euq0 7、耻辱
Jd{
my&u