sexta-feira, 29 de agosto de 2014

Ferramentas de Rastreamento de Bugs: Bugzilla x Mantis



 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: