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