2007年1月3日 星期三

Bug Tracking System

Bug-Tracking System或稱Defect Tracking System就是在系統的開發過程中,用來記錄並追蹤系統的bug。好處是可以在開發的過程,記錄下曾經遇到的問題,有計劃的管理及追蹤後續處理。更可以在日後變成一份開發記錄,許多重複或類似的問題都可以有處理參考,而且現在的系統多半也都會加入QA的概念,有人提出bug或是patch都可由另外的人去確認。不過我一直覺得這是防範搗蛋鬼的成份比較大。

功能強大的bug tracking system還可以延伸擴充和其他的scm系統配合使用,交叉分析。所以這類的tracking system不只商業產品眾多,連open souce或freeware都是百家爭嗚。

但可別以為這種系統只能做技術性的支援,有的人還可以拿來做績效的指標,也有人拿來當進度追蹤使用,在CRM上也可以有一定程度的幫助。

在這麼多的tracking system裡,以下紹介的是個人比較喜歡或是使用過的。因為個人因素,所以多半是偏向open source或是對open source大方可免費提供的產品

--Update2010/07/12:
要加強強調的是customized fields的能力會影響到導入團隊之後的實用性。如果你的團隊所需要的資訊無法加入issue system裡,勢必需要另外記錄管理,除了增加負擔外,也很容易讓issue management流於形式。最後的必然結果就是系統的記錄和現況不同步,光想就知道這有多痛苦。還可能會讓你覺不要這種系統日子還會好過點,但事實是沒有任何的記錄和追縱的issue只有上帝知道結果會怎麼樣。(好吧,也許你的績效也可以反應出這些結果)

BugZilla
BugZilla是很具知名,使用度也很高的bug tracking system。由名字就可猜想他跟mozilla大概有一定的關係。Bugzilla的前身是跟著mozilla.org所release出來的產品,也是Mozilla現在使用的bug tracking system。現行版本的Bugzilla是由perl所寫的,所以想要使用必需在有perl的環境下。perl是很流行的環境,在Unix base或Windows都很容易取得。所以在環境安裝上並不會有什麼問題,只是他需要一些perl的Module。雖然perl本身有CPAN的方便安裝,不過很多還是需要從CPAN download下來後再自行compile。在Unix base的系統上問題比較小,因為他們通常都會有compiler,但是在windows不一定都會有。Bugzilla後來為了在windows上的安裝方便也有做了一些加強,也用PPM取代CPAN,甚至還把需要的ppm module放在他們的測試站上。都做到這種程度了,實是在沒話說了。但很可惜的是在這些努力出現之前,我就改採用別的bug tracking system,單純只是因為個人對perl不熟悉,覺得這些module的upgrade有點麻煩。不過Bugzilla所提供的功能非常完整,該有的一個都不缺,穩定度也不錯,是很出色的bug tracking system。還有許許多的的Addon可配合使用。很多知名機構如Linux KernelApache Project、連NASA也都有使用

Mantis
Mantis是另一套open source的bug tracking system,比起Bugzilla算是比較年輕一點。使用php開發,可配合MySQL, MS SQL, and PostgreSQL。PHP和perl一樣都是可跨平台的script language,所以在各種平台都可使用。安裝上也較Bugzilla簡便,就像是一般的php web system一樣,設定一下database、系統相關資訊就可以了。功能也是相當完整,有簡單的圖表統計。這是我目前正在使用的系統,之所以轉換到Maintis來最大的因素還是因為設定簡便,php也比較熟悉,在系統的維護和升級上都比較有把握。還有一個小小優點就是畫面色彩比較豐富感覺比較漂亮一點,不過也有同事覺得色彩太多有點眼花。現在也是很多人用的系統,還有人做Bugzilla及GNAT轉移到Mantis的工具。也有MantisConnect可以和其他一些如Eclipse的工具整合。


