越改越长的Bug跟踪流程

为了能够减少二次Bug率,一般组织都有一套Bug跟踪流程用来确保Bug修改的正确性。

下面是一个典型的Bug跟踪流程。

登记Bug -> 原因分析 -> 修改方案 -> 影响性分析 -> 修改 -> 测试 -> 测试组再测试

这个Bug跟踪流程基本上会有一个较高的Bug率,我的经验显示,这个流程的二次Bug率在20%左右,即每修改10个Bug,其中有2个可能没修改完全或者是引起新的Bug。

于是,一个改进的Bug跟踪流程出现了。

登记Bug -> 原因分析 ->  修改方案 -> 方案确认 -> 影响性分析 -> 修改 -> 修改代码确认 -> 测试 -> 测试组再测试

这个新的流程改进时认为,
    修改方案没有经过确认是造成二次Bug的重要原因,
    并且,修改后的代码应该经过代码复查。

但是这个修改后的流程应用后的二次Bug率仍然在20%左右,甚至有抬高的迹象。

于是,一个更新的改进流程出现了。

登记Bug -> 原因分析 ->  修改方案 -> 方案确认 -> 影响性分析 -> 影响性分析确认 -> 修改 -> 修改代码确认 -> 测试用例书写 > 测试 -> 测试组再测试

因为,过程改进人员认为,影响性分析不足是Bug没有发现的原因之一,并且,测试范围没有留下必备的文档以便确认。

但是这个修改后的流程应用以后,二次Bug率仍然没有得到改善。

于是,大家认为,不是流程的问题,是人的问题。

—— *——*——

我们来看看是不是真的是这样的?

从第一个流程开始,之所以二次Bug率很高的原因的确是开发组的测试不充分。
而测试不充分的原因,有时间压力的成分,但是另外一个重要的原因是影响性分析不足之外。而影响性分析不足的原因是——这不是人力办得到的。几乎高手也不可能分析的很全面。这才是改进了三个流程都没有达到效果的主要原因。
第二个原因是测试只是执行了部分用例。这也是为什么即使测试组全面测试通过以后交给客户还会被发现Bug的重要原因。

既然明白这两个重要原因,那么流程的改进方式就不能是延长流程。延长流程不仅没有改进效果,并且还造成工时浪费,交货期延长等问题。

所以,最终制定的有效改进方案是,采用自动测试,每个Bug修改的时候都要进行全部测试用例回归。
这样之后,二次Bug率(指交给测试组验证)降到几乎为0(因为有些测试只能采用人工确认)。

自动测试的执行时间随着项目的规模不同而不同,但是整体上来讲,Bug确认的工时降低了大约80%。

posted @ 2012-11-08 23:18  史蒂芬.王  阅读(448)  评论(2编辑  收藏  举报