服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - Linux系统下安装Bugzilla来追踪程序开发中的bug

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

2019-07-03 15:2351CTO Linux

这篇文章主要介绍了Linux系统下安装Bugzilla来追踪程序开发中的Bug的方法,并介绍了一些简单的B/S端操作,示例基于CentOS环境,需要的朋友可以参考下

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 程序运行的平台。

延伸 · 阅读

精彩推荐
  • LinuxLinux常用的日志文件和常用命令

    Linux常用的日志文件和常用命令

    成功地管理任何系统的关键之一,是要知道系统中正在发生什么事。 Linux 中提供了异常日志,并且日志的细节是可配置的。Linux 日志都以明文形式存储,所...

    Linux教程网2632020-04-18
  • Linux手把手教您在 Linux 上使用 GPG 加解密文件

    手把手教您在 Linux 上使用 GPG 加解密文件

    在本教程中,我将告诉你如何用 GPG 加密和解密文件。这是一个简单的教程,你可以在你的 Linux 系统上尝试所有的练习。这将帮助你练习 GPG 命令,并在你...

    Linux中国6962021-12-15
  • Linux详解Linux系统下PXE服务器的部署过程

    详解Linux系统下PXE服务器的部署过程

    这篇文章主要介绍了Linux系统下PXE服务器的部署过程,包括对PXE的API架构作了一个基本的简介,需要的朋友可以参考下...

    运维之道9812019-07-04
  • LinuxLinux lnmp下无法使用mail发邮件的两种解决方法

    Linux lnmp下无法使用mail发邮件的两种解决方法

    在配置了lnmp环境后,出现了mail函数不能发送邮件的问题,其实有两种方法,一是使用sendmail组件,而是使用postfix。下面为大家一一介绍下 ...

    Linux之家4042019-09-17
  • Linux确保Linux系统安全的前提条件 漏洞防护

    确保Linux系统安全的前提条件 漏洞防护

    Linux 作为开放式的操作系统受到很多程序员的喜爱,很多高级程序员都喜欢编写Linux操作系统的相关软件。这使得Linux操作系统有着丰富的软件支持,还有无...

    Linux之家2642020-04-11
  • LinuxLinux上设置用户通过SFTP访问目录的权限的方法

    Linux上设置用户通过SFTP访问目录的权限的方法

    这篇文章主要介绍了Linux上设置用户通过SFTP访问目录的权限的方法,SFTP可以理解为使用SSH协议进行FTP传输的协议,因而同时要对OpenSSH进行相关设置,需要的朋...

    OSChina10022019-06-19
  • LinuxLinux中环境变量配置的步骤详解

    Linux中环境变量配置的步骤详解

    Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的...

    Myths7882022-02-10
  • Linuxlinux中rmdir命令使用详解(删除空目录)

    linux中rmdir命令使用详解(删除空目录)

    今天学习一下linux中命令: rmdir命令。rmdir是常用的命令,该命令的功能是删除空目录,一个目录被删除之前必须是空的 ...

    linux命令大全5372019-11-19