Trac
trac是由python所開發的系統,雖說是bug tracking system,但也提供了與版本控制系統整合(雖然只支援subversion,不過subversion是我的最愛)及wiki的功能,算是一個麻雀雖小五臟俱全的整合性開發環境了。個人認為最大的吸引力是直接將ticket system與subversion整合,光這個功能就讓我口水直流,還可以當subversion的web界面,實是在非常理想的整合性開發環境。trac的操作介面很棒連老牌的RT也有trac的theme。trac也設計的系統整合的功能,能夠利用連結與其他的系統整合,又是一項讓我流口水的功能。所以有很多軟體專案也都使用trac,還有提供trac的hosting service,算是相當熱門。要不是目前在使用的系統己有許多資料,還真想再跳到trac來,這樣就把好幾個系統合成一個。不過還是有些地方希望能更好,像localization(雖然我個人覺得無所謂),還有summary的功能在計畫在Milestone 1.0才有。多重專案規劃在Milestone 2.0。目前多重專案可先利用apache的virtual host解決。

RT: Request Tracker
RT可算是最老牌的ticketing system之一了。RT也是使用Perl開發的系統,所以也具有很高的平台移植性。而且RT其實是比較general的ticket system,所以不只可用來當bug tracking system,還可以用來當其他事務的ticket system。功能完整,又深具歷史,使用者也很多,還有書本。

Scarab
Scarab是使用Java開發,使用了application server。在安裝上,只要有java環境就很方便安裝。他甚至還附了application sever在release裡面。只要啟動就直接可以用了(這當然所有的東西都在預設的設定下執行)。Scarab算是個很有彈性的issue tracking system,本身的模組化也做的很好,基本的tracking功能當然也都具備。也利用xml提供了Import/Export interface,可以從別的bug tracking system轉移資料。個人使用經驗不多,不知是否因為和一般的系統界面差異較大,
試用過之後還是不太會使用。

JIRA
JIRA基本上是商業軟體,不過他有提供Non-Profit & Open Source Licenses可以免費使用。
不過他的Non-Profit的定義有他自己的定義,連政府或學術單位都不算在裡面。對Open Source也可免費使用,照他的說法是他用許多好用的Open Source工具,他們的開發者也有很多Open Source的社群,所以要回饋給Open Source。至於跟商業版使用的有何差異就不清楚了。整體的感覺滿不錯,許多比較進階的功能也都具備。畢竟是商業軟體要夠好夠強大才能在許多的軟體裡維持競爭力。不過我也沒太多的使用經驗就是了。

track+
JIRA也是商業軟體,也是java base的開發系統。和JIRA類似的,他們讓教育單位,Open Source和慈善團體,可以免費使用他們的系統,不過人數只能在5人以內。在流程規劃上有他下過功夫的地方。

--Update 2010/07/12
Redmine在某種程度上來說,可以說是Trac的ROR版本。不過這當然是因為他和Trac一樣都是整合式的issue tracking system,但是他比Trac晚開始。從功能上來說我覺得比Trac還多還完整。這當然是個不令人意外的結果。如果是我來開始我當然也會把自己覺得Trac還未提供,但是又很需要(實用?)的功能通通加進去。不巧的是他加進去的功能又很合我的意,像及早支援multiple project,提供了time tracking的能力(但是還可以再更好,這樣我就不需要dotProject了),還有在issue tracking 提供更好的customized能力。這些都是我在使用Trac時覺得很需要的部分。特別是issue tracking的customized fields,那是我最滿意Mantis的部分。這部分做的好在我心中就能大大加分。因為每個團隊或是公司都會有自己的不同需求及使用習慣,要能夠方便的修改系統來配合人使用,這樣對團隊才能真正有幫助而不流於形式。所以我給redmine高評價。另外值得一提的是ruby本身也是使用redmine當他的issue tracking system,所redmine比較不會在短期內就荒廢無人後續,也己經在一定量的使用者使用下証明他的成熟度。目前我覺得最可惜的是還不能配合ruby1.9使用,ruby1.9相對於1.8有很大的改進,而從redmine的開發網站來看也不像是其短期內的目標,雖然己有人提出了patch,但是狀況不明,想使用ruby1.9的人可能要多等等了。

1 則留言:

豬頭筆記本 提到...

知道哪個bug tracker支援中文語言包嗎?