BUG跟踪系统(Mantis)的简介及使用

红薯 发布于 2010/04/11 11:26
阅读 6K+
收藏 3

缺陷包括产品错误,需求和设计变更,新特性或扩展功能(New Feature, Enhancement)等,它存在于整个软件开发生命周期之中。使用中心数据库便于项目组和管理人员获取正确、足够的信息,简化了地域分散的组织的信息共享流程,它还可以实现工作流程的自动化,最大限度减少重复工作。
不同的组织,缺陷跟踪流程会有所不同,下图是一个典型的缺陷生命周期图。

在alpha/beta测试期间,测试人员将发现的Bug 提交到缺陷跟踪系统,该系统至少应包含:
·      失败描述:摘要、重建步骤、隔离信息; ·      识别信息:顺序的ID号、报告作者、报告归档日期。
一个好的系统还需要:
·      严重性等级,以评估在测试条件下,错误在系统中的绝对影响; ·      优先级,评估顾客实际使用中发生事件的可能性,或对目标顾客的后续影响; ·      环境:系统软、硬件配置,测试版本号; ·      附件,错误信息或屏幕截图。
提交之后,Bug为"Submitted"状态,变更控制委员会(Change Control Board,视项目规模组织,可以是不同角色的几个人组成或一个人担当)评审决定:
·      是Bug,分配给相关开发人员修复,状态为"Assigned"; ·      不是Bug或其他原因,关闭,状态为"Closed",解决方式(Resolution)根据实际情况选择; ·      是Bug,但延迟到下一个版本修复,状态为"Postponed"。 开发人员将Bug修复后,其状态改为"Resolved",他们应发布到下一个测试版本(Test Build)中测试人员测试所有"Resolved" Bug,没有问题应关闭("Closed"状态),未修复则要重新打开("Opened"状态)。
对于用户提交的Bug,有些系统会增加"Confirmed"的状态,表示经测试Bug确实存在。
对其他变更(如需求改变或新增),以上流程同样适用,但可能需要多次分配(assign),如需求变更,业务分析员要更新需求文档,系统分析员要更新设计文档,然后程序员改代码。
系统最好还有以下功能:
·      Root Cause:根本原因分析,这需开发人员的帮助; ·      Close Date和Resolution:系统生成关闭日期,可选择或输入问题是如何解决的; ·      系统自动跟踪记录缺陷历史,可输入注释; ·      方便的查询功能; ·      可定制的报表,缺陷趋势图表; ·      Email提醒。
安装向导:
1.安装前的准备
从http://www.mysql.com/downloads/index.html下载mysql,我使用的是mysql 4.0.2。
从http://www.php.net/downloads.php下载PHP for linux,因为我不需要新的面向对象的特征,所以我使用的是稳定的PHP4分支。
从http://www.mantisbt.org/download.php下载Mantis,我使用的是 1.0.0rc1版本(目前是最新的)。
从网上下载Apache,我使用的是Apache 2.0.51。
2.安装步骤
a)下面是最基本的LAMP环境的搭建,过程略。
d)修改Mantis和 Apache的配置文件(这部分转载并进行部分修改)
Mantis的设置是这样保存的:在config_defaults_inc.php中保存这Mantis的默认设置,用户自己的设置信息保存在 config_inc.php中,如果某个选项在config_inc.php中有设置,则系统使用config_inc.php中的设置,否则使用 config_defaults_inc.php的系统默认设置;config_inc.php.sample则是Mantis给出的一个用户设置文件例子。
所以我们需要修改config_inc.php文件中的设置,设置很简单,各个参数的意义可以参见 config_defaults_inc.php,这里对每个参数都有详细的解释,虽然是E文,不过应该都能看懂;Sample中给出的一些设置是一定需要修改的,比如MySQL数据库的连接参数,管理员的邮箱的;其他的要根据你的实际情况进行修改。
下面是我的一些自定义参数。
修改以下几行为 #数据库选项$g_db_username = "mantis";   $g_db_password = "你在建立用户时指定的密码";   $g_database_name = "mantis"; #增加以下几行   $g_path = "http://www.yourdomain.com/mantis/";   $g_icon_path = $g_path."images/";   $g_absolute_path = "/解压缩的目录/mantis/";   $g_use_iis = OFF; # 不使用IIS   $g_show_version = OFF; # 不在页面下部显示 Mantis的版本号   $g_show_project_menu_bar = ON;# 显示项目选择栏   $g_show_queries_count = OFF; # 在页脚不显示执行的查询次数   $g_default_new_account_access_level = DEVELOPER; # 默认用户级别   $g_use_jpgraph = ON; # 使用图形报表   $g_window_title = 'Mantis Bug 跟踪管理系统'; # 浏览器标题   $g_page_title = 'Mantis Bug 跟踪管理系统'; # 页面标题栏   $g_enable_email_notification = ON; # 开通邮件通知   $g_smtp_host = 'smtp.mail.net'; # SMTP 服务器   $g_smtp_username = 'mailuser'; # 邮箱登录用户名   $g_smtp_password = 'mailpwd'; # 邮箱登录密码   $g_use_phpMailer = ON; # 使用 PHPMailer 发送邮件 # PHPMailer 的存放路径$g_phpMailer_path = 'C:/PHP/includes/PHPMailer/'; #PHPMailer以SMTP方式发送Email,设置成1将以sendmail方式发送   $g_phpMailer_method = 2;    $g_short_date_format = 'Y-m-d'; # 短日期格式,Y 大写表示 4 位年   $g_normal_date_format ='Y-m-d H:i'; # 普通日期格式   $g_complete_date_format ='Y-m-d H:i:s'; # 完整日期格式   $g_administrator_email = 'geminisshao@viatech.com.cn';   $g_webmaster_email     = 'geminisshao@viatech.com.cn';   $g_from_email       = 'noreply@this.address.com';   $g_return_path_email   = 'noreply@this.address.com';  $g_default_language     ='chinese_simplified';# 默认语言为简体中文   #开启文件上传功能$g_allow_file_upload   = ON;$g_file_upload_method = 'FTP'; # 使用FTP上传附件和文档,除了FTP,你可以使用DATABASE,DISK方式来存储文件   $g_file_upload_ftp_server = 'localhost';   $g_file_upload_ftp_user = 'anonymous';   $g_file_upload_ftp_pass = '';   $g_absolute_path_default_upload_folder = '/home/ftp/';   $g_max_file_size     = '20000000';   $g_preview_attachments_inline_max_size= '200';

