知识库 >> 相关知识及资料 >> BUG跟踪 >> 
[#113] 有关缺陷跟踪
【内容】

本文引用自:http://jiangxin.worldhello.net/doc/cmm_practice/bug-tracking.html

开发人员都希望自己的产品技术领先,好用,没有缺陷(BUG)。但一个能称为产品的软件项目,没有出现过 BUG 是不可以想像的,如果一个项目能够经过较充分的测试,也许可以将绝大多数 BUG 限制在软件发布前,在内部发现并解决,但用户的环境千差万别,总有挂万漏一。即便一时没有发现缺陷,但是需求变更总是有的,客户可能发现软件中有的功能不适用,于是便提出新的需求。这些软件缺陷、需求变更应被看做是软件不断成熟、发展的动力。软件开发中需要对这些缺陷报告、需求变更进行有效的跟踪和控制,这就是我们在这里要讨论的主题:缺陷跟踪。

缺陷跟踪,或称为:Bug Tracking, Defect Tracking,是软件开发中重要的辅助软件之一,跟踪记录软件的缺陷、需求变更等,作为开发人员与测试人员、客户的沟通的桥梁,保障软件开发流程更加协调。让我们看一个典型的例子:

测试人员、客户将软件的缺陷或称BUG,通过缺陷跟踪软件提交给开发人员;开发人员根据测试人员、客户提交的 BUG 的现象、描述、重现条件等数据对该缺陷进行分析,修正完成后,除了将修正的代码提交,编译成产品,还要修改缺陷跟踪软件中记录的对应的缺陷的状态,将其状态改为“已经修正”;现在球又传到了测试人员手中,测试人员对新编译的产品进行测试,看是否真的已经修正了这个缺陷,如果没有完成修正,重新将缺陷的状态改为“尚未修正”;如果经过测试发现已经修正,则将缺陷的状态改正为“关闭”。

从上面的例子中,我们可以看出,缺陷有自己的生存周期。一般缺陷跟踪软件把缺陷的生存周期的各个阶段用“状态”来描述,例如:"new" 代表新提交的 bug,"open" 代表已经分配了的 bug,"working" 代表已经进入修正阶段,"fixed" 代表已经修正,"verify fix" 代表修正已经经过测试,"closed" 代表 bug 修正完成,进入关闭状态。

除了这些状态之外,还有一些状态,如:"duplicate" 代表重复提交的 bug;"can not reproduce" 代表不能重现的 bug;"deferred" 代表修改被延迟到下一个版本;"as designed" 代表不是缺陷,而是正常的现象。

缺陷跟踪软件应具有通知功能。Bug 的变更应该能够通过邮件通知相关的负责人。

缺陷跟踪软件应具有查询功能。例如:查询那些是属于本人负责的缺陷;查询仍处于 open 状态的 bug;

缺陷跟踪软件应具有统计功能,能够统计一段时期每个人发现的 BUG 数量,BUG 的平均修正时间,一个产品周期发现的 BUG 总数等等。这些统计数字对于软件测量具有重要意义。

【备注】