• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux系统下安装Bugzilla来追踪程序开发中的bug
    POST TIME:2021-10-20 10:06

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

    上一篇:VMware安装RedHat Linux系统时出现该光盘无法被挂载错误怎么办?
    下一篇:在Linux系统上安装配置DNS服务器的教程
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信