使用Bugzilla进行软件缺陷跟踪
 

2009-06-04 来源:网络

 

软件缺陷跟踪是我们在项目开发中的一个很重要的步骤,特别是在多个人合作的项目中。当项目出现Bug时,软件测试人员可以把他提交到缺陷跟踪系统,指定程序员修改进行修改或者由哪个程序员自己认领这个任务,同时可以跟踪这个Bug的状态等等。如果换一种看法,Bugzilla也可以用作任务管理,那么这里的 Bug就不单单指是缺陷,我们在项目进行中所产生的任何任务都可以使用这个系统进行分配和跟踪。

Bugzilla的安装算不上复杂,但是却足以使人人焦头烂额,究其原因,主要是它所依赖的东西太多了,即要有数据库服务器、HTTP服务器和邮件服务器,还需要perl和十多个perl模块。不过,只要像我这样耐心地一步一步来,最终还是可以解决问题。

第一步,当然是软件的下载了,下面的图片中给出的是下载地址,我选择的是2.20.5版,而不是最新的版本,为什么呢?当然是因为在下载页面看到 2.20版有一个汉化的模版了。使用我们的母语当然可以让我们在工作中更加得心应手。按照下面的地址,下载软件和汉化模版,当然,也别忘了下载一份文档。

软件:

文档:

汉化模版:

这里提供的bugzillaModules-2.20就不用下载了,都是基于Windows系统的,对我们的系统没有帮助。

软件下载完成后,先将bugzilla-2.20.5.tar.gz解压,bugzilla的运行需要Perl的支持,红旗桌面中自带的Perl是 5.8.5版,已经够用了。但是Bugzilla需要的Perl模块红旗系统不可能都具备,因此,第一步就是运行bugzilla中的 checksetup.pl脚本来测试一下我们还缺哪些模块,如下图:

该脚本运行完之后,发现红旗桌面缺少大约10个模块,当然,其中必需的只缺四个。如下图:

不过为了完美起见,我们还是连可选的包都一起装上。Perl模块有两种安装方式,一种方式的命令行如下:

perl -MCPAN -e ' install "模块名" '

这种方式将从CPAN的网站上面下载Perl模块并安装。但是,这种方法在我们这里是行不通的,因为红旗桌面上网的速度太慢了,而CPAN网站上面,Perl模块太多了,仅一个列表文件都超过2M,按红旗桌面下载的速度,一个月也不可能把这些模块都安装成功。

于是,我们只能选择另外一种安装方式:手动安装。手动安装需要我们把上面缺少的Perl模块都下载下来,我们可以到CPAN网站上面去搜索,这回下载很快。下载地址如下图:

下载下来的文件如下图:

对这些文件,我们先解压缩,再解开tar包,就可以一个一个进行安装了。Perl 模块手动安装的方法基本上都是一样的,依次运行下面三条命令即可:

perl Makefile.PL

make

make install

当然,还有一个可选的命令make test,它可以用来测试我们的模块是否编译成功。下图是我们安装AppConfig模块的截图:

其它模块安装的方法都是一样的。安装完成后,我们再次运行checksetup.pl脚本,看看是不是把所有的模块都安装成功了,如下图:

把结果一看,纳闷了,HTML::Parser不是有吗,怎么还提示我安装?再仔细一分析,原来是版本太低了。简单,下载一个最新的版本一安装就好了。下面的图片可以看到我们终于让所有的Perl模块都OK了:

下一步,再次运行checksetup.pl脚本,这次不带任何参数。运行后会在当前目录中生成一个localconfig文件,我们需要对该文件进行编辑,修改几个参数,主要就是访问数据库的用户名、密码什么的,还有一个webservergroup参数也很重要,我们等会还要修改 httpd.conf文件让httpd也以这个用户组运行才行,否则就没有权限访问这个目录,如下图:

到了这一步,我们就要开始配置数据库了,进入我们的数据库目录,运行

./bin/mysqld_safe --user=mysql &

启动数据库服务器,然后使用mysql客户端链接到服务器,执行以下命令:

Grant all privileges . bugs.* to bugs@localhost identified by 'bugs888':

这个命令的作用是在数据库中创建bugs用户,bugs数据库,并赋予bugs用户在bugs数据库上的所有权限。

然后,再次运行Bugzilla目录中的checksetup.pl脚本,理论上讲,这次应该在数据库中创建Schema了,然而,却出现如下错误:

很显然,这个错误就是说我们还要安装DBD::mysql模块,经过前面的介绍,安装模块本来应该是很简单的事了,但是这个DBD::mysql却折磨了我很久。总体来说,原因有两个:

1、该模块最新的版本为4.005,但是却只支持MySQL 4.×版的数据库。这一点不用怀疑了,经过我多次编译和安装已经证实了,只有指定MySQL 4的包含文件和库文件,该模块才能安装成功。

2、该模块需要DBI的最新版本,否则,就算安装成功后,运行的时候还是提示mysql.so模块运行错误,错误原因为符号DBIc_TRACE_LEVEL没有定义。

我解决问题的过程是这样的,下载MySQL 4.1版,我依然下载的是non rpm的版本,下载下来后直接解压缩,然后运行./.s/mysql_install_db脚本进行初时化。然后到/usr/mysql目录,运行./bin/mysqladmin shutdown -u root -p停止MySQL 5服务器的运行,再到/usr/mysql4目录,使用./bin/mysqld_safe --user=mysql &启动服务器。

下载最新的DBI模块,编译安装,这一点不再罗嗦。

下载DBD::mysql模块,编译安装,安装的过程中需要指定参数,如果不指定,则需要调用mysql_config脚本来进行检测,因此,我采取的方法是将/usr/mysql4/bin加入到PATH变量,如下图:

然后再依次运行

make

make install

就可以了,最后进入Bugzilla目录,再运行checksetup.pl脚本,终于安装成功。

下一步,就是让Bugzilla到httpd中运行了,首先,我们先把bugzilla转移到下面的目录

/var/www/bugzilla-2.20.5

然后,编辑/usr/httpd/conf/httpd.conf文件,如下图:

下一步,进入/usr/httpd目录,运行./bin/apachectl -k start 启动httpd服务器。

最后进行汉化工作,解压缩我们下载的汉化包,按照里面的说明操作即可。下面是访问Bugzilla的一个截图:


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织