缺陷管理是和软件开发的项目管理、需求、设计、开发、测试严密相关的,因此缺陷管理系统如果能够在某些方面做得更好,那么它将会给用户的使用带来更多的方便:

1)和其他开发工具紧密结合:比如测试管理系统、配置管理系统、项目管理系统等等,缺陷的产生/解决是和开发过程中的这些部分紧密相关的,比如测试发现了缺陷,解决缺陷后提交代码在配置管理系统中产生新的版本记录,根据项目的缺陷数量、变化趋势判断项目的开发质量等等,因此如果缺陷管理系统能够和这些系统紧密结合,在使用上会给用户带来很大的好处;

2)方便使用:方便使用首先是指终用户操作上的操作简单;其次,用户访问缺陷管理系统的方便性也需要考虑(比如是基于Web方式访问,还是使用特定的客户端进行访问);后,系统安装、配置以及维护上的简单方便性对于系统的推广也很重要,很多小的开发团队不可能有专门的系统管理人员,如果系统的安装和维护太过于复杂会带来很大的困难;

3)缺陷管理权限配置:缺陷生命周期的管理体现了软件开发过程的管理,比如什么人可以报告缺陷,什么人可以分派缺陷,解决缺陷后谁关闭缺陷;对这些权限进行管理,实际上是对开发流程进行了限定;

4)统计和分析功能,如同MIS系统在管理库存、销售等基本功能之外都要提供报表一样,缺陷管理系统也应该提供统计分析功能,用于对软件开发过程中的缺陷进行统计分析;这种统计分析不仅仅是简单地统计某个测试人员报了多少个缺陷,开发人员解决了多少个缺陷,更多的是对软件开发过程中缺陷的变化趋势(缺陷报告数量,已解决缺陷数量等),这对于软件质量的管理是一个重要的依据;

缺陷管理系统很重要,但是不可替代的是管理的思想

1)如何规范化你的缺陷信息记录?

要管理缺陷,缺陷所记录的信息将应当能够完全记录缺陷的各个方面,并且能够满足各类用户的需要;

2)对缺陷的各个状态以及状态之间的转移如何进行跟踪?

3)如何保证和缺陷相关的各类人员之间的沟通顺畅?

缺陷所涉及到的人员是多方面的:测试人员,开发人员,用户……他们可能位于相距很远的地方(想象一下,航天飞机上的宇航员向地面上的开发人员报告了一个软件Bug?);你必须要能够保证他们的顺利沟通。

4)如何判断缺陷对软件质量的影响?

有缺陷当然要尽量地解决,但是当缺陷的解决和项目的期限发生冲突的时候,如何判断缺陷对软件的质量的影响?应该推迟交付项目已解决缺陷,还是把缺陷保留在发布结果中?

这些问题中,有些是可以通过缺陷管理系统解决的,有些则是需要人为决定的。

简单总结

缺陷不仅仅是指软件的Bug,还包括需求、设计上的问题,以及新特征、新需求等等;缺陷管理系统用于管理软件开发过程中所发现的缺陷,它和其他的项目管理工具是密切相关的;商业软件和开源软件的缺陷管理系统各有优缺点,应该根据自己的实际情况选用;管理的思想不可替代。