Controle de Bugs – Parte 2: Bugzilla
No tópico anterior falamos sobre outra ferramenta para controle de bugs, MantisBT (link). Agora, nesse post será explicado sobre o Bugzilla.
Introdução:
Desenvolver softwares robustos requer todo o conhecimento dos desenvolvedores e o cumprimento dos prazos necessários para alcançar a conclusão do projeto. Claro, ainda, torna-se necessário todas as práticas de Engenharia de Software para agilizar e organizar o desenvolvimento do projeto. Senso assim, utilizar ferramentas que beneficiem a organização e controle de versões é de extrema importância. Todo software implementado possui bugs, defeitos e imperfeições nos códigos, de modo a causa algum dano ao produto desenvolvido podendo ser identificados pela equipe de desenvolvimento ou até mesmo pelo próprio usuário.
Bugzilla: O que é?
Bugzilla é uma ferramenta WEB, open source, responsável por gerenciar bugs reportados no projeto de desenvolvimento. Originalmente desenvolvido e usado pela Fundação Mozilla, o Bugzilla, pode ser utilizado em vários sistemas operacionais como Windows, Linux e Mac OS X
Possuiu as seguintes características:
- Estrutura otimizada do banco de dados para melhorar o desempenho e ser escalável
- Excellent segurança para proteger a confidencialidade
- Ferramenta avançada de query de modo a lembrar suas pesquisas
- Integração com email
- Edição dos perfis dos usuários e preferencias de email
- Permissões de sistema
- Possibilidade de instalação de extensões
Instalação:
Para instalar o Bugzilla antes de mais nada devemos chegar os requisitos mínimos:
- Um banco de dados compatível (MySQL, Oracle, PostgreSQL, SQLite)
- Perl 5
- Alguns módulos Perl
- Servidor WEB compatível (Apache)
- Servidor SMTP para envio de e-mails
Levando em consideração que está tudo configurado e o servidor atende aos requisitos mínimos iniciaremos o procedimento para a instalação do Bugzilla. Consideraremos a utilização do Apache como servidor WEB e MySQL para o banco de dados e o sistema operacional Linux Ubuntu Server. Caso seja necessário realizar a instalação dessas ferramentas as devidas informações poderão ser encontradas aqui.
Logo será necessário realizar o download do Bugzilla, para isso basta acessar a página oficial (link) e realizar o download da versão mais recente. No nosso caso, será a versão Bugzilla 4.4.6.
Após a realização do download será necessário descompassar o arquivo bugzilla-4.4.6.tar.gz para isso utilizaremos o seguinte comando via Terminal:
[sourcecode language=”bash” collapse=”false”]
tar -xvf bugzilla-4.4.6.tar.gz
[/sourcecode]
A partir da execucao do comando acima o arquivo seré descompactado, criando o diretório bugzilla-4.4.6. Paa facilitar vamos renomeá-lo para bugzilla utilizando o seguinte comando via Terminal:
[sourcecode language=”bash” collapse=”false”]
mv bugzilla-4.4.6 bugzilla
[/sourcecode]
Agora será necessário mover o diretório bugzilla para o diretório visível pelo Apache na WEB. Geralmente é o diretório /var/www/
Para isso será necessário executar o comando via Terminal, utilizando o modo sudo:
[sourcecode language=”bash” collapse=”false”]
sudo mv bugzilla /var/www/
[/sourcecode]
Agora será necessário executar uma série de comandos a fim de instalar de fato o Bugzilla. O processo de instalacao é baseado no script chamado checksetup.pl. Nesse caso devemos acessar o diretório do bugzilla localizado em /var/www/bugzilla. Para isso basta executarmos o seguinte comando via Terminal:
[sourcecode language=”bash” collapse=”false”]
cd /var/www/bugzilla/
[/sourcecode]
E agora executar o arquivo checksetup.pl com a checagem dos módulos Perl. Para isso será necessário entrar com o comando via Terminal, em modo sudo:
[sourcecode language=”bash” collapse=”false”]
sudo ./checksetup.pl –check-modules
[/sourcecode]
Logo após será informado que há módulos não instalados, para instalar basta executar o comando:
[sourcecode language=”bash” collapse=”false”]
sudo /usr/bin/perl install-module.pl –all
[/sourcecode]
Para a configuração do banco de dados será necessário rodar o script checksetup.pl de modo que o arquivo localconfig seja gerado. Para isso vamos executar o seguinte comando com permissão sudo via Terminal:
[sourcecode language=”bash” collapse=”false”]
sudo ./checksetup.pl
[/sourcecode]
Realizada essa etapa o arquivo localconfig será gerado e é nele que devemos incluir as configurações do bando de dados. Logo vamos abri-lo e editar os campos: webservergroup, db_driver, db_host, db_name, db_user, db_pass.
- Em webservergroup substituiremos a string apache por www-data, ficando assim: $webservergroup = ‘www-data’;
- Como, em nosso exemplo, estamos utilizando o banco de dados MySQL então o db_driver ficará assim: $db_driver = ‘mysql’;
- No db_host, como o banco de dados está instalado e executando no mesmo servidor o db_host ficará definido como localhost: $db_host = ‘localhost’;
- Será necessário fornecer o nome que será utilizado para a criação do banco, sendo assim, em db_name iremos deixar o padrão: $db_name = ‘bugs’;
- Para a conexão com o banco de dados MySQL será necessário fornecer o usuário, nesse caso substitua a string myUser pelo seu usuário: $db_user = ‘myUser’;
- Para a conexão com o banco de dados MySQL será necessário fornecer a senha do usuário, nesse caso substitua a string myPassword pela senha do seu usuário: $db_pass = ‘myPassword’;
Para realizar a edicao do arquivo localconfig você pode utilizar quanto o vi. Nesse caso os comandos necessários para utilizar o vi para edição podem ser encontrados (aqui).
Em seguida basta executar o script checksetup.pl novamente com permissão sudo via Terminal. Vale lembrar que nesse passo o Bugzilla será, de fato, instalado e por esse motivo serão solicitadas informações referentes ao usuário que serão utilizadas para realizar o login no Bugzilla, como:
- E-mail do usuário administrativo
- Nome do administrador
- Senha do administrador
[sourcecode language=”bash” collapse=”false”]
sudo ./checksetup.pl
[/sourcecode]
Caso ao acessar o Bugzilla pela url: http://localhost:80/bugzilla for exibido somente texto será necessário, portanto, incluir as seguintes linhas no arquivo httpd.conf localizado no diretório /etc/apache2/:
[sourcecode language=”bash” collapse=”false”]
<Directory /var/www/bugzilla>
AddHandler cgi-script .cgi
Options +ExecCGI
DirectoryIndex index.cgi index.html
AllowOverride Limit FileInfo Indexes Options
</Directory>
[/sourcecode]
Agora será preciso reiniciar o apache. Isso pode ser realizado mediante a execução do comando via Terminal:
[sourcecode language=”bash” collapse=”false”]
sudo /etc/init.d/apache2 restart
[/sourcecode]
Caso ainda o problema persista bastará limpar o cache do navegador e executar a url: http://localhost:80/bugzilla novamente.
Após esses passos o sistema estará instalado e pronto para usar como podemos conferir na imagem abaixo.
O usuário e a senha de acesso administrativo foram definidos na tela de configuração do checksetup.pl, sendo o login o e-mail cadastrado.
Conclusão:
Escolher uma ferramenta para controle de bugs é extremamente importante uma fez que a equipe poderá se organizar melhor para a correção desses bugs, ainda poderá obter logs dos bugs e informações gráficas da quantidade de bugs reportados e corrigidos. Essa é uma boa prática no desenvolvimento para reportar e corrigir bugs, sendo muito importante para o andamento do projeto e para a consistência do sistema.
Agora o Bugzilla está pronto para ser utilizado pela sua equipe de desenvolvimento.
Link para acesso do Bugzilla: http://localhost:80/bugzilla
Referências
Legal o review, falta agora o review do Redmine. Falo isso pq no meu projeto de estágio curricular estou implantando ele na empresa onde trabalho. Seria interessante para poder compartilhar a impressão obtida com a ferramenta!
Ola Ramon,
podemos fazer sim. Poderia comentar a respeito?
Sim, mês q vem vou ter o relatório do estágio pronto, posso encaminhar. Estou implantando Redmine + Git numa empresa com 5 pessoas, achei Redmine melhor q o Mantis, mais organizado, já o Bugzilla não testei. Redmine possui muita mais recursos e atende diversas demandas das empresas.
Pelo que entedemos, o Redmine é uma ferramenta de acompanhamento de projetos. Como é o sistema de controle de bugs dele?
Pelo que entendemos, o Redmine é uma ferramenta de acompanhamento de projetos. Como é o sistema de controle de bugs dele?