e)重新启动Apache服务
重新启动Apache服务后,访问http://localhost/mantis/将出现Mantis的登录页面。
f)安装 phpmailer
Mantis自带的phpmailer在发送邮件的时候可能会有点问题,对一些SMTP服务器支持不是很好,所以如果要安装测试过程中如果不能正确发送邮件,请下载新版的phpmailer代替自带程序尝试。

3.结束语
Mantis的安装到此结束,主要问题在于邮件服务的调试。 如果是使用linux,可以直接使用sendmail,或者是qmail,如果是在windows下安装,建议使用phpmailer的SMTP发信方式或者安装一个软件,可能在WINDOWS下通过SENDMAIL进行发送,可以到http://www.glob.com.au/sendmail/sendmail.zip下载Delphi开发的sendmail,还有原码。
使用向导
使用之前,先了解一下Mantis基本特性:l      个人可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件; l      支持多项目、多语言; l      权限设置灵活,不同角色有不同权限,每个项目可设为公开或私有状态,每个缺陷可设为公开或私有状态,每个缺陷可以在不同项目间移动; l      主页可发布项目相关新闻,方便信息传播; l      方便的缺陷关联功能,除重复缺陷外,每个缺陷都可以链接到其他相关缺陷; l      缺陷报告可打印或输出为CSV格式,0.18.0版:支持可定制的报表输出,可定制用户输入域; l      有各种缺陷趋势图和柱状图,为项目状态分析提供依据,如果不能满足要求,可以把数据输出到Excel中进一步分析; l      流程定制方便且符合标准,满足一般的缺陷跟踪。

Mantis的使用规则
Mantis是基于角色和项目模块为划分的BUG跟踪系统。根据我们的需求,
角色可以分为以下几种:

查看人员 < 报告人员 < 修改人员 < 开发人员 < 经理 < 管理员(角色权限依次递增,具体分配见附图)

