缺陷管理,是软件研发过程中的一项过程管理。它与配置管理都是CMM2级一个KPA(关键过程域)。

  一、明确几个缺陷管理的概念。

  缺陷(Defect),是静态的存在于软件工作产品(文档和代码)中的错误,也指在软件运行期间,由于这些错误所激发引起的和软件预期属性相偏离的现象。

  错误(Error),代码中的错误。包括语法的错误(Syntax Error)和逻辑的错误(Logical Error)。

  故障(Fault),软件在运行期间发生的意外状况。

  失效(Failure),软件在运行期间发生意外状况,与用户的需求不符,导致功能不可用。

  狭义的Bug是错误,广义的Bug是缺陷,在实际的工作中,缺陷和Bug意思是一样的。错误可能会导致故障,故障可能会导致失效,但是都不是必然的。

  缺陷单(Bug Report)对于缺陷定位的书面报告,是修改、跟踪、证明、度量的依据。

  二、区分是缺陷还是改进

  缺陷是被测试软件的实现与需求规格说明书描述的不一致,是由开发人员进行修改。

  改进(Enhancement)是指用户的需求与需求规格说明书描述的不一致,是由需求人员进行修改。二者的现实意义:

  (1)避免扯皮,明确责任

  (2)涉及到费用问题(缺陷不需要缴费)

  三、缺陷管理的目的:

  (1)保证信息的一致性

  (2)确保缺陷得到有效的跟踪和解决

  (3)获得正确的Bug信息,用作缺陷分析和产品度量。

  四、缺陷的管理工具

  缺陷的管理工具发展经历了三个阶段,缺陷跟踪数据库、缺陷跟踪系统和缺陷管理系统。缺陷跟踪的成本越来越低,相关人员的工作量越来越少。跟踪体现在事前,而管理涉及到事前、事中、事后的整个过程,强调对缺陷的度量和分析。

  第三代缺陷管理工具主要有,TestCenter、TD/QC(Mercury)、ClearQuest(Rational)、BMS(Microsoft)、Jira、SilkTest、Bugzilla、Butterfly、Mantis。

  缺陷管理工具是通过设置角色来管理的,不同的角色具有不同的权限,从而实现对所属不同角色的账户进行管理。TD/QC中默认角色主要包括:

  (1)developer 开发角色

  (2)project manager 项目负责人角色

  (3)QA tester 测试角色

  (4)TD admin 管理员角色

  (5)viewer 访客的角色

  默认的角色,不可以被删除和修改他们的权限。如果是具有管理员的权限,可以自己创造相应的项目所需要的角色,上述的角色的权限是可以被继承的。