原文地址:
简单介绍
Mantis是一个轻量级的缺陷跟踪系统。作为一个免费的开源软件,我想这是很多小的团队首选的对象。在这里我为什么要介绍Mantis,而不去介绍Bugzilla呢?第一、Mantis相对Bugzilla有更好的操作界面。第二、安装和使用都相对简单一点。而对于一般的项目,Mantis作缺陷跟踪,已经绰绰有余。
Mantis是PHP/MySQL/Web-based缺陷跟踪系统,即使没有经验也可以在一天内配置完成。
Mantis使用起来比bugzilla方便,并且多语言支持,当然也有简体中文。Mozilla中文社区也用的是mantis来跟踪bug,。
配置也比bugzilla,要在linux上安装bugzilla,必须要县安装无数个php包,稍不注意就出错,而其是perl开发的
基本特点
1、 个人可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件;
2、 支持多项目、多语言;
3、 权限设置灵活,不同角色有不同权限,每个项目可设为公开或私有状态,每个缺陷可设为公开或私有状态,每个缺陷可以在不同项目间移动;
4、 主页可发布项目相关新闻,方便信息传播;
5、 方便的缺陷关联功能,除重复缺陷外,每个缺陷都可以链接到其他相关缺陷;
6、 缺陷报告可打印或输出为CSV格式,0.18.0版:支持可定制的报表输出,可定制用户输入域;
7、 有各种缺陷趋势图和柱状图,为项目状态分析提供依据,如果不能满足要求,可以把数据输出到Excel中进一步分析;
8、 流程定制不方便,但该流程可满足一般的缺陷跟踪。
安装前准备
Mantis 是一款用PHP编写的基于web的 MySQL bug 跟踪系统,用户可在下载。
最新Mantis版本需要的php、mysql数据库和需要一个web服务器:
* MySQL 3.23.2 and higher
* PHP 4.0.6 and higher
* a webserver
在linux和unix操作系统中web应用服务器主要是apache。所以在使用mantis前系统要安装apache、php和mysql
linux下面安装
A、首先到相关网站上下载mantis,例如: ,最新版本是
mantisbt-1.1.8.tar
B、解压到你指定的目录中。可以是任意路径,然后再apache配置文件http.conf里添加如下所示:
Alias /mantis/ "/var/www/mantis/"
SetHandler mantis
Order allow,deny
Allow from all
重新启动apache,就可以看到mantis页面了,但是还不能正常运行,因为还没有创建必须的数据库和表,以及修改相关的配置项
C、创建必须的数据库,
从你的web服务器商访问 ,这个页面所要做的工作是:
a 检查web服务器必要的参数
b 添加数据库参数,诸如数据库类型、数据库ip、数据库系统管理员、密码等等参数。
如果数据库参数填写正确,就是要创建数据库和表
这里需要提醒的是,一个缺省的管理员帐号被创建,账号和密码是:administrator / root。首次进入系统就是用该账号,一旦进入该系统后就要至少创建一个管理员帐号,创建成功后把缺省管理员账号删除。
c 编写一个基本的config_inc.php,修改相应得数据库,也可以拷贝config_inc.php.sample为config_inc.php。
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_use_jpgraph 和$g_use_phpMailer的设置请参照下面的内容):
下面是我的一些自定义参数。
修改以下几行为
$g_hostname = '192.168.1.241'; 数据库地址
$g_db_type = 'mysql'; 数据库类型
$g_database_name = 'bugtracker'; 数据库名
$g_db_username = 'root'; 数据库用户名
$g_db_password = ; 数据库密码
$g_default_language = 'chinese_simplified'; 默认语言为简体中文
下面的是我没有配置的:
$g_path = "";
$g_icon_path = $g_path."images/";
$g_absolute_path = "/解压缩的目录/mantis/";
$g_use_iis = OFF; # 不使用IIS
$g_show_version = OFF; # 不在页面下部显示 Mantis的版本号
$g_default_language ="chinese_simplified";#
$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 发送邮件
$g_phpMailer_path = "C:/PHP/includes/PHPMailer/"; # PHPMailer 的存放路径
$g_phpMailer_method = 2; #PHPMailer以SMTP方式发送Email,设置成1将以sendmail方式发送
$g_file_upload_ftp_server = "ftp.yourftp.com"; # 上传文件 FTP
$g_file_upload_ftp_user = "ftpuser"; # FTP 登录用户名
$g_file_upload_ftp_pass = "ftppwd"; # FTP 登录密码
$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"; # 完整日期格式
修改Apache的配置文件,Apache的配置文件位于Apache安装目录的conf目录中,文件名为httpd.conf。
增加以下几行(供参考):
Alias /mantis/ "/解压缩目录/mantis/" #我的设置是Alias /mantis/ "/c:/mantis/"
Options Indexes MultiViews Includes FollowSymLinks +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
1、 你可以进入到admin/check.php 页面来检查是否设置正确。
2、 这样就可以进入系统进行添加项目了,整个就ok了。安装mantis很简单,数据库自动生成,系统配置也很容易。
5、图形报表的设置
默认情况下,Mantis的图形报表是关闭的,需要安装JPGraph模块并设置$g_use_jpgraph为ON才能打开图形报表;
1)下载JPGraph:从下载JPGraph的安装文件,目前最高版本是1.14;
2)将下载下来的jpgraph-1.14.tar.gz解压缩到C:\PHP\includes目录下;
3)打开config_inc.php文件,修改$g_jpgraph_path为JPGraph的src目录,$g_use_jpgraph为ON;
4)修改Windows目录下的PHP.ini文件,将“;extension=php_gd2.dll”和“;extension=php_iconv.dll”两行前面的分号删除;另外如果extension_dir项不正确,请把extension_dir改为正确的值(应该是extension_dir = "./extensions/",我这里不知道为什么是extension_dir = "./",大概就是因为使用懒人安装方法的缘故吧);
5)将C:\PHP\dlls下面的iconv.dll复制到Windows\System32目录下,以上两个步骤使PHP自动载入php_gd2和php_iconv.dll模块,这两个模块是JPGraph在显示图表和进行汉字编码转换是所必须的;
6)修改JPGraph的src目录下的jpgraph.php;将CACHE_DIR和TTF_DIR分别定义为Windows下的Temp目录和Fonts目录,如下所示
DEFINE("CACHE_DIR","E:/WinTemp/Temp/jpgraph_cache"); DEFINE("TTF_DIR","C:/WinNT/Fonts/");
7)现在再打开Mantis的统计页面,可以看到多了分别按状态等进行统计的图形报表,包括柱图、饼图和线图;
8)不过如果你的界面语言是用简体中文或者繁体中文,那么你会看到图形中的汉字都是乱码,这是因为Mantis对于JPGraph的编码设置不正确造成的,JPGraph会自动将汉字转换为UTF-8编码,但是需要在调用JPGraph的时候对标题等SetFont,Mantis没有做这个操作,因此汉字显示出来都是乱码,解决方法是在Mantis\core\graph_api.php中增加对图形标题等设置字体的代码;
对于柱图和线图,要设置图形标题和x、y轴标题、节点标题:
//Set the title and axis font if the default_language is set to chinese if (config_get(’default_language’) == ’chinese_simplified’){ $graph->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->xaxis->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->yaxis->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->xaxis->SetFont(FF_SIMSUN,FS_NORMAL); $graph->yaxis->SetFont(FF_SIMSUN,FS_NORMAL); } else if (config_get(’default_language’) == ’chinese_traditional’){ $graph->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->yaxis->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->xaxis->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->xaxis->SetFont(FF_CHINESE,FS_NORMAL); $graph->yaxis->SetFont(FF_CHINESE,FS_NORMAL); };
对于饼图,要设置图形标题和图例名称:
//Set the title and legend font if the default_language is set to chinese if (config_get(’default_language’) == ’chinese_simplified’){ $graph->title->SetFont(FF_SIMSUN,FS_NORMAL); $graph->legend->SetFont(FF_SIMSUN,FS_NORMAL); } else if (config_get(’default_language’) == ’chinese_traditional’){ $graph->title->SetFont(FF_CHINESE,FS_NORMAL); $graph->legend->SetFont(FF_CHINESE,FS_NORMAL); };
大家可以找到位置自己修改,简单的说就是在graph_api.php中每个“$graph->title->Set(…”后面根据当前的图表是柱图、线图还是饼图分别加上上面两段;
9)现在你的图形报表应该就可以显示中文了。
6、Mantis的使用流程
1、在 Mantis中的 问题状态一共有以下几种
10:new,20:feedback,30:acknowledged,40:confirmed,50:assigned,80:resolved,90:closed
10:新建,20:反馈,30:公认,40:已确认,50:已分派,80:已解决,90:已关闭
2、问题完成度有以下几种:
10:open,20:fixed,30:reopened,40:unable to reproduce,50:not fixable,60:duplicate,
70:no change required,80:suspended,90:won\"t fix
10:未处理,20:已修正,30:重新打开,40:无法重现,50:无法修复,60:重复问题,70:不是问题,
80:暂停,90:不做修改
3、可以在管理里面看到默认流程下的各种状态和完成度,一些基本的应该是这样吧:
角色有以下几种
报告人 reporter
修改人 updater
测试人 tester
审核人
流程1
报告-审核-修改-测试-关闭
一个问题来了以后,经过审核人审核,提出修改意见,然后指派给修改人员,
修改人员修改完成后指派测试人员,或者由审核人指派测试人员,测试完毕后关闭
如果有问题仍然存在,问题状态为反馈,完成度为 ,重新打开
过程 问题状态 完成度
新报告问题 新建 未修改
审核后 已确认,已分派 未修改
修改后 已解决 已修正,无法重现,重复问题,不是问题,暂停,不修改
测试后 已关闭,反馈 已修正,无法重现,重复问题,不是问题,暂停,不修改,重新打开
流程2
报告-审核-测试-关闭
当审核认为不需要修改的时候可以直接将问题分派给测试人员,由测试人员测试,
如果有问题仍然存在,问题状态为反馈,完成度为 ,重新打开
过程 问题状态 完成度
新报告问题 新建 未修改
审核后 已确认,已分派 未修改,无法重现,重复问题,不是问题,暂停,不修改
测试后 已关闭,反馈 已修正,无法重现,重复问题,不是问题,暂停,不修改 ,重新打开
但是其中的公认是什么意思呢?在什么时候使用?
如果没有到最后也没有什么好的理解,我准备把这个状态更改为 “设计”
也就是说,一个问题需要重新更改设计,这个动作修改人是不能完成的,也就是所要增加一个角色“设计人员”
流程3
报告-审核-设计-审核-修改-测试-关闭
过程 问题状态 完成度
新报告问题 新建 未修改
审核后 设计,已分派 未修改
设计后 已确认 未修改
审核后 已确认,已分派 未修改
修改后 已解决 已修正
测试后 已关闭,反馈 已修正,重新打开
3) 配置文件上传
主要配置项:
$g_allow_file_upload = ON;
$g_file_upload_method = DISK;
注:
a) 在Mantis目录下新建目录如 upload ,再在mantis建立的项目中把文件上传路径设置为“upload”(通过Web方式)。这样上传的文件就会存放在upload目录中。
b) 上传文件的大小受到 Mantis 和 PHP 的双重限制,需要修改:
/webapps/mantis/config_inc.php 中 $g_max_file_size = 100000000; # 100 MB
/usr/local/lib/php.ini中upload_max_filesize = 100M 和 post_max_size = 100M
c) 给用于存储上传文件的目录增加可写权限。
4) 配置语言
主要配置项:
$g_default_language = "auto";
$g_fallback_language = "chinese_simplified";
注:Mantis的语言包在/webapps/mantis/lang/中。Mantis的汉化不够彻底,部分配置项在中文语言包中没有。可以对比中、英文语言包,将没有的部分补齐。
8、如何使用问题跟踪系统
问题从出现,被报告,到经过分析,加以解决,有一个生命期。一个问题跟踪系统,就是用来跟踪每一个问题的生命期,可以让每个关心这些问题的人方便的检索每个问题的状态。问题跟踪系统还纪录了和问题相关的所有信息,包括问题的描述,围绕问题的相关讨论,测试用例,以及解决方法。
首先是报告问题。报告问题需要给出足够的信息,让开发者能够明白你的问题。报告里应该包括你的使用环境,包括使用的什么操作系统,有问题的软件是什么版本,重现问题的详细步骤。对于Firefox的问题,如果有可能和插件和扩展有关,还应该给出具体安装了什么插件和扩展。
一个问题刚报到跟踪系统中时,处于一个未确认的状态。说白了就是问题报了还没人看是怎么回事。在不同的跟踪系统中,这个状态的名字可能不同,在 bugzilla上叫UNCONFIRMED,在bugs.moz.cn上叫“新建”,但实质都一样。这时候需要有开发或者测试人员来确认这个问题。
确认的过程就是通过报告者提供的重现方式来复现这个问题,如果复现问题过程中遇到困难,需要在问题跟踪系统上和报告者交流,获得更准确的信息。
确认这个问题可能得到这样几个常见的结果。
1。这个问题确实存在,而且没有人报告过,那么就可以把这个问题的状态转换成已确认(New),接受这个报告。
2。这个问题存在,但是已经有人报告过,可以把这个问题标志成和某个已经存在的问题重复(duplicate)
3。属于用户的使用的问题,不是需要跟踪的问题,可以标志成非法问题,并关闭。
4。问题已经不存在或者无法重现,标志成无法重现,并关闭。
5。问题报告人提供的信息不够,仍然处于未确认状态,和报告人联系,以提供更多信息,继续确认。
如果问题被确认是新问题了,就可以指派给相关的人来处理。当然,如果你觉得你可以处理这个问题,也可以直接指派给自己。被指派处理这个问题的人可以在问题处理系统上提交自己的解决方案,让关注这个问题的人都可以看到,并可以提出意见,讨论这个方案。所有这些过程都在问题跟踪系统中进行,哪怕有人从中间加入问题的讨论也可以了解讨论的过程,避免重复的讨论或者犯犯过的错误。
如果指派的人认为这个问题是重复问题或者不是问题,也可以把它标注成上面提到过的几个状态。
如果问题最终得到了解决,就可以把问题标注成已解决(fixed)状态。最后相关的人来确认问题是否真的解决,如果没有,就需要将这个问题重新打开,如果确认已经解决,就可以关闭这个问题了。
这差不多就是一个通常的问题在问题跟踪系统中的生命期了。理解了这个生命期,也就能够熟练使用问题跟踪系统了。
阅读(498) | 评论(0) | 转发(0) |