缺陷跟踪系统简介
缺陷跟踪系统(Defect Trace System )简称DT
随着软件产业的发展,软件的质量已经越来越成为软件产品成功的关键性因素,质量保证的一个重要方法就是通过测试活动来尽早的发现问题。
对于项目管理,缺陷跟踪是很重要的一个环节,它除了可以对需求的完成度进行控制,同时也可以对软件本身的质量进行控制,以保证软件开发迭代的顺利进行。原来的软件项目开发中的缺陷跟踪都是通过EXCEL表格的形式来完成的,这种表格虽然也可以进行项目管理和项目执行度的交互,但效率与实时性不高,同时也不 好维护和统计,因此就出现了缺陷跟踪系统,通过软件技术来解决软件项目的管理问题。
测试的重要性主要体现在:
1、确保软件需求和设计的一致性;
2、尽早的发现问题,降低维护成本;
3、经验表明,测试投入通常要占到研发投入的30%~50%;
测试的主要成果为测试报告,通常也称之为问题报告单或缺陷记录。缺陷跟踪管理系统主要完成对缺陷报告的记录、分析和状态更新等管理。一个完善的缺陷跟踪管理系统对于测试的成功实施是非常重要的。
在项目或产品研发过程中,经常遇到以下问题:
已经修改的错误重复出现;
无法清晰的描述当前版本的缺陷状态;
对测试中发现的问题,主要依靠记忆得方式来记录;能记录的数量有限,并且经
常遗忘;
采用了记录单或问题表单的方式来记录缺陷,但只是简单的记录了错误内容,没
有分析和流程跟踪能力;
研发经验教训得不到继承,重复同样的错误;
缺陷跟踪管理系统可以规范项目中开发、测试、缺陷处理的流程.
缺陷跟踪系统的使用
缺陷跟踪系统的主要目标
缺陷跟踪系统的主要目标在于为改正那些应该改正的缺陷提供帮助。任何不直接支持这个目标的问题,都不是关键问题。有些其他的目标(如形成某些管理报告)都完全兼容于系统的主要目标,每当为系统提议添加新的任务和目标时,都应该将其与主要目标作比较。偏离了系统主要目标的任何目标都应该被排除。
缺陷跟踪系统的任务
为实现缺陷跟踪系统的目标,必须确保以下几点:
1)问题一旦报告,所有需要了解该问题的人必须立即获知。
2)不能有任何错误仅因为被某人遗忘而未得到改正。
3)不能有任何错误因为某个程序员的一念之差而未得到改正。
4)使仅因为沟通不畅而未得到改正的错误尽量少。
保持这个任务列表的最小化是基本的要求。
缺陷跟踪系统的概述
一个缺陷跟踪系统,需要实现几部分的功能:
1)缺陷的上报,当问题被发现后,可以通过系统进行提交、保留,方便跟踪。
2)缺陷录入系统后,项目经理应该可以通过缺陷跟踪系统进行浏览,定期获得最新的缺陷问题报告。
3)项目经理将缺陷问题报告通过缺陷跟踪系统转交给程序员,程序员可以通过缺陷跟踪系统知道自己负责的修正的缺陷问题报告。
4)缺陷问题的修正处理,当程序员修复问题后,可以通过跟踪系统,通知项目经理问题已修复。
5)对于无法根据缺陷报告重现的问题,也可以通过跟踪系统,向项目经理及测试人员要求更多更详细的信息,并将缺陷问题返回至项目经理重新处理。
6)问题暂缓及申诉过程处理,对于缺陷报告提到的问题,如在当前版本无法实现或者缺陷与需求有冲突的时候,可以将问题置为“暂缓处理”或“提出申诉”。
7)对于优先等级较低的缺陷问题,可能不能被及时处理掉,但必须可以被查询。
8)缺陷跟踪系统可以提供跟踪项目的状态报告。
缺陷跟踪系统的使用者
在实际工作中,可能有没有那么细致,或者一个人担任好几个角色。
1)主任测试员 领导项目的测试工作,并对测试和问题报告的质量负有责任。他可能是惟一被允许关闭问题抱高的测试人员。
2)普通测试员 提交缺陷报告,并关注问题如何解决。
3)项目经理 负责按期交付高质量的软件产品。平衡成本、可靠性、产品能力及时间进度,决定哪些缺陷应被改正,优先等级如何划分,对整个项目的进行管理控制。
4)程序员 负责根据缺陷跟踪系统的报告进行缺陷重现、修改、反馈。
5)产品经理 关注的是任何会影响产品销售或技术支持成本的问题。
6)技术支持 负责为客户提供信息、为管理层降低服务费用,并使产品评价起来更为优秀。技术支持与每个暂缓处理或被遗忘的缺陷、每个被拒绝改正的设计问题、用户手册中的每个错误或不清晰之处息息相关,因为它们会导致用户打来电话,耗费支持人员的时间,并且需要支持人员收集信息提供给用户。
7)文档编写人员 负责编写用户手册,编写同时,也会发现缺陷,因此也需要通过缺陷跟踪系统。
8)测试经理 负责测试工作的质量以及管理测试人员。
至于有些项目甚至配备律师角色,他也需要浏览缺陷报告以了解情况。
缺陷跟踪系统的输出
1)输出每个新缺陷问题的详细信息。
2)输出每周的项目状态报告。
3)输出项目测试周期完工报告。
4)输出项目的已处理问题和未处理问题报告。
5)输出项目暂缓处理的问题报告。
6)输出项目进展总结报告。
7)输出项目开发结束的产品发布报告单。
尽可能都能提交以上的报告,可以方便所有使用缺陷跟踪系统的角色获取需要的信息。
缺陷跟踪系统的进一步思考
对于如何使用缺陷跟踪系统,应该进一步反思,毕竟缺陷跟踪系统只与缺陷有关,与行政无关,但实际情况往往不是如此,缺陷跟踪系统成为了衡量项目参与者工作量的指标,为参与的项目人员造成压力,例如,对于测试人员,衡量他们工作量的是他们对项目提交的缺陷数量,往往为了这个目的,测试人员可能不断的提交缺陷,甚至乎与其他人提交的缺陷相似,这样一来就对程序员造成了压力,容易使工作变得复杂。因此如何使用缺陷跟踪系统需要在实际中讨论进行!
目前主流的缺陷跟踪系统
目前缺陷跟踪系统还是比较多的[1]?,比较有名的像Mercury的TestDirector,Seapine的Test Track Pro,TechExcel的DevTrack,Atlassian的JIRA以及今天要重点介绍的Mantis。
l TestDirector
在 工业级软件项目领域,由于Mercury是测试软件领域的老大(比较有名的如LoadRunner、WinRunner等),因此它的TD也成为了缺陷跟 踪系统的标杆产品。其也是最早通过Web方式来进行管理的缺陷跟踪软件。不过由于其早期版本不能灵活的对项目管理流程进行配置,又由于其昂贵的价格,因此 目前应用的企业也不是很多。
l Test Track Pro
Seapine 公司主要也是做项目管理软件的,Test Track Pro同其同门配置管理产品Surround SCM可以完美结合并实现完整的代码级管理。其主要架构为Client/Server,同时提供了CGI的Web访问接口,不过其高昂的价格也会让很多公 司望而却步。其License分为两种,Named和Floating,分别为US$295和US$795。
l DevTrack
TechExcel 可以说是CRM系统以及HelpDesk系统的老大,它的产品在很多大公司(如Oracle、IBM等)里面都有应用,最新发布的DevTrack功能也 确实强大,在其项目配置的部分可以提供用户对各级项目相关人员的UI进行配置,同时也提供了最大的灵活度给客户,可视化自定义跟踪流程可以实现任何复杂的 配置处理。与Test Track Pro相比,其功能可谓更胜一筹,用他们自己的话讲:“DevTrack – The market leading defect and project tracking tool from TechExcel”。官方网站上没有详细的报价,只是对其SBE(Small Business Edition)有一个大概的报价是含维护费每人每年149美金。其价格也确实符合其产品的层次。
l JIRA
JIRA 是目前比较流行的基于Java架构的缺陷跟踪系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他 的产品要高得多,而且易用性也好一些。同时,开源则是其另一特色,在用户购买其软件的同时,也就将源代码也购置进来,方便做二次开发。正因为其开放性,价 格上自然也相当不菲,对于中小型的软件企业做项目管理,则又要另寻出路。
l Mantis
Mantis 是一个基于PHP技术的轻量级的缺陷跟踪系统,其功能与前面提及的JIRA系统类似,都是以Web操作的形式提供项目管理及缺陷跟踪服务。在功能上可能没 有JIRA那么专业,界面也没有JIRA漂亮,但在实用性上足以满足中小型项目的管理及跟踪。更重要的是其开源,不需要负担任何费用。不过目前的版本还存 在一些问题,期待在今后的版本中能够得以完善。
Mantis安装准备 Mantis采用了目前比较流行的LAMP(Linux + Apache + MySQL + PHP)架构,不过也可以通过各个软件的Windows版本进行配置。本文中的运行环境就是基于Windows平台搭建的。
Mantis安装的软件环境:
OS:Windows 2003 Server
Application Server:Apache HTTP Server 2.0.54 or later
Database Server:MySQL 5.0.10a Beta or later
Language:PHP 5.1.2
Mantis:Mantis 1.0.0