什么是Bugzilla?

来源:互联网 发布:女友公主病只淘宝 编辑:程序博客网 时间:2024/05/14 15:59
 

什么是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为复件需要复件bugbug号码而且将会加一个评论和bug号码到bug复件
的描述字段中去。
WORKSFORME
所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。
MOVED
这个bug是对于一个特殊的以Mozilla为基础的版本,而不影响mozilla.org的代码。这个bug被转移到影响Mozilla起源的
发布者的数据库中去。

QA
查找解决了问题的bugs并且确保已经采取了正确的手段。如果他们同意,这个bug被标记成VERIFIED.在产品出来之前bugs保持这个状态,之后被标记成CLOSEDBugs可以又回来而变成REOPENED。当改变其他人的bugs时要注意。通常最好是把你打算改变的做个标记,作为一个注释让bug的属主看到这个而自己去修改。例如,如果你认为一个bug是另一个的重复,在Additional Comments部分作个标注。如果你对一些人的bugs作了大量有用的注释,他们可能相信你的判断力从而要你去自己直接修改它们,但是除非他们愿意,你最好小心而且只作注释。

Bugzilla
是开放源代码的软件。它的源代码遵循Mozilla Public License.




如果你的机器已经有了MySQLMySQL-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 mysqlbugzilla可是从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/

原创粉丝点击