Linux系统下安装Bugzilla来追踪程序开发中的bug

Bugzilla是Mozilla公司提供的一款开源的免费Bug(错误或是缺陷)追踪系统,用来帮助你管理软件开发,建立完善的BUG跟踪体系。

Bugzilla是一个搜集缺陷的数据库。它让用户报告软件的缺陷从而把它们转给合适的开发者。开发者能使用bugzilla保持一个要做事情的优先表,还有时间表和跟踪相关性。不是所有的"bugs"都是软件缺陷。一些数据库中的内容是作为增强的请求(RFE)。一个RFE是一个严重级别字段被设为"enhancement"的"Bug".人们常说"bug",实际上意思是Bugzilla中的记录,所以RFEs经常被称作bug。

安装方法:

1. 下载Bugzilla源代码,这个不多说了。

2. 安装一些必要的软件包:

复制代码

代码如下:

yum install perl-CPAN

yum install mod_perl

yum install mod_perl-devel

yum install fcgi-perl

3. 安装必要的perl模块并检查安装

复制代码

代码如下:

cd bugzilla

perl install-module.pl –all

./checksetup.pl

当然,这其中还涉及到MySQL的用户名、密码之类的交互式输入配置。

4. 启动fastcgi wrapper程序,从这里(fastcgi-wrapper)下载,并运行即可。

5. 修改Nginx配置文件,使其可以正常处理perl CGI程序,我的一个修改如下:

复制代码

代码如下:

diff –git a/nginx.conf b/nginx.conf

index 8730c99..114d9d8 100644

— a/nginx.conf

+++ b/nginx.conf

@@ -83,10 +83,20 @@ http {

# config_apps_end

location / {

– if ( !-f $request_filename ) {

– proxy_pass http://jboss8080;

– break;

– }

+ root /usr/local/nginx/html;

+ index index.html index.htm index.cgi index.pl;

+ # if ( !-f $request_filename ) {

+ # proxy_pass http://jboss8080;

+ # break;

+ # }

+ }

+

+ location ~ .pl|cgi$ {

+ root html;

+ fastcgi_pass 127.0.0.1:8999;

+ fastcgi_index index.pl;

+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

+ include fastcgi_params;

}

error_page 500 502 503 504 /50x.html;

6. 最后,改好bugzilla目录的权限,并重启nginx即可,如:

复制代码

代码如下:

cd /usr/local/nginx/

chown nobody:nobody html -R

service nginx restart

由于缺少一些软件包,在安装过程中可能出现的问题和解决方案如下:

复制代码

代码如下:

[root@jay-centos html]# perl install-module.pl –all

Can’t locate CPAN.pm in @INC (@INC contains: /usr/local/nginx/html/lib/x86_64-linux-thread-multi /usr/local/nginx/html/lib /usr/local/nginx/html /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/nginx/html/Bugzilla/Install/CPAN.pm line 24. 

BEGIN failed–compilation aborted at /usr/local/nginx/html/Bugzilla/Install/CPAN.pm line 24. 

Compilation failed in require at install-module.pl line 21. 

BEGIN failed–compilation aborted at install-module.pl line 21. 

解决方案:

复制代码

代码如下:

yum install perl-CPAN

Can’t find mod_perl installed 

The error was: Can’t locate mod_perl2.pm in @INC (@INC contains: /usr/local/nginx/html/lib/x86_64-linux-thread-multi /usr/local/nginx/html/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 149. 

解决方案:

复制代码

代码如下:

yum install mod_perl

Can’t locate ModPerl/MM.pm in @INC (@INC contains: /usr/local/nginx/html/lib/x86_64-linux-thread-multi /usr/local/nginx/html/lib /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at Makefile.PL line 60. 

解决方案:

复制代码

代码如下:

yum install mod_perl-devel

复制代码

代码如下:

[root@jay-centos html]# ./fastcgi-wrapper

Can’t locate FCGI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./fastcgi-wrapper line 3. 

BEGIN failed–compilation aborted at ./fastcgi-wrapper line 3.

解决方案:

复制代码

代码如下:

yum install fcgi-perl

Bugzilla的基本使用方法:

1、 用户登录及设置流程:

打开浏览器, 进入 Bugzilla 主页面。

进入主页面后,点击【新建帐号】,进入注册页面。

在注册页面中输入 E-Mail 和 真实姓名(为了统一,这里我们都使用计算机名) ,然后,点击【 Create Account 】,随后,你将收到一封包含初始密码的 E-Mail 。

在收到 E-Mail 之后,点击【登录】,在帐号栏输入注册时使用的 E-Mail 地址,在密码栏输入邮件里通知的初始密码,然后,点击【 Login 】。

如忘记密码,在登陆页面中输入注册用户名,点击【 Submit Request 】 , 根据收到的邮件进行重新设置密码。

成功登录后,点击【 Edit 属性】 -> 【帐号设置】,进行密码修改。

点击【 Edit 属性】 -> 【邮件设置】,进行邮件通知设置。

点击【 Edit 属性】 -> 【权限】,进行权限查询。

2、 BUG 处理流程

• 测试人员或开发人员发现 bug 后,判断属于哪个模块的问题,填写 bug 报告后,系统会自动通过 Email 通知项目组长或直接通知开发者。

• 项目组长根据具体情况,重新 reassigned 分配给 bug 所属的开发者。

③ 开发者收到 Email 信息后,判断是否为自己的修改范围 .

1 ) 若不是 , 重新 reassigned 分配给项目组长或应该分配的开发者。

2 ) 若是,进行处理, resolved 并给出解决方法。(可创建补丁附件及补充说明)

④ 测试人员查询开发者已修改的 bug ,进行重新测试。(可创建 test case 附件)

1 ) 经验证无误后,修改状态为 VERIFIED 。待整个产品发布后,修改为 CLOSED 。

2 ) 还有问题, REOPENED ,状态重新变为“ New" ,并发邮件通知。

