天天看點

什麼是Bugzilla

什麼是Bugzilla?

Bugzilla是一個臭蟲的資料庫。它讓使用者報告軟體的臭蟲而且把它們轉給合适的開發者。開發者能使用bugzilla保持一

個要做的事情的優先表,還有時間表和跟蹤相關性。

不是所有的"bugs"都是臭蟲。一些資料庫中的内容是作為增強的請求(RFE)。一個RFE是一個嚴重級别字段被設為

"enhancement"的"臭蟲".人們常說"bug",實際上意思是Bugzilla中的記錄,是以RFEs經常被稱作bug。根據客戶的加強

的請求來安排你的工作,Bugzilla會幫助你跟蹤它們而且允許其它人看到你會作些什麼.如果其它人看到了你的計劃,他

們就會避免重複你的工作而且可能幫助你解決或回報給你。

一個臭蟲的解剖

臭蟲和RFEs由許多字段組成。下面有一些介紹。

Component

Mozilla應用由許多不同的部分組成如網絡庫函數,java腳本和版面設計引擎。

Status Whiteboard

用來寫簡短的bug标注

Keyword

用來存儲一些關鍵字。

Target Milestone

由負責這個bug的人來設定

Dependency

如果一個bug在另一個bug修複之後才能被修複,就是相關性。

Attachment

增加一個附件上去會非常有用。測試事件、螢幕顯示和log記錄等可以有助于查明bug以及幫助開發者重新産生它。如果你

修複了bug,要附帶bug的更新檔程式上去。由于它讓他人很容易的找到和測試,是以這是較好的方法來跟蹤更新檔。

一個臭蟲的存活周期

對頭一次被舉報bug作些什麼由是誰報告的決定。新的Bugzilla帳戶由預設建立而并沒被證明-這就是指QA部門需要在把

它轉變成一個"新"bug之前找到并證明它的存在。如果你已經使用Bugzilla一段時間,相信你知道如何建立一個"新

"bug。當一個bug變成"新",開發者可能會研究這個bug,或者接受或者把它轉給别人。

如果這個BUG一周内一直沒被處理過。Bugzilla就會一直用email騷擾它的屬主,直到采取行動。無論何時一個bug被重新

指定或内容變化,它的狀态被設定回"new"。"new"狀态表示這個bug被重新加到一個特殊的開發者的工作中,并不是這個

bug被重新報告了。

那些有權限的人可以修改一個bug的所有的記錄(預設,你隻能修改一些)。每當你修改了一個bug,你最好加一些評論來解

釋你正在做些什麼和你為什麼做。每當你作了些事,如修改了内容、重新配置設定了bug、建立附件、增加了相關性和對某些

人作了備份,應作個标注。每當一些人修改了bug報告或加了一個評論,他們将會被加到CC清單中,bug報告中的改變會顯

示在要發給屬主、寫報告者和CC清單中的人的電子郵件中。

當一個bug被修複它會被标記上RESOLVED并且會有以下的決定。

FIXED

這個bug的修補已經被寫到資料庫中而且被測試過的人标記成FIXED

INVALID

描述的的問題不是一個bug,或不是Mozilla的bug.

WONTFIX

描述的的問題将永遠不會被修複。

LATER

描述的的問題将不會在産品的這個版本中解決

REMIND

描述的的問題可能不會在産品的這個版本中解決,但是也許也會。

DUPLICATE

描述的的問題是一個存在的bug的複件。标記bug為複件需要複件bug的bug号碼而且将會加一個評論和bug号碼到bug複件

的描述字段中去。

WORKSFORME

所有要重新産生這個bug的企圖是無效的。如果有更多的資訊出現,請重新配置設定這個bug,而現在隻把它歸檔。

MOVED

這個bug是對于一個特殊的以Mozilla為基礎的版本,而不影響mozilla.org的代碼。這個bug被轉移到影響Mozilla起源的

釋出者的資料庫中去。

QA查找解決了問題的bugs并且確定已經采取了正确的手段。如果他們同意,這個bug被标記成VERIFIED.在産品出來之前

bugs保持這個狀态,之後被标記成CLOSED。Bugs可以又回來而變成REOPENED。

當改變其他人的bugs時要注意。通常最好是把你打算改變的做個标記,作為一個注釋讓bug的屬主看到這個而自己去修

改。例如,如果你認為一個bug是另一個的重複,在Additional Comments部分作個标注。

如果你對一些人的bugs作了大量有用的注釋,他們可能相信你的判斷力進而要你去自己直接修改它們,但是除非他們願

意,你最好小心而且隻作注釋。

Bugzilla是開放源代碼的軟體。它的源代碼遵循Mozilla Public License.

如果你的機器已經有了MySQL和MySQL-related perl packages,那麼安裝起來是非常直接的.如果還沒有安裝這些基本的

軟體,那麼你需要做的第一件事情就是安裝它們.後面的事情就是建立一個web伺服器來運作cgi腳本.

如果想要bugzilla正确運作,你需要安裝以下軟體:

