Grupo 3.1.2: Cassiano, Camila, José Carlos, Mário e Marcelo.
Teste de Software
Ferramentas
de Rastreamento de Bugs: Bugzilla X Mantis
1.
Introdução
Neste
artigo vamos analisar as duas ferramentas de rastreamento de bugs acima,
comparando suas funcionalidades, implantação e manutenção. Todos
os projetos de desenvolvimento de software precisam de um acompanhamento de
bugs (ou acompanhamento de problemas, ou rastreamento de defeitos) do sistema.
Existem
diversos sistemas de rastreamento de bugs gratuitos, que você pode experimentar
e escolher com base em seu gosto e necessidade. Estas duas ferramentas são open
source e são apenas algumas, dentre várias, ferramentas que podem ser escolhidas.
Após verificação em fóruns, as escolhemos como objeto de estudo, devido a sua
ampla utilização no mercado.
Cada
defeito(bug) encontrado por um caso de teste deve ser registrado num sistema de
armazenamento de defeitos, nomeado por um identificador único e inequívoco,
compondo uma base de dados sobre os defeitos encontrados em determinado produto
ou projeto.
Dessa
forma, um sistema de rastreamento de defeitos é um programa ou aplicação que
permite que a equipe de teste possa criar, armazenar, gerenciar, e analisar os
relatórios de defeitos. Esse sistema deve manter esses registros de forma que
seja possível a inserção, remoção e busca desses defeitos, facilitando a
organização das informações sobre o que foi encontrado e o que já foi
corrigido. Nesse sentido, a decisão de qual sistema de rastreamento de defeitos
utilizar é extremamente importante!
2. Ferramentas Analisadas e Critérios
de Avaliação
A
tabela abaixo apresenta as duas ferramentas e suas respectivas licenças,
linguagens e versões.
Ferramenta
|
Licença
|
Linguagem
|
Versão
|
Bugzilla
|
Mozilla
Public License
|
Perl
|
4.4.5
|
Mantis
|
GPL
|
PHP
|
1.2.17
|
Os
critérios de avaliação utilizados foram as funcionalidades de controle de mudança.
Ela apresenta algumas funcionalidades fundamentais e outras desejáveis que uma
ferramenta de controle de bugs deve ter.
3. Funcionalidades de Controle de
Mudança
·
Acompanhamento do ciclo de vida do pedido
de mudança
·
Rastreamento da mudança
·
Anexação de arquivos ao pedido
·
Campos personalizados
·
Configuração do fluxo de trabalho
·
Notificações para acompanhamento da
evolução do pedido
·
Relatórios personalizados
Acompanhamento do ciclo de vida do
pedido de mudança: A ferramenta precisa acompanhar todo o
ciclo de vida da mudança, desde o momento em que é proposta, passando pelas
avaliações sucessivas que recebe, registrar a aceitação (ou não) e a
implementação em uma determinada revisão.
Esta
é a funcionalidade básica e essencial para qualquer ferramenta de controle de
mudança. Todas as ferramentas escolhidas para esta análise possuem essa
funcionalidade.
Rastreamento da mudança: No
caso em que a mudança é implementada, é importante que haja uma amarração bidirecional
entre a mudança publicada no repositório e o pedido que a gerou: o pedido
aponta para a revisão em que foi implementada, e a revisão aponta para o pedido
que originou a mudança.
O
grau de facilidade e comodidade com que essa amarração é feita depende da
integração entre as ferramentas de controle de versão e de controle de mudança utilizadas.
Nesta
análise, o grau de integração com o controle de versão será medido usando o
Subversion como referência.
Anexação de arquivos ao pedido:
Durante a evolução do pedido, muitas vezes é necessário anexar algum arquivo
para facilitar o entendimento do problema ou complementar a especificação.
Campos personalizados:
As ferramentas vêm com alguns campos-padrão para o pedido, mas em alguns casos
é necessário acrescentar novos campos para atender uma necessidade específica
do projeto ou do processo de desenvolvimento.
Configuração do fluxo de trabalho:
Os estados pelos quais um pedido passa durante o seu ciclo de vida dependem do
processo de desenvolvimento utilizado. Existem alguns padrões comuns de fluxo
de trabalho. Por exemplo, em alguns projetos é necessário que um pedido fique
em um estado "resolvido" antes de ir para o estado
"fechado", para que possa ser verificado pela equipe de qualidade.
É
desejável que a ferramenta possibilite configurar o fluxo de trabalho de acordo
com a necessidade de cada projeto.
Notificações para acompanhamento da
evolução do pedido: É importante que a ferramenta mantenha
informado todos os envolvidos com um pedido de mudança sobre alterações
recebidas durante seu ciclo de vida. Geralmente, esta notificação é feita
através de mensagens de e-mail.
RSS (Really Simple Syndication):
Outra funcionalidade interessante que a ferramenta pode oferecer é um canal RSS
para acompanhamento da evolução do projeto e não só de um pedido específico.
Relatórios Personalizados:
Registrar toda a evolução dos pedidos de mudança não vale muito sem que se
possa fazer consultas sobre essas informações. As ferramentas costumam oferecer
relatórios específicos. Entretanto, às vezes é necessário criar e
disponibilizar determinado relatório para uma necessidade específica.
Este
critério de avaliação indica se a ferramenta fornece algum modo de criar e
disponibilizar relatórios personalizados, além dos relatórios que já vêm com a ferramenta.
O
quadro abaixo demonstra o comparativo de funcionalidades entre o Bugzilla e o
Mantis:
Ferramenta
|
Rastr. SVN
|
Anexação
Arquivos
|
Campos Person.
|
Config.
Workflow
|
Notif. Acomp.
|
RSS
|
Relat. Person.
|
Mantis
|
P
|
X
|
X
|
P
|
X
|
X
|
X
|
Bugzilla
|
P
|
X
|
X
|
X
|
X
|
X
|
X
|
Legenda:
X
|
Possui
tal funcionalidade
|
P
|
Atende
o requisito parcialmente ou com limitações
|
4. Bugzilla
Se
você não tem tempo para brincar com vários sistemas antes de descobrir qual
você gosta, basta ir com o Bugzilla. Você está procurando um sistema, mantido
ativamente, amplamente adaptado e estável? Não procure mais. Bugzilla é para
você. Ferramenta já a um certo tempo no mercado, desenvolvida em Perl e
funciona em várias bases de dados, incluindo MySQL e Oracle. Utilizada por
grandes nomes, incluindo a NASA, segundo o site da própria ferramenta.
Bugzilla
é usado por vários grandes projetos de código aberto para rastrear seus bugs.
Por exemplo, a equipe de desenvolvimento do Linux kernel, equipe de
desenvolvimento do Apache, a equipe de desenvolvimento do GNOME usa o Bugzilla.
A Red Hat também usa o Bugzilla para rastrear os problemas encontrados no
sistema de distribuição Red Hat.
Ele
é um sistema de rastreamento de bug baseado na web que permite que grupos ou
desenvolvedores individuais mantenham o controle de bugs em seus produtos. O
Bugzilla compete com muitos sistemas de rastreamento de bugs comerciais e
possui muitas características que faltam em seus concorrentes mais
dispendiosos. Ele é free e open source, apoiado pelo projeto Mozilla. O
bugzilla registra um ciclo de vida para cada alteração de código efetuada no
projeto, desde a sua solicitação até a sua conclusão. Com ele é possível
consultar em tempo real a quantidade de alterações do sistema, quais bugs estão
sendo corrigidos, quem está corrigindo determinado bug, etc.
Características
do Bugzilla:
·
Time Tracking (Ferramenta de controle do
tempo gasto nas diversas atividades executadas);
·
Relatórios flexíveis e gráficos.
Incluindo a capacidade de relatórios programados e recebê-lo via e-mail;
·
Adicionar campos e fluxos de trabalho
personalizados;
·
Otimizado para uso de produção, com
upgrades regulares e um processo de atualização seguro e simplificado;
·
Uma configuração de clique e uma
interface de usuário de manutenção e gerenciamento simplificados, juntamente com
backups do Amazon S3;
·
Opções de suporte comercial disponíveis;
·
Gratuito.
Imagem mostrando a página show-bug.
Informações Adicionais:
Página Inicial:
http://www.bugzilla.org
Desenvolvido por:
Mozilla Foundation
Versão estável: 4.4.5
Licença: Mozilla Public
License
5. Mantis Bug Tracking
Mantis
é um sistema de rastreamento de bug baseado na web que tem um conjunto de
funcionalidades avançadas, incluindo: controle de tempo, integração wiki,
notificações de e-mail, RSS, uma interface RESTful, integração com o Twitter, a
funcionalidade de roteiro e fluxos de trabalho predefinidos. Ele é um sistema
de acompanhamento de problemas desenvolvido em PHP, também é free, e funciona
em várias bases de dados, incluindo MySQL, MS SQL, PostgreSQL. Ambas as
ferramentas trabalham com diferentes bancos de dados, e parecem ser bem
robustas.
Mantis
é um sistema de rastreamento de bug completo que inclui controles de acesso
baseados em funções, suporte changelog, relatórios embutidos e muito mais. Um
cliente móvel também está disponível para usar o Mantis a partir do seu
dispositivo móvel.
Características Mantis:
·
Integração de código fonte;
·
Time Tracking;
·
Emissão gráfico de relacionamentos;
·
Os campos personalizados e fluxo de
trabalho;
·
Gratuito;
·
Otimizado para uso de produção, com upgrades
regulares e um processo de atualização seguro e simplificado;
·
Uma configuração de clique e uma
interface de usuário de manutenção e gerenciamento simplificados, juntamente
com backups do Amazon S3;
·
Opções de suporte comercial disponíveis;
·
Suporte a vários idiomas: Apresenta 68
idiomas;
·
Notificação de bug: Notifica
desenvolvedores e usuários sobre bugs relatados por e-mail, feeds RSS e
Twitter;
·
Integração de terceiros: Pode ser
integrado com ambientes de desenvolvimento e sistemas de controle de origem;
·
O acesso anônimo.
Imagem mostrando menu de configuração.
Instalação:
Você vai precisar:
1- Mantis
2- PHP
3- Servidor de banco de dados e um banco de dados.
4- Servidor Web que rode aplicações PHP ou WAMP ou LAMP
Informações Adicionais:
Página Inicial: http://www.mantisbt.org
Versão estável: 1.2.17
Licença: GPL
6. Conclusão
Todas
as ferramentas analisadas cumprem bem o seu papel de controle de mudança. A
escolha de uma ou outra se dará principalmente em relação aos diferenciais de
cada uma, a afinidade com a linguagem na qual a ferramenta é escrita ou
experiência anterior na utilização da ferramenta.
O Mantis foi o nosso escolhido por ter um melhor rastreamento de bugs e
mudanças nos códigos, permitir uma maior comunicação e interação entre os
desenvolvedores comprometidos com o projeto, permitir submeter e revisar
patches de forma mais prática e auxiliar no controle de qualidade do software
desenvolvido.
Fontes:
Nenhum comentário:
Postar um comentário