Bugzilla,Gnats 與 Bugzero 比較評估
Websina / 摘譯One-eighth
本文簡要說明 Bugzero 缺陷(Bug)跟蹤系統與另外兩個流行的開源缺陷(Bug)跟蹤系統 Bugzilla 和 Gnats 在安裝、配置和定製方面的比照差異,目的是協助你明確在選擇缺陷(Bug)管理與跟蹤系統之前應該考慮的幾個問題。
安裝
Bugzero(基於 Java/J2EE 和資料庫,跨平台支援):
- 安裝 Java (jdk 1.3+)
- 安裝任意一種資料庫,包括 MySQL
- 安裝任意一種 J2EE 或 Servlet 引擎
- 安裝 Bugzero (啟動setup安裝嚮導,圖形介面)
任何一個有一些 Java/J2EE 經驗的人都可以用不到1小時或至多幾小時的時間將
Bugzero 搭建起來,如果你有現成的資料庫和 Servlet 引擎,安裝過程會更快。
Bugzilla(基於 Perl 和 MySQL 資料庫,Unix 平台/最新支援 Windows,開放原始碼)
- 安裝 MySQL 資料庫
- 安裝 Perl 5.6.1 或以上
- 安裝許多 Perl 模組(命令:perl -MCPAN -e 'install "<modulename>"')
1. AppConfig (1.52)
2. CGI (2.93)
3. Data::Dumper (any)
4. Date::Format (2.21)
5. DBI (1.38)
6. DBD::mysql (2.9003) if using MySQL
7. DBD::Pg (1.31) if using PostgreSQL
8. File::Spec (0.84)
9. File::Temp (any)
10. Template (2.08)
11. Text::Wrap (2001.0131)
12. Mail::Mailer (1.67)
13. MIME::Base64 (3.01)
14. MIME::Parser (5.406)
15. Storable (any)
可選 Perl 模組:
1. GD (1.20) (支援圖表)
2. Chart::Base (1.0) (支援圖表)
3. GD::Graph (any)(支援圖表)
4. GD::Text::Align (any)(支援圖表)
5. XML::Parser (any) (支援XML)
6. PatchReader (0.9.4)
7. Image::Magick (any) (圖形附件轉換成PNG格式)
- 安裝 Bugzilla( 命令:perl -MCPAN -e 'install "Bundle::Bugzilla"')
- 引用 Bugzilla 網站的描述:
Someone with much Bugzilla experience can get you up and running in less than a day, and your Bugzilla install can run untended for years. If your Bugzilla strategy is critical to your business workflow, hire somebody with reasonable UNIX or Perl skills to handle your process management and bug-tracking maintenance & customization.
如果你沒有
Bugzilla 實施經驗並且沒有足夠的 Perl 技能,安裝和配置
Bugzilla 將是一件非常耗時且費力的事情。
Gnats(基於 C 和檔案儲存體,只支援 Unix,開放原始碼)
- 安裝 gnatsd
- 配置 gnatsd
- 安裝一個 GUI 前端介面
- 安裝一些 Perl 模組
配置
Gnats 需要編輯幾個位於不同位置的設定檔。
定製
使用 Bugzilla,你很可能需要改寫一些原始碼才能實現諸如填加自訂欄位、改變欄位資料類型、定製下拉式功能表和配置使用者存取權限等等。而使用 Bugzero,只需輕鬆地點擊幾下滑鼠就可以完成這些任務。
應用案例1:
增加或刪除欄位以定製 Bug 報告表格
應用案例2:
修改一個欄位的選項,例如“優先順序”欄位的優先順序
解決方案:
Bugzero:使用基於 Web 的管理工具可以輕鬆完成,無需編程技能。
Bugzilla:沒有增加/刪除欄位的使用者介面,要增減一個欄位的選項,尤其是那些涉及 Bug 處理進展狀態的欄位,必須改寫相關代碼才能實現。顯然,定製 Bugzilla 需要一些編程技能,尤其是 Perl 的技能。
可用性
在 Bugzilla 中,如果需要將某個 Bug 重新分配給另一個負責人,你必須輸入這個新負責人的完整 Email 地址,而不是從一個負責人下拉式功能表中方便地選擇,這是否會令你感到困惑?你是否注意到,Bugzilla 中的附件沒有檔案名稱且檔案類型是不可見的,這使得當你想儲存這個檔案時,你必須先搞清楚它的副檔名是什嗎?
Bugzilla 只能單向排序,無法反向排序。如果你有多個預存的查詢定義,並且希望它們有不同的顯示列,那麼很遺憾,這無法實現,因為改變列是全域性的,所有查詢定義都會受到影響。
Bugzilla 存在這些可用性問題,雖然問題不大,但總會浪費你的時間。
流程
應用案例1:
開發人員應該沒有許可權將 Bug 標記為‘verified’或‘closed’,他們只能將其標記為‘resolved/fixed/analyzed’。只有測試人員才能‘closed/verified’一個 Bug。
應用案例2:
一個已知 Bug 的後繼狀態不應該是‘new’,只有狀態‘fixed’ 的後繼狀態才能是‘closed’;而狀態‘closed’ 的後繼狀態只能是‘reopened’ 等等。
解決方案:
Bugzero:使用基於 Web 的管理工具可以輕鬆實現這些狀態限制。
Bugzilla:必須修改 Perl 代碼才能實現以上要求。在大多數情況下,如果你需要流程式控制制,Bugzilla 滿足不了你的需求。
Gnats:不允許修改。
安全
應用案例1:
系統有很多使用者,他們來自許多公司或組織,而且每個公司都有幾個使用者,來自同一個公司的使用者應該能夠看到由他們提交的所有報告,但是不能看到有其他公司使用者提交的報告。
應用案例2:
你的產品有一些由使用者提交的 Bug,開發人員解決了它們。開發人員應該將解決方案或過程輸入 Bug 跟蹤系統,這些資訊僅供開發群組成員共用,並不希望被你的使用者看到。
解決方案:
Bugzero:案例1,你可以給公司使用者組賦予‘Group’許可權。案例2,你可以將普通使用者組設定為 “解決方案”欄位的被禁止訪問組,這樣“解決方案”欄位對普通使用者來說是不可見的。
Bugzilla:沒有解決方案。Bugzilla 常用於開源軟體項目的開發管理,其安全設定的靈活性是有限的。
Gnats:沒有解決方案。