主页公告模块
Bug附件管理模块
过滤模块
创建项目模块
项目文档管理模块
自定义字段模块
其它权限

新用户的帐号是由管理员添加的。但是密码需要用户激活才能使用。密码激活方式如下:

在首页点击“忘记密码”选项,输入管理员给定的帐号和email地址就可以收到激活邮件,通过邮件激活即可登录访问。
查看人员使用手册


查看人员的权限最低
1.      能查看BUG信息和打印
2.      查看问题注释
3.      查看和下载BUG附件
4.      查看和下载项目文档。
5.      搜索问题及过滤问题

适用对象:
希望能够通过查看项目内容,来了解项目进度,下载相关的项目文档,但不参考任何修改活动的人员。
报告人员使用手册

浏览bug信息时,可以问题提醒

最主要是的是能够及时报告问题

报告人员权限:
1.      查看/报告问题和打印
2.      问题提醒
3.      修改问题状态
4.      添加/删除/修改 问题注释
5.      上传/删除 BUG附件
6.      启动/取消 监视问题
7.      搜索问题及过滤问题

适用对象:
能够在第一时间描述问题出错信息,并能及时提交出问题时的确切证据的人员

如公司中的专职测试人员(QA专员)。

修改人员使用手册
修改人员除了拥有和报告人员基本的权限之外,还具有以下权限:

修改BUG问题和创建子项问题的权限

有权限添加该问题的子项问题

或者可以与其它BUG_ID建立依赖关系,方便查找问题


修改人员的权限
·      查看/报告/修改问题,添加子项问题和建立依赖关系和打印
·      问题提醒
·      修改问题状态
·      添加/删除/修改 问题注释
·      上传/删除 BUG附件
·      启动/取消 监视问题
·      搜索问题及过滤问题


适用对象:
1.      能够在第一时间描述问题的出错信息,并能及时提交出问题时的确切证据。
2.      并能管理相关的问题类型,熟悉所有问题之间的联系的管理人员。

如公司中的专职测试人员(QA专员)或者QA管理员

开发人员使用手册
开发人员除了拥有和修改人员所有的权限之外,还具有以下权限:
分派问题给指定用户;移动问题;删除问题;

移动问题

删除问题

开发人员的权限
·      查看/报告/修改问题,添加子项问题和建立依赖关系和打印
·      移动/删除/复制 问题
·      问题提醒
·      修改问题状态
·      添加/删除/修改 问题注释
·      上传/删除 BUG附件
·      启动/取消 监视问题
·      搜索问题及过滤问题

适用对象:
1.      能够在第一时间描述问题的出错信息,并能及时提交出问题时的确切证据。
2.      并能管理相关的问题类型,熟悉所有问题之间的联系的管理人员。
3.      直接涉及开发过程中的编程人员

如公司中的QA管理员,研发人员

加载中
0
梁吉超
梁吉超

你好.我公司现在装一个testdirector的bug系统.但是我觉得光安装它就会有很多问题,还有不更新.好像不是开源的.兼容性很差.我看到你这篇文章介绍的功能很全.并且我也看很多其它的bug系统.想听听你的意见.哪个系统比较好一些.我关于java,而这个是php的.会不会影响对这个系统的应用效率.

0
szf
szf

虽然你在挖坟,不过看你这么有诚意,我就说说我自己的体会

首先,有钱的话,用JIRA应该是最好的bug系统之一了,它的许可好像是非商业使用免费

另外,红老大(不是黑老大)介绍的Mantis确实不错,我们公司已经平稳运行3年多了,使用php编写并不影响它的使用效率,毕竟同时使用的人不会很多,而且页面简洁,资源消耗很小的,随便一台LAMP或WAMP都能运行。

java没错是运行效率比PHP高,但有些场合没必要在意这个,原因之一是我上面提到的并发量很小,又或者响应时间在0.5秒是可以容忍的,php处理一个请求需要0.1秒,而java处理一个请求需要0.01秒,这个10倍运行速度的差别对使用来说是感觉不出来的 --当然了,这只是个比方

所以结论是:放心用吧~~

0
foobra
foobra

bugzilla呢?好像也不错

返回顶部
顶部