⑤ 如果这个 BUG 一周内一直没被处理过。 Bugzilla 就会一直用 email 骚扰它的属主,直到采取行 动。管理员可以设定最迟采取行动的期限,比如说 3 天,系统默认为 7 天。

3、 Bug 的提交过程

点击 【新建】 —〉选择发现的 bug 所在的产品名称。

在选择的产品 bug 提交页面中,选择或者输入 bug 信息。

◎模块:点“模块”两个字,可以查看关于这个产品的模块的详细信息。

◎平台、操作系统:可以根据发现 bug 的实际情况来选择,如果确定这个 bug 可以发生在所有的平台,选择 all 好了!

◎优先级: P1 至 P5 优先级逐渐减弱。

◎严重级: blocker 到 enhancement 严重程度降低。

Blocker: 阻碍了项目开发或者测试的继续进行。

Critical: 冲突,数据丢失和严重的内存泄漏等问题。

Major: 较大的功能缺陷。

Minor: 较小的功能缺陷。

Trivial: 拼写、对齐类的错误。

Enhancement: 需要改进的。

初始状态:开发人员的默认状态为“ unconfirmed”( 这个要由管理员设置,参见管理员操作指南 ) ,测试人员或者管理员此处为可选状态: unconfirmed 和 new.

Assigned to: 为空时默认为管理员指定的 owner, 也可手工制定。

CC: 可为多人,需用 " , " 隔开。

URL: bug 的定位(可选)。

注释:是对 bug 的概述(必须填写)。

Desription 中要详细说明下列情况:

1 ) 发现问题的步骤

2 ) 执行上述步骤后出现的情况

3 ) 期望应出现的正确结果

关键字:单击“关键字”三个字,会显示管理员已经设定的关键字,选择其一,便于以查询。注意:此处不可以随意添加,必须使用已经存在的关键字才好。另外,如果管理员没有创建关键字的话,那么此项缺省。

依赖:直接输入与当前 bug 有依赖关系的 bug 的编号。简单地说,比如说这里输入“ 3 ”,那么就是说当前提交的 bug 有依赖关系,不是由于 3 导致了当前 bug ,就是当前 bug 导致了 bug3 。

