随着软件产业的发展,软件的质量已经越来越成为软件产品成功的关键性因素,质量保证的一个重要方法是通过测试活动来尽早的发现问题。对于项目管理,缺陷跟踪是很重要的一个环节,它除了可以对需求的完成度进行控制,同时也可以对软件本身的质量进行控制,以保证软件开发迭代的顺利进行。原来的软件项目开发中的缺陷跟踪都是通过EXCEL表格的形式来完成的,这种表格虽然也可以进行项目管理和项目执行度的交互,但效率与实时性不高,同时也不 好维护和统计,因此出现了缺陷跟踪系统,通过软件技术来解决软件项目的管理问题。测试的重要性主要体现在:

  1、确保软件需求和设计的一致性

  2、尽早的发现问题,降低维护成本

  3、经验表明,测试投入通常要占到研发投入的30%~50%

  测试的主要成果为测试报告,通常也称之为问题报告单或缺陷记录。缺陷跟踪管理系统主要完成对缺陷报告的记录、分析和状态更新等管理。一个完善的缺陷跟踪管理系统对于测试的成功实施是非常重要的。在项目或产品研发过程中,经常遇到以下问题:

  1.已经修改的错误重复出现

  2.无法清晰的描述当前版本的缺陷状态

  3.对测试中发现的问题,主要依靠记忆得方式来记录;能记录的数量有限,并且经常遗忘

  4.采用了记录单或问题表单的方式来记录缺陷,但只是简单的记录了错误内容,没有分析和流程跟踪能力

  5.研发经验教训得不到继承,重复同样的错误

  6.缺陷跟踪管理系统可以规范项目中开发、测试、缺陷处理的流程。

  缺陷跟踪系统的主要目标

  缺陷跟踪系统的主要目标在于为改正那些应该改正的缺陷提供帮助。任何不直接支持这个目标的问题,都不是关键问题。有些其他的目标(如形成某些管理报告)都完全兼容于系统的主要目标,每当为系统提议添加新的任务和目标时,都应该将其与主要目标作比较。偏离了系统主要目标的任何目标都应该被排除。

  缺陷跟踪系统的任务

  为实现缺陷跟踪系统的目标,必须确保以下几点:

  1.问题一旦报告,所有需要了解该问题的人必须立即获知。

  2.不能有任何错误仅因为被某人遗忘而未得到改正。

  3.不能有任何错误因为某个程序员的一念之差而未得到改正。

  4.使仅因为沟通不畅而未得到改正的错误尽量少。保持这个任务列表的小化是基本的要求。

  缺陷跟踪系统的概述

  一个缺陷跟踪系统,需要实现几部分的功能:

  1.缺陷的上报,当问题被发现后,可以通过系统进行提交、保留,方便跟踪。

  2.缺陷录入系统后,项目经理应该可以通过缺陷跟踪系统进行浏览,定期获得新的缺陷问题报告。

  3.项目经理将缺陷问题报告通过缺陷跟踪系统转交给程序员,程序员可以通过缺陷跟踪系统知道自己负责的修正的缺陷问题报告。

  4.缺陷问题的修正处理,当程序员修复问题后,可以通过跟踪系统,通知项目经理问题已修复。

  5.对于无法根据缺陷报告重现的问题,也可以通过跟踪系统,向项目经理及测试人员要求更多更详细的信息,并将缺陷问题返回至项目经理重新处理。

  6.问题暂缓及申诉过程处理,对于缺陷报告提到的问题,如在当前版本无法实现或者缺陷与需求有冲突的时候,可以将问题置为“暂缓处理”或“提出申诉”。

  7.对于优先等级较低的缺陷问题,可能不能被及时处理掉,但必须可以被查询。
  8.缺陷跟踪系统可以提供跟踪项目的状态报告。

  缺陷跟踪系统的使用者

  在实际工作中,可能有没有那么细致,或者一个人担任好几个角色。

  1.主任测试员领导项目的测试工作,并对测试和问题报告的质量负有责任。他可能是惟一被允许关闭问题抱高的测试人员。

  2.普通测试员提交缺陷报告,并关注问题如何解决。

  3.项目经理负责按期交付高质量的软件产品。平衡成本、可靠性、产品能力及时间进度,决定哪些缺陷应被改正,优先等级如何划分,对整个项目的进行管理控制。

  4.程序员负责根据缺陷跟踪系统的报告进行缺陷重现、修改、反馈。

  5.产品经理关注的是任何会影响产品销售或技术支持成本的问题。

  6.技术支持负责为客户提供信息、为管理层降低服务费用,并使产品评价起来更为。技术支持与每个暂缓处理或被遗忘的缺陷、每个被拒绝改正的设计问题、用户手册中的每个错误或不清晰之处息息相关,因为它们会导致用户打来电话,耗费支持人员的时间,并且需要支持人员收集信息提供给用户。

  7.文档编写人员负责编写用户手册,编写同时,也会发现缺陷,因此也需要通过缺陷跟踪系统。

  8.测试经理负责测试工作的质量以及管理测试人员。至于有些项目甚至配备律师角色,他也需要浏览缺陷报告以了解情况。