一个适应中小企业的缺陷跟踪管理系统
摘要:随着计算机技术的发展,软件复杂性越来越高,缺陷管理必须引入适当工具。国内外的缺陷跟踪管理系统众多,但是针对中国中型软件开发的特点,尚不存在合适的工具,为此,本文提出了一个适合国内中小型软件企业进行软件开发的缺陷跟踪管理系统(E-BugNet)。
关键字:软件开发 缺陷缺陷跟踪 E-BugNet
1 引言
没有任何一个行业像计算机工业发展的如此迅速,今天的软件产业更是如此。技术和产品的更新日新月异,令所有技术人员和管理人员都感到明显的压力,这种压力集中体现在两个方面:提高产品质量和缩短面市时间。现在软件产品的开发,对市场投放速度的要求成倍增长,Internet/Intranet应用的发展改变着软件的开发、传递和分发方式。不断提高的软件质量的要求,使越来越多的软件机构感到规范开发迫切性。多平台,多操作系统,多开发工具,多对象类型,多计算机语言等,使复杂的软件开发环境更加难以控制。
作为软件测试和软件开发的一部分,缺陷跟踪管理也同样适用。随着项目团队的日益扩大,人工管理的不足和问题愈来愈大地显现出来,迫切需要有相应的辅助工具来支持,以提高开发的效率和改善软件的质量。因此,选择合适的缺陷跟踪管理系统,是提高了软件产品的可靠程度和质量的必然条件。本文提出了基于分布式的电子文档安全管理系统开发中使用的缺陷跟踪管理系统E-BugNet。
2 缺陷跟踪管理系统的特点及其面临的问题
由于软件规模不断扩大[1],手工管理软件缺陷变得越来越困难,缺陷跟踪系统简化了这些工作。首先,实现了地域上分散的项目人员高效协同工作,有效降低软件测试成本,提高工作效率;其次,通过设置不同的用户权限,安全、准确地实现了缺陷的管理和跟踪,且便于项目结束后的存档,以备将来参考;再次,系统维护简单,如果采用B/S结构,对系统的升级只需要修改服务器端[2]。
现有的缺陷跟踪系统提供的功能都基本相同。但是在管理结构的实现上有一些不同,最简单的实现是一个系统有一个管理员,这个管理员负责管理所有的用户和项目,管理员的工作量会由于用户和项目的增加而增加,通信和管理的成本也会增加,因此这样的系统不适应大中型的项目或者地域分散的软件生产商。目前已经存在的缺陷跟踪工具非常多,有代表性的系统有:
(1)Aardvark
标准的Aardvark系统可以支持25个用户,适用于规模不大的软件团队。但是其管理流程过于冗杂,引发大量不必要的开销。
(2)Aceproject, AdminiTrack, Agility
其主要问题在于,任何个人都可以在此系统中注册一个部门,并且作为这个部门的管理员为自己的部门注册用户。但是,这三个系统没有对相关的部门的组织结构进行管理,任何人都可以随意注册一个部门,容易造成重复的部门注册。虽然在系统运行时各个部门之间是透明的,但是这个系统很容易造成数据库系统的混乱,并使数据库系统中充满垃圾信息。
(3)Bugzilla
该系统提供了一种不同的管理方式。Bugzilla工具对软件产品设定不同的模块,并针对不同的模块设定开发人员和测试人员;这样可以实现提交报告时自动发给指定的责任人。测试人员或开发人员发现bug 后,判断属于哪个模块的问题,填写bug报告后,通过Email通知项目组长或直接通知开发者。
(4)Maintis
该系统有一些优点:个人可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件;支持多项目、多语言;权限设置灵活,不同角色有不同权限,每个项目可设为公开或私有状态,同样每个缺陷也可设为公开或私有状态,每个缺陷可以在不同项目间移动。但这个系统容易造成用户和项目关系上的混乱,流程定制不方便,但该流程可满足一般的缺陷跟踪。
3 E-BugNet系统
针对以上不足,我们设计了一个E-BugNet系统,克服了上一部分中提到的一些缺陷跟踪系统的不足,在这个系统中,数据库中的垃圾信息明显减少,并且使用户管理和交流更加方便。
3.1 E-BugNet的结构
E-BugNet由简单的三元组组成(如图1),即客户端浏览器,Web服务器和数据库服务器。当然,Web服务器和数据库服务器也可以是同一台主机。关于这种不同的Web架构,在文献[1]中有更为详细的介绍。
图1 三元组结构
3.2 E-BugNet中的缺陷状态
软件缺陷在缺陷跟踪管理系统(E-BugNet)有7种状态, 分别是: 缺陷提交(New)、缺陷分派(Open)、缺陷修正(In-Process)、缺陷修正完(Resolved)、缺陷重新打开(Reopen)、缺陷关闭(Closed) 和缺陷延期(Deferred)。
New:测试人员将缺陷提交到BugNet后,缺陷的处于new状态。
Open:开发组长到BugNet查看没有分配的缺陷,将缺陷分配给相关开发人员进行修改,缺陷的处于Open状态。
In-Process:开发人员拿到分配给自己的缺陷后,将缺陷的状态修改为In-Process状态,
Resolved:解决了缺陷后,将缺陷的状态修改为Resolved,此时需要修改缺陷的解决方案(具体的状态,查看附注)。
Closed:测试人员在测试通过之后,将缺陷的状态修改为Closed。
Re-open:如果在后来的测试中又出现的该缺陷,需要将缺陷的状态置为Re-open。
Deferred:长期没有解决的缺陷,缺陷的状态修改为Deferred。
3.3 E-BugNet系统中用户权限
目前大多数软件缺陷跟踪工具实现的用户权限控制均是由系统管理员控制,当用户在地域上分散较广时,用户的一些请求可能会被延时处理或者处理起来有一些成本花费,例如:新增加用户信息;修改某用户的若干权限;修改若干用户的权限;删除用户信息等。
3.3.1 E-BugNet系统中有管理权限的用户角色
(1)admin:系统管理员,整个系统有唯一的一个系统管理员,他负责维护系统的部门信息而非用户信息;
(2)subadmin:部门管理员,每个部门对应一个部门管理员,负责维护本部门的用户信息;
(3)project manager:项目经理负责维护本人负责的项目信息,注册相关的用户信息,为这些用户分配相关的权限并将他们和某个具体的项目联系起来;
3.3.2: E-BugNet系统中有处理软件缺陷报告权限的用户
(1)Tester: 主要负责提交软件缺陷报告和验证软件缺陷报告处理结果,并决定关闭或者继续开放某软件缺陷报告。
(2) Checker: 划分缺陷的等级、重复缺陷的审核和缺陷描述的审核
(3) Develop Manager: 指定处理某软件缺陷报告的处理人;
(4)Developer:主要负责提交软件缺陷报告的处理结果;
(5) majordomo:主要负责长期没有处理提交软件缺陷报告
3.4 E-BugNet系统缺陷统计分析报表
系统会把已删除的缺陷和重复的缺陷自动过滤掉。系统支持每日缺陷状态报表(DailyReport) ,并自动地发送给所有项目组成员。每日报表中包括对所有缺陷的统计信息、已修复和未修复的缺陷数量、当日新增的缺陷信息等。系统提供了多种图表,包括缺陷趋势图、缺陷分布图、缺陷及时处理情况统计表等,使用户了解当前缺陷的分布情况,以及缺陷走势情况。
3.5. E-BugNet内置的管理流程
要使用好E-BugNet,需要有与之相适应的管理流程,E-BugNet中,内置了适合中国国情的缺陷管理流程。其中,缺陷由测试提出,测试组长确认,项目组长核准后,然后下发,更改以后如下图(图2):(其中,缺陷支持在所有项目中的共享,支持缺陷的关键字搜索).
图2 缺陷管理流程
4 结束语
目前,软件缺陷跟踪系统E-BugNet已经完成并应用于实际的工作中。经过长期的实践表明, 该系统实现了地域上分散项目人员高效协同工作,有效的降低软件测试成本,提高工作效率。从而提高了软件产品的可靠程度和质量。