英文原文:Fixing a Bug is Like Catching a Fish
经理:该Bug何时能得到修复?
经验缺乏的程序员:也许一个小时?最多两个小时!马上去做!
经验丰富的程序员:嗯,捉一条鱼需要多少时间呢?
在现实操作中,很难能明确知道一个软件缺陷需要多久可以修复,尤其是当你对代码不了解的情况下。James Shore在“敏捷开发艺术”一书中指出:“在你需要修复Bug时,你必须找到是哪里出错了?”,问题的关键是不能准确估算多久才能找出是哪里报错的。只有知道“病源”在哪?你才能准确估算修复的时间。但那为时已晚,根据Steve McConnell:
“发现缺陷——理解缺陷——通常占了工作的90%”。
有许多缺陷只需要改一行代码就可以修复。时间都花在确定该行上面,就好像钓鱼的时候该把鱼钩放哪?何时何地鱼会上钩一样。每个Bug都有它们自己的性格特征,有些可能很容易被发现,而有些可能会跟你玩“捉迷藏”,并且容易发现的Bug不一定就很难修复,当然,那些擅长玩“隐藏”的Bug有可能很容易被修复。
查找和修复
下面让我们来看看如何发现并修复Bug。当调试时,Paul Butcher把每个步骤都进行了很好的描述。经验丰富的程序员会很熟悉这种结构化和纪律性的步骤要领。
发现和修复需要多久
设置测试环境所需的时间,重现一个Bug或者修复可能远远超过在代码中查找和修复的时间。但是对于那种小缺陷,在发现时即可修复。
在软件开发中,关于大多数软件缺陷来自哪里?Dewayne Perry解释到:发现一个Bug(理解并重现Bug)比多久去修复更难。研究发现,大多数Bug(几乎3/4)很容易被发现和理解,并且不会花多少时间去修复:5天或更少(这是在大型实时系统与一个重量级的SDLC中,经过大量检查和测试发现的)。这里有一个长期隐藏型Bug,可能需要花更长的时间修复,即使这个Bug微不足道:
所以在你发现Bug的时候,可以和自己打赌,它很快就会被修复,这个命中率会很高。但是当打赌失败时,你可能会错很多,或者彻底来个大错特错。
18 0 标签: Bug调试测试热门源码