1.MySQL伺服器和用戶端軟體.

2.Perl(5.004或更高版本).

3.DBI perl 子產品.

4.Data::Dumper perl 子產品.

5.MySQL related perl module collection.

6.TimeDate perl module collection.

7.GD perl 子產品(1.18或更高版本)

8.Chart::Base perl 子產品(0.99或更高版本).

9.你選擇的web伺服器軟體

1.1下載下傳和建立MySQL資料庫.

大部分的linux版本預設都安裝有MySQL資料庫,這裡就不多講了.但是如果你需要mysqld接收大64K長的包,在啟動mysqld

時候加上"-O max_allowed_packet=1M".

1.2Perl(5.004或更高版本)

一樣,不多講了.

1.3DBI perl 子產品

DBI子產品是由其它資料庫相關Perl子產品使用的一般性Perl子產品.下載下傳了這個子產品以後.

1.解包到一個目錄中.

2.輸入以下指令:

perl Makefile.PL

make

make test

make install

對于絕大多數的perl子產品安裝都是這樣,如果沒有錯誤,那麼再往下.

1.4Data::Dumper perl 子產品

這個子產品為Perl提供資料結構一緻性.下載下傳後安裝過程同上.

1.5MySQL related perl module collection

安裝同上,注意隻選MySQL,不選mSQL.

1.6TimeDate perl module collection

安裝同上.

1.7GD perl 子產品(1.18或更高版本)

下載下傳GD子產品的同時别忘了下載下傳gd-1.8.3,解包後把GD包中的path_gd.pl拷備到gd-1.8.3目錄中,并執行perl

path_gd.pl,然後先在gd-1.8.3中編譯

#./configure --enable-jpeg --enable-freetype --enable-xpm

# make

# make install

然後再到GD的目錄中,象以上編譯Perl子產品一樣的過程.

1.8Chart::Base perl 子產品(0.99或更高版本)

下載下傳後DBI子產品編譯過程一樣.

1.9HTTP伺服器程式設定.

把bugzilla的程式解包到一個目錄中,在HTTP伺服器設定中,的srm.conf中加入ScriptAlias /bugzilla

"/home/httpd/bugzilla/",在access.conf中,此bugzilla目錄應該有Options ExecCGI選項.

2.安裝Bugzilla檔案

你應該把bugzilla檔案解包到一個可以讓預設web伺服器的屬主(可能是nobody)可以寫的目錄中.

3.建立MySQL資料庫

Bugzilla經常以使用者"bugs"登入,而且沒有密碼,MySQL的權限維護是一個複雜的事情,我把它們關掉了,如果你也想這麼

做,用下面的指令(其中的HOSTNAME用運作mysql的機器名來代替)

#mysql mysql

DELETE FROM host;

DELETE FROM user;

INSERT INTO host VALUES ('localhost','%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO host VALUES (HOSTNAME,'%','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO user VALUES

('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO user VALUES (HOSTNAME,'','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO user VALUES

(HOSTNAME,'root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

INSERT INTO user VALUES

('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

"Y"的數量和版本有關,3.22.23b的版本沒問題.運作完後,運作mysqladmin reload來重新裝載許可清單.下面你就可以運

行神奇的checksetup.pl腳本,非常感想Holger

Schurig 寫了這個腳本,它會合理的設定權限,并建立"data"目錄,第一次運作時它會建立一個叫"localconfig"的檔案,

你可能要檢查并修改它.重新運作這個腳本它就會真正的工作了.如果沒有成功建立資料庫,你可能要手工建立資料庫,并用

bugzilla目錄下面的mysql目錄下的腳本建立表了.(可能會有一點小問題,相信如果你懂一些SQL語句,會很容易解決的)

如果這些都成功了,那麼你就可以用web浏覽了.你要先注冊(最先的11個使用者為特殊使用者,有改參數,添加項目等功能),輸

入你的e-mail位址,它會調用sendmail(這就是說你需要裝有sendmail,要不然你就要改程式了)把你的密碼發到你的信箱

中,以後你就用這個密碼來登入.還有,這個for mysql的bugzilla可是從redhat下載下傳的,你如果要用,還要自己改一改它的

界面喲,關于mysql的安全你也要考慮喲,這裡我就不講了.

以上測試是在Turbolinux workstation 6.1上完成的。心動不如行動,下面是下載下傳的網址.

Appendix A. Required Software Download Links

All of these sites are current as of February 17, 1999. Hopefully

they'll stay current for a while.

MySQL: http://www.mysql.org

Perl: http://www.perl.org

CPAN: http://www.cpan.org

DBI Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/DBI/

Data::Dumper module:

ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Data/

MySQL related Perl modules:

ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Mysql/

TimeDate Perl module collection:

ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Date/

GD Perl module: ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/GD/

Chart::Base module:

ftp://ftp.cpan.org/pub/perl/CPAN/modules/by-module/Chart/

RedHat Bugzilla:ftp://people.redhat.com/dkl/