确认无误后,“ commit”!

提交之后,系统会提示: bug 已经提交。在此页面的下半部分,会再次显示刚才提交的 bug 的详细信息,你可以在这里进行修改,重新 commit, 也可以在此增加新的附件或是附加说明来进一步说明 bug 。

4、对于 Bug 的不同处理情况

4.1 Bug 的属主 (owner) 处理问题,提出解决意见及方法。

给出解决方法并填写附加说明( Additional Comments ),还可创建附件(如:更改提交单)。

填表提示:

FIXED 描述的问题已经修改, 该 bug 已经修复并检查过,源文件已经检入 CVS 库。

INVALID 描述的问题不是一个 bug ( 输入错误后,通过此项来取消 )

WONTFIX 描述的问题将永远不会被修复。

LATER 描述的问题将不会在产品的这个版本中解决。

DUPLICATE 描述的问题是一个存在的 bug 的复件。

WORKSFORME 所有要重新产生这个 bug 的企图是无效的。如果有更多的信息出现,请重新分配这个 bug ,而现在只把它归档。

4.2 项目组长或开发者重新指定 Bug 的属主。

① bug 不属于自己的范围,可置为 Assigned , 等待测试人员重新指定。

② bug 不属于自己的范围,但知道谁应该负责,在 Reassign bug to 的输入框中 直接输入被指定人的 Email 。

③操作结果:此时 bug 状态又变为 New ,此 bug 的 owner 变为被指定的人。

4.3 测试人员确认开发人员报告的 Bug 是否存在 .

查询状态为“ Unconfirmed" 的 Bug,

测试人员对开发人员提交的 Bug 进行确认,确认 Bug 存在。

具体操作:选中“ Confirm bug(change status to New)" 后,进行 commit.

操作结果:状态变为“ New".

4.4 测试人员验证已修改的 Bug

① 测试人员查询开发者已修改的 bug ,即 Status 为 "Resolved", Resolution 为 "Fixed". 进行重新测试。(可创建 test case 附件)

② 经验证无误后,修改 Resolution 为 VERIFIED 。待整个产品发布后,修改为 CLOSED 。

若测试之后发现还有问题, REOPENED ,状态重新变为“ New" ,并发邮件通知。

5、查询

登录 Bugzilla 缺陷跟踪系统后,点击查询,可以按照指定的一个或者多个查询条件进行查询。

摘要 (Summary) : 下拉列表框选择查询规约。在其后的输入框中输入包含的信息,此信息的指定与提交bug时的注释信息相一致。

产品 (Product) :选择所要查找的 bugs 所在的产品。

模块 (Component) :选择 bugs 所在的模块。

版本 (Version) :选择 bugs 版本。

注释 (Comments) :可在下拉列表框中选择将要输入的包含信息的规约,其后指定包含的信息。此信息的指定根据提交 bugs 时所填写的描述信息。

URL : 指定关于 bugs 所在的 URL 。

关键字 (Keywords) :指定包含或不包含该关键字的 bugs 。每个 bug 可以被指定关键字, bugs 报告人或者管理员可以编辑关键字。

状态 (Status) :选择 bugs 状态。

处理 (Resolution) :选择 bugs 处理的结果。

严重性 (Severity) :选择 bugs 的严重级别。

优先级 (Priority) :选择 bugs 的优先级别。

硬件 (Platform) :选择存在 bugs 程序运行的平台。

相关文章

linux常用进程通信方式包括管道(pipe)、有名管道(FIFO)、...
Linux性能观测工具按类别可分为系统级别和进程级别,系统级别...
本文详细介绍了curl命令基础和高级用法,包括跳过https的证书...
本文包含作者工作中常用到的一些命令,用于诊断网络、磁盘占满...
linux的平均负载表示运行态和就绪态及不可中断状态(正在io)的...
CPU上下文频繁切换会导致系统性能下降,切换分为进程切换、线...