2.1 gestão de defeitos - Projeto Pesquisa

Propaganda
UNIVERSIDADE REGIONAL DE BLUMENAU
CENTRO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO
FERRAMENTA DE SUPORTE A GESTÃO DE DEFEITOS
COM INTEGRAÇÃO ENTRE 0800NET E MANTIS
THIAGO FABIAN LENZI
BLUMENAU
2012
2012/1-18
THIAGO FABIAN LENZI
FERRAMENTA DE SUPORTE A GESTÃO DE DEFEITOS
COM INTEGRAÇÃO ENTRE 0800NET E MANTIS
Trabalho de Conclusão de Curso submetido à
Universidade Regional de Blumenau para a
obtenção dos créditos na disciplina Trabalho
de Conclusão de Curso II do curso de Sistemas
de Informação— Bacharelado.
Prof. Everaldo Artur Grahl, Mestre – Orientador
BLUMENAU
2012
2012/1-18
FERRAMENTA DE SUPORTE A GESTÃO DE DEFEITOS
COM INTEGRAÇÃO ENTRE 0800NET E MANTIS
Por
THIAGO FABIAN LENZI
Trabalho aprovado para obtenção dos créditos
na disciplina de Trabalho de Conclusão de
Curso II, pela banca examinadora formada
por:
Presidente:
______________________________________________________
Prof. Everaldo Artur Grahl, Mestre – Orientador, FURB
Membro:
______________________________________________________
Prof. Mauro Marcelo Mattos, Doutor – FURB
Membro:
______________________________________________________
Prof. Marcel Hugo, Mestre – FURB
Blumenau, 06 de julho de 2012.
RESUMO
O constante aumento no volume de projetos de software, bem como a sua complexidade
fazem com que aumentem também o número de defeitos gerados, tornando assim necessária a
gestão dos defeitos nos projetos. Para possibilitar aos gerentes de projetos da empresa Edusoft
Tecnologia uma melhor gestão dos defeitos e eliminar a duplicação do trabalho de registrar
defeitos em duas ferramentas, foi desenvolvida uma ferramenta que realiza a integração dos
defeitos registrados na ferramenta 0800net com a ferramenta Mantis e fornece consultas
gerenciais para a análise dos defeitos. O 0800net é uma ferramenta de gestão de serviços
voltada a incidentes, problemas, mudanças, dentre outras atividades organizacionais. O
Mantis por sua vez é uma ferramenta voltada à gestão de defeitos. Para o desenvolvimento da
ferramenta de integração foram utilizados os bancos de dados Sql Server e MySQL, e o
servidor Web Glassfish. A utilização desta ferramenta forneceu informações para avaliar a
produtividade da equipe, permitindo assim um melhor planejamento dos projetos e também
avaliar mudanças necessárias no projeto, bem como o impacto destas mudanças na qualidade
do produto.
Palavras-chave: Ferramenta Mantis. Ferramenta 0800net. Gestão de defeitos.
ABSTRACT
The constant increase in the volume of software projects and their complexity make also
increase the number of defects generated, making requiring the management of defects in the
projects. To enable project managers of the company Edusoft technology a better
management of defects and eliminate duplication of work to record defects in two
frameworks, was developed a framework that performs the integration of the defects recorded
in the framework with the framework 0800net Mantis provides consultation and management
for the analysis of defects. The 0800net is a service management framework focused on
incidents, problems, changes, among other organizational activities. Mantis on the other hand,
is a framework used for the management of failures. To develop the integration framework
was used the database Sql Server and MySQL, and Web server Glassfish. The use of this
framework has provided information to evaluate staff productivity, allowing this way, a better
planning of projects and also evaluate necessary changes in the project, as well as the impact
of these changes on product quality.
Keywords: Framework Mantis. Framework 0800net. Management of defects.
LISTA DE FIGURAS
Figura 1 – Diferença entre Erro, Defeito e Falha ..................................................................... 15
Figura 2 - Elementos chaves da gestão de defeitos .................................................................. 16
Figura 3- Áreas e processos atendidos pela ferramenta 0800net.............................................. 21
Figura 4 - Quadro de andamento dos projetos .......................................................................... 22
Figura 5 – Sistema atual da Edusoft ......................................................................................... 23
Figura 6 - Exemplo de modelo de texto de um defeito ............................................................ 26
Figura 7 – Fluxo após implementação da ferramenta............................................................... 27
Figura 8 - Diagrama de casos de uso da ferramenta. ................................................................ 29
Figura 9 – Diagrama de atividades do caso de uso integrar defeitos ....................................... 31
Figura 10 - Modelo Entidade Relacionamento da ferramenta .................................................. 33
Figura 11 – Modelo Entidade Relacionamento do 0800net ..................................................... 34
Figura 12 – Diagrama de entidade relacionamento do Mantis ................................................. 35
Figura 13 – Gatilho de integração de tarefas ............................................................................ 36
Figura 14 – Trecho do método de conversão de trâmites/tarefas em defeitos ......................... 37
Figura 15 – Classe de gerenciamento de tarefas....................................................................... 39
Figura 16 – Arquivo web.xml com a inclusão do listener........................................................ 40
Figura 17 – Tela de login da ferramenta de integração ............................................................ 41
Figura 18 – Falha de login na ferramenta ................................................................................. 41
Figura 19 – Tela inicial da ferramenta...................................................................................... 42
Figura 20 – Tela de informações da ferramenta ....................................................................... 42
Figura 21 – Tela de integração de dados da ferramenta ........................................................... 43
Figura 22 – Gravação da configuração de conexões com o 0800net e o Mantis ..................... 44
Figura 23 – Mensagem de criação dos gatilhos de integração ................................................. 44
Figura 24 – Mensagem de integração de defeitos realizada ..................................................... 45
Figura 25 – Consulta de defeitos .............................................................................................. 45
Figura 26 – Apresentação dos defeitos no Mantis .................................................................... 46
Figura 27 – Consulta de eficácia na detecção de defeitos ........................................................ 47
Figura 28 – Consulta de defeitos por criticidade x cliente x teste ............................................ 47
Figura 29 – Consulta de tempo de resposta na correção de defeitos ........................................ 48
Figura 30 – Consulta de quantidade de defeitos encontrados .................................................. 49
LISTA DE QUADROS
Quadro 1 - Comparativo entre as funcionalidades do Mantis, Trac e Bugzilla........................ 19
Quadro 2 - Requisitos funcionais ............................................................................................. 28
Quadro 3 - Requisitos não funcionais ...................................................................................... 28
Quadro 4 – Descrição do caso de uso Configurar Conexão com o 0800net e Mantis ............. 29
Quadro 5 – Descrição do caso de uso Criar gatilhos de integração ......................................... 30
Quadro 6 – Descrição do caso de uso Consultar eficácia na detecção de defeitos................... 32
Quadro 7 – Descrição do caso de uso Consultar quantidade de defeitos encontrados ............. 32
Quadro 8 – Descrição do caso de uso Consultar tempo de resposta na correção de defeitos. . 32
Quadro 9 - Fórmula para comparar defeitos encontrados pelo cliente e pelo teste .................. 46
Quadro 10 – Comparativo do processo com a integração ........................................................ 50
Quadro 11 – Dicionário de dados da entidade tb_conexao ...................................................... 55
Quadro 12 – Dicionário de dados da entidade tb_tramite0800 ................................................ 55
Quadro 13 – Dicionário de dados da entidade tb_tramite_falha .............................................. 56
Quadro 14 - Dicionário de dados da entidade tb_defeito ......................................................... 57
Quadro 15 - Dicionário de dados da entidade usuario.............................................................. 57
Quadro 16 - Dicionário de dados da entidade TipoVersao ...................................................... 57
Quadro 17 - Dicionário de dados da entidade Tarefa ............................................................... 58
Quadro 18 - Dicionário de dados da entidade Atividade.......................................................... 58
Quadro 19 - Dicionário de dados da entidade Mantis_project_table ....................................... 58
Quadro 20 - Dicionário de dados da entidade Mantis_user_table ............................................ 58
Quadro 21 - Dicionário de dados da entidade Mantis_bug_text_table .................................... 58
Quadro 22 - Dicionário de dados da entidade Mantis_bug_table ............................................ 59
LISTA DE SIGLAS
CMMI - Capability Maturity Model Integration
EDD – Eficácia na detecção de defeitos
JSF – Java Server Faces
SLA – Service Level Agreement
TI – Tecnologia da Informação
UML - Unified Modeling Language
SUMÁRIO
1 INTRODUÇÃO .................................................................................................................. 12
1.1 OBJETIVOS DO TRABALHO ........................................................................................ 13
1.2 ESTRUTURA DO TRABALHO ...................................................................................... 13
2 FUNDAMENTAÇÃO TEÓRICA .................................................................................... 14
2.1 GESTÃO DE DEFEITOS ................................................................................................. 14
2.2 MANTIS ............................................................................................................................ 18
2.3 0800NET ........................................................................................................................... 20
2.4 SISTEMA ATUAL ........................................................................................................... 21
2.5 TRABALHOS CORRELATOS ........................................................................................ 23
3 DESENVOLVIMENTO .................................................................................................... 25
3.1 LEVANTAMENTO DE INFORMAÇÕES ...................................................................... 25
3.2 ESPECIFICAÇÃO ............................................................................................................ 27
3.2.1 Requisitos funcionais ...................................................................................................... 27
3.2.2 Requisitos não funcionais ............................................................................................... 28
3.2.3 Diagrama de casos de uso ............................................................................................... 28
3.2.4 Modelos Entidade Relacionamento................................................................................. 32
3.3 IMPLEMENTAÇÃO ........................................................................................................ 35
3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 36
3.3.1.1 Codificação do sistema ................................................................................................. 36
3.3.2 Operacionalidade da implementação .............................................................................. 40
3.4 RESULTADOS E DISCUSSÃO ...................................................................................... 49
4 CONCLUSÕES .................................................................................................................. 52
4.1 EXTENSÕES .................................................................................................................... 52
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 54
APÊNDICE A – Descrição do dicionário de dados ............................................................. 55
12
1 INTRODUÇÃO
À medida que a capacidade de produção de software das empresas de tecnologia
aumenta, também aumenta a complexidade dos softwares desenvolvidos. Pelo fato de muitas
empresas não aplicarem as técnicas de engenharia de software de maneira eficaz, estas
possuem muitos problemas (SOMMERVILLE, 2003). Segundo Bartié (2002, p. 5), “com o
aumento da complexidade no desenvolvimento do software¸ aumentam proporcionalmente os
riscos de mau funcionamento dos mesmos, tornando-se mais difícil produzir softwares com
um nível de qualidade desejado”.
A implantação de um processo de garantia de qualidade de software torna-se então,
essencial para a sobrevivência e competitividade no mercado. No entanto, garantir a qualidade
de software não é uma tarefa simples, pois envolve todos os processos do desenvolvimento de
software (BARTIÉ, 2002). A implantação de um programa de melhoria de processos de
software é uma forma eficaz das empresas implantarem processo de garantia da qualidade,
pois estes descrevem uma estrutura de trabalho que possui os elementos necessários para
tornar o desenvolvimento de software mais eficiente e controlado (BARTIÉ, 2002).
No entanto, garantir qualidade não significa produzir um software livre de defeitos. A
produção de softwares com defeitos é um problema comum enfrentado por empresas de
software. O ideal seria que não houvessem defeitos nos softwares produzidos, mas enquanto
não se chega nesta situação, a prática de gerenciar os defeitos torna-se essencial (ELIZA;
LAGARES, 2011).
Neste contexto, uma boa gestão de defeitos aplicada no processo de desenvolvimento
de software pode ser o diferencial para se conseguir alcançar níveis satisfatórios de qualidade,
bem como evitar atrasos no planejamento do projeto.
Na empresa Edusoft Tecnologia, a gestão de defeitos (bugs) é realizada com a
utilização de uma ferramenta de gestão de serviços e negócios. Tendo a necessidade de tornar
mais efetivo e seguro o gerenciamento e controle destes defeitos, tomou-se a decisão de
utilizar uma ferramenta especializada para esta finalidade. Para que se possa realizar o
processo de gestão de defeitos e permitir aos clientes da empresa a abertura/acompanhamento
dos problemas encontrados, torna-se necessária a utilização em conjunto das ferramentas de
apoio ao usuário e gestão especializada de defeitos. Entretanto, utilizar as duas ferramentas,
sem integração entre elas, pode resultar em perda de dados além de trabalho desnecessário de
registro em cada ferramenta. Além do mais, não há garantias de que as informações estejam
13
registradas adequadamente nas duas ferramentas, podendo assim resultar em perda de dados e
consequentemente, relatórios gerenciais incorretos.
Tendo a necessidade de integrar as ferramentas especializadas em gestão de serviços e
negócios e gestão de defeitos, 0800net e Mantis respectivamente, pesquisou-se na internet
uma solução de integração pronta, que atendesse às necessidades da empresa, entretanto não
houve sucesso na busca. Observou-se então, a oportunidade de desenvolver uma ferramenta
personalizada que realize a integração entre o 0800net e o Mantis e atenda plenamente as
necessidades envolvidas.
1.1
OBJETIVOS DO TRABALHO
O objetivo deste trabalho é desenvolver uma ferramenta que auxilie o processo de
gestão de defeitos da Edusoft, realizando a integração de dados entre a ferramenta 0800net e a
ferramenta Mantis e fornecendo consultas como suporte à gestão de defeitos.
1.2
ESTRUTURA DO TRABALHO
No primeiro capítulo tem-se a introdução ao tema principal deste trabalho com a
apresentação dos objetivos.
No segundo capítulo apresenta-se a fundamentação teórica pesquisada sobre processos
de software, gestão de defeitos, Mantis, 0800net e trabalhos correlatos.
O terceiro capítulo apresenta o desenvolvimento da ferramenta iniciando-se com o
levantamento de informações, tendo na sequência a especificação, a implementação e os
resultados e discussões.
No quarto capítulo têm-se as conclusões deste trabalho bem como se apresentam
sugestões para trabalhos futuros.
14
2 FUNDAMENTAÇÃO TEÓRICA
Este capítulo aborda assuntos a serem apresentados nas seções a seguir que
fundamentam o desenvolvimento deste trabalho, tais como gestão de defeitos, ferramentas
utilizadas, sistema atual além de trabalhos correlatos.
2.1
GESTÃO DE DEFEITOS
O processo de desenvolvimento de software cria naturalmente produtos com defeitos,
sendo que na maior parte dos casos, estes defeitos são considerados um risco para a imagem
da empresa e do negócio. Portanto, descobrir os defeitos do(s) software(s) da empresa não é
suficiente, é essencial adotar o gerenciamento de defeitos no processo de teste para minimizar,
controlar, evidenciar os riscos para que os seus impactos não sejam grandes (ELIZA;
LAGARES, 2011).
Segundo Eliza e Lagares (2011, p. 68), “é importante que a gestão de defeitos seja
realizada, pois a mesma possibilita uma visão geral e conseqüentemente um melhor
acompanhamento do andamento do projeto, através da verificação dos bugs encontrados“.
Baseado neste contexto observa-se que a qualidade do sistema pode ser medida a partir
dos bugs encontrados (ELIZA; LAGARES, 2011).
Mas ainda mais primordial que a medição da qualidade, o grande objetivo é evitar
defeitos. A gestão de defeitos possui outros princípios como a utilização de ferramentas de
automação para registro e gestão dos defeitos integrando equipes de desenvolvimento e testes,
e a utilização das informações coletadas para otimização do trabalho de desenvolvedores e
testadores com o objetivo de melhorar continuamente os processos envolvidos (BASTOS,
2007).
Eliza e Lagares (2011, p.68) conceituam na Figura 1 a diferença entre erro, defeito e
falha:
a) erro, ou engano é a ação humana que produz resultados incorretos, como por
exemplo a implementação incorreta de um algoritmo;
15
b) defeito ou bug é a falha em um sistema que pode ocasionar uma anomalia ao tentar
desempenhar sua devida função. Por exemplo, omissão de informações e cálculos
incorretos;
c) falha é a ação inesperada do software, no caso a apresentação de resultados
diferentes do planejado.
Fonte: Eliza e Lagares (2011, p. 68).
Figura 1 – Diferença entre Erro, Defeito e Falha
Segundo Bastos (2007, p. 188) “os elementos chaves no processo de gestão de defeitos
são:”
a) prevenção de defeitos;
b) linha-de-base (baseline) a ser entregue;
c) identificação do defeito;
d) solução do defeito;
e) melhoria do processo;
f) relatórios de gestão.
A Figura 2 demonstra os elementos chaves no processo de gestão de defeitos citados
por Bastos (2007).
16
Fonte: Bastos (2007, p. 188).
Figura 2 - Elementos chaves da gestão de defeitos
A prevenção de defeitos consiste em identificar os riscos críticos e estimar os impactos
esperados minimizando-os. Para isso deve-se entender os riscos críticos a serem enfrentados
pelo projeto, identificando os defeitos que podem vir a colocar em risco o sucesso da
construção, entrega ou funcionamento do projeto. São exemplos, a falta ou inconsistência de
um requisito chave, a não familiarização com tipo de negócio pela equipe e problemas
existentes de integração de ambientes. Tendo a identificação dos principais riscos, deve-se
estimar os impactos. Para estimar o impacto de um defeito, deve-se avaliar com que
frequência o mesmo ocorre, o custo de sua correção e as consequências para o sistema e para
os negócios. Tendo estimado os impactos, deve-se então, adotar técnicas para a minimização
de impactos. O objetivo inicial é eliminar o risco. Quando não for possível eliminá-lo, deve-se
tentar reduzir a probabilidade do mesmo tornar-se um problema, ainda definindo por fim um
plano de contingência para o caso de uma ocorrência. Bastos (2007, p. 190), cita que a melhor
formar de realizar esta prevenção é adotando a prática de gerenciamento dos riscos. Algumas
técnicas como a garantia de qualidade, treinamentos e padronização de metodologias são
apropriadas (BASTOS, 2007).
O baseline é o elemento que define um ou mais marcos do projeto com o objetivo de
monitorar e controlar as alterações realizadas (ELIZA; LAGARES, 2011).
Segundo Bastos (2007, p. 192), “estes marcos definem a transferência de um estágio
para outro“.
A prevenção de defeitos consiste em três etapas, encontrar, relatar e reconhecer um
defeito. A descoberta de defeitos ocorre com o controle de qualidade, ou por usuários na
utilização do sistema em produção. Encontrado um defeito, o mesmo deve ser relatado com
rapidez, para evitar prejuízos às atividades da organização. É importante que o mesmo seja
relatado detalhadamente para facilitar o seu entendimento. Por fim, depois de detectado o
defeito, o desenvolvedor irá decidir se o mesmo é válido. Entretanto, um defeito deve ser
considerado como tal, se o sistema apresentar comportamento diferente ao descrito na
documentação (BASTOS, 2007).
17
A solução do defeito é um elemento que deve priorizar e programar a correção,
corrigir o defeito e relatar a solução. A priorização deverá determinar baseado em critérios
definidos a classificação do defeito. Sugere-se a classificação dos critérios:
a) crítico: tem sério impacto na operação do negócio da organização;
b) grave: produz um resultado incorreto ou pára de funcionar;
c) menor: alguma coisa está errada, mas não afeta diretamente os usuários. Erros na
documentação ou na interface gráfica são exemplos.
Definida a priorização da correção, o passo seguinte é programar a correção, alocando
recursos, de acordo com a agenda e a prioridade dos defeitos. A correção de defeitos envolve
a verificação, bem como a revisão de produtos envolvidos como listas de checagem
(checklists), dados de teste, programas e a execução da correção. Por fim, o defeito corrigido
deve ser relatado, informando quando a correção foi realizada, quando será liberada
(BASTOS, 2007).
Segundo Bastos (2007, p. 199), “a atividade de melhoria do processo deve abranger a
avaliação do processo que originou o defeito e a compreensão do que o causou e se
pertinentes, propostas de mudanças processuais capazes de minimizar ou eliminar a causa do
defeito.”
Segundo Eliza e Lagares (2011, p. 70), “Os relatórios de gestão fazem parte de todo o
processo de gerenciamento dos defeitos. O seu propósito é criar um registro completo dos
defeitos identificados durante o processo”.
Conforme Bastos (2007, p. 200), “Os defeitos são registrados para as seguintes
finalidades: corrigir o defeito, relatar a situação da aplicação, obter parâmetros para o
desenvolvimento de expectativas de defeitos nas aplicações futuras e melhorar o processo de
desenvolvimento de software.”
Para o registro dos defeitos, a utilização de uma ferramenta adequada é importante. A
ferramenta deve oferecer suporte para o registro de alguns itens (BASTOS, 2007):
a) número de identificação do defeito;
b) nome descritivo e tipo;
c) fonte do defeito;
d) severidade e prioridade;
e) situação atual;
18
f) data e hora para as mudanças de situação;
g) descrição detalhada;
h) componente ou programa no qual o defeito foi encontrado;
i) impressão de telas e registros (logs);
j) responsável.
A gestão de defeitos traz diversas vantagens ao processo de software no qual foi
implementada, pois permite a visualização de todo o escopo do projeto, o andamento do
processo de teste e a qualidade do sistema que está sendo testado. Outras vantagens também
são consideradas (ELIZA ; LAGARES, 2011):
a) maior visibilidade dos problemas;
b) evidências dos problemas encontrados;
c) controle e acompanhamento das implementações desenvolvidas;
d) organização de documentos e arquivos;
e) maior cooperação entre desenvolvedores e testadores;
f) coleta de dados para análise e melhorias;
g) compromisso com a remoção dos defeitos;
h) diminuição nos custos baseado em lições aprendidas fazendo com que não repitam
defeitos;
i) redução de impacto dos defeitos.
2.2
MANTIS
Mantis é uma ferramenta livre, de gerenciamento de defeitos de fácil customização e
utilização (ELIZA; LAGARES, 2011).
A ferramenta é desenvolvida na linguagem PHP e trabalha com os bancos de dados
MySQL, MS SQL e Postgre SQL e roda em servidor web. O Mantis pode ser instalado no
19
Windows, Linux, Mac OS, OS/2, e outros. Quase qualquer navegador web deve rodar o
Mantis (MANTISBT, 2011).
Segundo Eliza e Lagares (2011, p. 72), “as características mais relevantes do Mantis
são:”
a) um bug a ser corrigido, uma sugestão, ou até mesmo uma melhoria a ser efetuada
no software é definido como um caso (Issue);
b) notificações são customizáveis por e-mail;
c) suporta gerenciamento de múltiplos projetos;
d) permite customizações
como
permissões
de acesso,
categoria,
campos
personalizados específicos por projeto;
e) página principal personalizável por usuário;
f) geração de relatórios e históricos;
g) permite o auto-cadastramento de usuários, além de facilidade na recuperação de
senhas esquecidas;
h) permite exportação de dados para planilha;
i) permite autenticação via LDAP.
Comparado a outras ferramentas para gestão de defeitos, o Mantis demonstra um
resultado satisfatório conforme é indicado no Quadro 1.
Critérios
Anexo de arquivos
Campos customizados
Compatibilidade com vários sistemas
operacionais
Customização do workflow
Definição de prioridade das solicitações
Facilidade de instalação
Facilidade na usabilidade
Facilidade na utilização
Geração de relatórios
Monitoramento de alterações
Rastreamento de mudanças
Segurança de acesso
Mantis
Atende
Atende
Atende
Trac
Atende
Parcia
Atende
Bugzilla
Atende
Atende
Atende
Parcial
Atende
Atende
Atende
Atende
Atende
Atende
Não atende
Atende
Parcial
Atende
Parcial
Parcial
Atende
Atende
Atende
Atende
Atende
Atende
Atende
Não atende
Parcial
Atende
Atende
Atende
Parcial
Atende
Fonte: Eliza e Lagares (2011 p. 73).
Quadro 1 - Comparativo entre as funcionalidades do Mantis, Trac e Bugzilla
20
2.3
0800NET
O 0800net é um software de Gerenciamento de Serviços para Tecnologia da
informação (TI) que pode ser configurado para atender os processos e workflow, ajudando a
gerenciar todos os serviços: incidentes, problemas, mudanças, consultoria, projetos de
desenvolvimento de software e implementações, contratos de service desk, help desk,
agendamento de manutenção preventiva, manutenção predial, relacionamento com o RH entre
inúmeras outras atividades das organizações.
O 0800net é uma solução completa de Business Service Management – Gestão de
negócios e serviços, e com alta capacidade de customização, que pode ser aplicada em
qualquer área da empresa.
Sua aplicação é construída para rodar integralmente pelo conceito de web/browser,
possibilitando, assim, o acesso às informações de sua empresa em qualquer lugar do mundo,
tendo como foco a Gestão de Atendimento e Serviços.
O 0800net gerencia e controla, de forma centralizada, todos os tipos de problemas e
pedidos de suporte de usuários. Possibilita abertura de chamados pelo cliente ou por e-mail,
controle de Service Level Agreement (SLA), Inventário, Controle de Projetos, Gestão de
Prospect, extração de dados para gerenciamento de métricas/índices de controle, além de
muitas vantagens que aumentarão a produtividade da empresa (ELLEVO, 2010).
21
A Figura 3 apresenta a interface para o registro de atividades internas da empresa.
Fonte: Ellevo (2010).
Figura 3- Áreas e processos atendidos pela ferramenta 0800net
2.4
SISTEMA ATUAL
Atualmente na empresa Edusoft o controle de atividades (tarefas) é realizado na
ferramenta 0800net, inclusive a gestão dos defeitos. As tarefas são listadas a partir dos filtros
e visões, no qual os filtros retornam as tarefas de acordo com “o que se quer” e as visões
retornam as características das tarefas.
Os filtros normalmente são organizados por produto, versão de liberação, natureza da
tarefa e iterações da versão (sprint), Já as visões, normalmente estão configuradas para
retornar a natureza, estágio, prioridade, responsável, cliente, título da tarefa, data de abertura e
versão de liberação das tarefas retornadas pelo filtro. Contudo, tanto os filtros quanto as
visões podem ser configurados de acordo com a necessidade do usuário (gerente, líder de
projeto, desenvolvedor, testador e atendente).
22
O controle da evolução e também os defeitos encontrados no projeto, baseiam-se nas
tarefas vinculadas ao projeto e no estágio em que se encontram. A partir destas duas
informações, sabe-se qual a situação do projeto, inclusive dos defeitos encontrados.
Devido às mudanças naturais decorrentes da evolução dos projetos, e também pelo fato
de o 0800net permitir a visualização de apenas o estado atual dos projetos em forma de
listagem, as equipes de desenvolvimento e qualidade utilizam um quadro físico para melhor
visualização do projeto. O quadro é dividido em raias, sendo que cada raia é um estágio pelo
qual as tarefas passam, e para cada tarefa prevista no projeto, são colados dois papéis no
quadro contendo o número, título e tamanho da tarefa, sendo um para a atividade de
desenvolvimento e outro para os testes. A medida que as tarefas vão evoluindo, o responsável
muda a tarefa de raia. Uma vez por dia é realizada uma reunião para realizar o
acompanhamento do projeto e atualizar, o gráfico do projeto de acordo com o tamanho das
tarefas concluídas. O objetivo é tornar disponível a todos da equipe a situação atual, e a
evolução do projeto. Na Figura 4 é possível ver a evolução de um projeto em andamento.
Figura 4 - Quadro de andamento dos projetos
Atualmente não é possível medir os defeitos encontrados no projeto por diversas
perspectivas, pois o 0800net retorna apenas uma lista de tarefas, conforme os filtros
informados, sendo que pelo fato da empresa trabalhar com o conceito de tarefas e uma tarefa
possivelmente conter diversos defeitos, a informação extraída pelo relatório não é correta,
pois neste caso a quantificação de defeitos é realizada baseada na quantidade de tarefas e não
a quantidade real de defeitos. Com o Mantis, que começou-se a utilizar poucos meses antes do
23
início deste projeto é possível visualizar os defeitos por projeto, porém não com os filtros que
se deseja para a tomada de decisão gerencial.
Além da quantidade de defeitos encontrados, não é possível medir o tempo de resposta
da correção de defeitos por versão ou sprint ou a eficácia da equipe na detecção de defeitos.
Estas métricas serão mais bem descritas no capítulo 3.
A Figura 5 apresenta o sistema atual da Edusoft.
Figura 5 – Sistema atual da Edusoft
2.5
TRABALHOS CORRELATOS
Cita-se como trabalhos correlatos as monografias como a de Camila Labes e Douglas
de Oliveira Waltrick para conclusão de curso na Universidade Regional de Blumenau.
O trabalho de Labes (2010) consistiu no desenvolvimento de uma ferramenta de apoio
aos processos gerenciais na área de testes e planejamento e controle dos casos de testes de
uma empresa que tem o objetivo de obter o Capability Maturity Model Integration (CMMI)
nível 3. Pelo fato do nível 3 do CMMI exigir atividades obrigatórias direcionadas ao teste de
software, a verificação e a validação, o trabalho focou bastante na padronização dos processos
24
de testes. Para o desenvolvimento da ferramenta, foram utilizadas as tecnologias c#, asp.net e
SQL Server 2005.
O trabalho de Waltrick (2011) por sua vez, foi o desenvolvimento de uma integração
entre as ferramentas TestComplete e TestLink, com os objetivos de facilitar a execução dos
testes e manter histórico de execuções dos casos de testes nas duas ferramentas. A integração
consistia em configurar os ambientes de testes, executar no TestComplete os casos de testes
criados no TestLink, manter histórico dos casos de testes executados no TestComplete, gerar
automaticamente os resultados da automatização nos casos de teste mantidos no TestLink, e
utilizar para a automatização dos testes a massa de dados para mantida no TesLink, sem uma
carga explícita da mesma. As tecnologias utilizadas na construção do trabalho foram as
linguagens Pascal, DelphiScript, banco de dados MySQL 5.0, TestComplete 7.10.475.7 como
IDE de desenvolvimento e TestLink 1.9.2 como gerenciador dos casos de testes.
25
3 DESENVOLVIMENTO
Neste capítulo estão descritas as particularidades técnicas do sistema proposto tais
como a descrição do mesmo e a apresentação dos requisitos funcionais e não funcionais,
diagrama de casos de uso e suas descrições.
3.1
LEVANTAMENTO DE INFORMAÇÕES
Com base nos problemas citados na seção do sistema atual, desenvolveu-se uma
ferramenta que possibilita ao processo de gestão de defeitos da empresa, informações mais
detalhadas dos defeitos, permitindo aos gestores a tomada de decisões mais seguras. A partir
da utilização do Mantis com o 0800net, desenvolveu-se a integração de dados entre as duas
ferramentas.
A integração dos dados realizada pela ferramenta recupera os dados do 0800net e os
insere na tabela de trâmites da ferramenta de integração, na sequência converte um trâmite em
um ou mais defeitos e os insere na tabela de defeitos e, por fim, os insere na base de dados do
Mantis. Os dados recuperados do 0800net são o título da tarefa, a descrição da tarefa/ trâmite,
o projeto em que a tarefa está vinculada, a versão de liberação da tarefa, a data programada
para liberação da versão, a data de registro da tarefa/trâmite e o usuário que registrou a
tarefa/trâmite. A conversão de um trâmite em um ou mais defeitos insere na tabela de defeitos
o título do defeito, a descrição, a natureza, a criticidade, o projeto em que a tarefa do defeito
está vinculada, o usuário que registrou, a versão de liberação, a data de registro, a data
programada para liberação, o código do relatório, se existir e a identificação de defeito
encontrado internamente ou por cliente. Por fim, os defeitos são inseridos na base de dados do
Mantis. Sempre que necessário, também são criados usuários e projetos no Mantis.
Para que o processo de integração ocorra, é necessário que o 0800net esteja disponível
(on-line). A integração ocorre por ativação de gatilhos que detectam novas tarefas/trâmites
contendo defeitos, a partir da identificação do caractere especial § contido no trâmite. Estes
gatilhos inserem o trâmite na tabela de trâmites da ferramenta e a ferramenta realiza a
conversão do trâmite em um ou mais defeitos integrando-os com o Mantis conforme já
26
definido. Na ferramenta o usuário configura os endereços de banco de dados do 0800net e do
Mantis e cria os gatilhos.
A integração não necessita de operações manuais, sendo que quando a ferramenta
detecta registro de tarefas/trâmites no 0800net que possuam defeitos, o processo de integração
é disparado conforme a definição. Para que o processo seja disparado, é necessário que
existam defeitos a integrar, ou seja, a descrição da tarefa ou do trâmite registrado na tarefa
contenha defeitos registrados. A Figura 6 apresenta um modelo de texto preenchido na tarefa
ou no trâmite do 0800net contendo um defeito.
Figura 6 - Exemplo de modelo de texto de um defeito
A utilização do Mantis em si, possibilita aos gestores extrair relatórios da quantidade
de defeitos detectados e resolvidos por projeto. No entanto, como o objetivo é que os gestores
possam extrair outras informações importantes do projeto, a ferramenta disponibiliza três
consultas gerenciais personalizadas:
a) tempo de resposta correção de defeitos, ou seja, a média de tempo que os defeitos
filtrados levam para serem corrigidos, considerando sua abertura e sua conclusão;
b) quantidade de defeitos, ou seja, a soma dos defeitos encontrados conforme os
filtros selecionados;
c) eficácia na detecção de defeitos, que é uma métrica percentual que cruza a
quantidade de defeitos encontrados internamente, quantidade de defeitos
encontrados por clientes e a criticidade dos defeitos encontrados.
Para cada relatório (exceto o relatório de eficácia na detecção de defeitos) será possível
filtrar os defeitos por projeto, versão de liberação, usuário que registrou, natureza, criticidade
e somente defeitos em relatórios. No caso dos relatórios de eficácia na detecção de defeitos,
poderá se utilizar os filtros de versão de liberação, projeto e somente defeitos em relatórios.
Com a geração destas consultas, é possível verificar deficiências nos processos da
empresa e os gerentes têm em mãos informações precisas para tomada de decisões seguras.
A Figura 7 apresenta o fluxo do sistema após a implementação da ferramenta.
27
Figura 7 – Fluxo após implementação da ferramenta
3.2
ESPECIFICAÇÃO
Esta seção apresenta os requisitos funcionais, os requisitos não funcionais, os
diagramas de casos de uso e o modelo entidade relacionamento da ferramenta.
3.2.1 Requisitos funcionais
O Quadro 2 apresenta os requisitos funcionais previstos para a ferramenta e sua
rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s).
Requisitos Funcionais
RF01: A ferramenta deve permitir ao administrador configurar a conexão
Caso de Uso
UC 001
com o 0800net e com o Mantis.
RF02: A ferramenta deve permitir ao administrador criar os gatilhos de
UC 002
integração no 0800net.
RF03: A ferramenta deve integrar registro de tarefas e trâmites do
0800net com sua base de dados.
UC 003
28
RF04: A ferramenta deve converter registro de tarefas e trâmites em
UC 003
defeitos.
RF05: A ferramenta deve integrar defeitos de sua base de dados com a
UC 003
base de dados do Mantis.
RF05: A ferramenta deve permitir ao administrador executar o processo
UC003
de integração de defeitos.
RF07: A ferramenta deve permitir ao gerente realizar consulta de
UC 004
eficácia na detecção de defeitos.
RF08: A ferramenta deve permitir ao gerente realizar consulta de
UC 005
quantidade de defeitos encontrados.
RF09: A ferramenta deve permitir ao gerente realizar consulta de tempo
UC 006
de resposta na correção de defeitos.
Quadro 2 - Requisitos funcionais
3.2.2 Requisitos não funcionais
O Quadro 3 lista os requisitos não funcionais previstos para a ferramenta.
Requisitos Não Funcionais
RNF01: A ferramenta deve funcionar nos navegadores IE7 ou superior e Firefox 4 ou
superior.
RNF02: A ferramenta deve possuir segurança de acesso por senha.
Quadro 3 - Requisitos não funcionais
3.2.3
Diagrama de casos de uso
Esta sub-seção apresenta o diagrama de casos de uso da ferramenta.
Na Figura 8, têm-se os casos de uso de configurar conexões, criar gatilhos de
integração, integrar defeitos, consulta de eficácia na detecção de defeitos, tempo de resposta
na correção de defeitos e quantidade de defeitos encontrados. O ator “usuário” é representado
pelo responsável da infraestrutura da empresa com o papel de configurar as conexões entre as
conexões entre os bancos de dados da ferramenta proposta, 0800net e Mantis, a criação dos
29
gatilhos de integração e também é representado pelo gerente ou líder de projeto com o papel
de extrair os relatórios e analisá-los para avaliar se é necessária alguma tomada de decisão
para realinhar metas no projeto. Para o sistema não existe diferença entre administrador e
gerente, ambos utilizam o mesmo usuário de acesso e possuem acesso as mesmas opções do
sistema. O ator 0800Net é representado pela ferramenta 0800Net com o papel de enviar à
ferramenta as novas tarefas e trâmites criados. O ator Mantis é representado pela ferramenta
Mantis com o papel de receber da ferramenta de integração os novos defeitos.
Figura 8 - Diagrama de casos de uso da ferramenta.
O Quadro 4 apresenta a descrição do caso de uso Configurar conexão com o 0800net e
Mantis.
UC 01 – Configurar conexão com o 0800net e Mantis
Ator: Usuário.
Objetivo: Salvar/Atualizar os dados para acesso a base de dados do 0800net e Mantis.
Pré-condições: Usuário logado na ferramenta.
Pós-condições: Dados salvos com sucesso.
Quadro 4 – Descrição do caso de uso Configurar Conexão com o 0800net e Mantis
30
O Quadro 5 apresenta a descrição do caso de uso criar gatilhos de integração.
UC 02 – Criar gatilhos de integração
Ator: Usuário, 0800Net.
Objetivo: Criar os gatilhos responsáveis por integrar novas tarefas e trâmites do 0800net
com a base de dados da ferramenta.
Pré-condições: Usuário logado na ferramenta e base de dados do 0800net existente.
Pós-condições: Criação de gatilhos com sucesso.
Quadro 5 – Descrição do caso de uso Criar gatilhos de integração
O caso de uso Integrar defeitos será detalhado no diagrama de atividades apresentado
na Figura 9. Este caso de uso possui três etapas, a integração de trâmites do 0800net com a
base de dados da ferramenta, a conversão de trâmites em defeitos e a integração de defeitos
com o Mantis. a integração, executando em tempo programado o monitoramento e integração
dos dados. O tempo programado pata executar a integração de defeitos é de sessenta
segundos. Posteriormente será apresentada a classe responsável por esta configuração.
Na Figura 9 apresenta-se o diagrama de atividades que detalha o caso de uso integrar
defeitos. O diagrama demonstra em alto nível como ocorre o processo desde a verificação de
trâmites na base de dados da ferramenta até a inclusão de defeitos no Mantis. Este processo
ocorre após os gatilhos de integração inserir trâmites de tarefas do 0800net na base de dados
da ferramenta.
31
Figura 9 – Diagrama de atividades do caso de uso integrar defeitos
32
O Quadro 6 apresenta a descrição do caso de uso Consultar eficácia na detecção de
defeitos
UC 04 – Consultar eficácia na detecção de defeitos
Ator: Usuário.
Objetivo: Consultar a eficácia na detecção de defeitos da equipe de testes de acordo com os
filtros informados.
Pré-condições: Usuário logado na ferramenta, defeitos existentes na tabela de defeitos da
ferramenta.
Pós-condições: Consulta da eficácia realizada com sucesso.
Quadro 6 – Descrição do caso de uso Consultar eficácia na detecção de defeitos
O Quadro 7 apresenta a descrição do caso de uso Consultar quantidade de defeitos
encontrados.
UC 05 – Consultar quantidade de defeitos encontrados
Ator: Usuário.
Objetivo: Consultar a eficácia na detecção de defeitos da equipe de testes de acordo com os
filtros informados.
Pré-condições: Usuário logado na ferramenta, defeitos existentes na tabela de defeitos da
ferramenta.
Pós-condições: Consulta da eficácia realizada com sucesso.
Quadro 7 – Descrição do caso de uso Consultar quantidade de defeitos encontrados
O Quadro 8 apresenta a descrição do caso de uso Consultar tempo de resposta na
correção de defeitos.
UC 06 – Consultar tempo de resposta na correção de defeitos
Ator: Usuário.
Objetivo: Consultar a eficácia na detecção de defeitos da equipe de testes de acordo com os
filtros informados.
Pré-condições: Usuário logado na ferramenta, defeitos existentes na tabela de defeitos da
ferramenta.
Pós-condições: Consulta da eficácia realizada com sucesso.
Quadro 8 – Descrição do caso de uso Consultar tempo de resposta na correção de defeitos.
3.2.4 Modelos Entidade Relacionamento
Optou-se por apresentar o modelo entidade relacionamento separado por ferramenta.
Será apresentado o modelo da ferramenta de integração, da ferramenta 0800net e da
ferramenta Mantis.
A Figura 10 apresenta o modelo entidade relacionamento da ferramenta de integração.
Apesar de não possuírem relacionamento, os dados da tabela de trâmites do 0800net são
convertidos e inseridos na tabela de defeitos.
33
Figura 10 - Modelo Entidade Relacionamento da ferramenta
A tabela tb_conexao possui apenas um registro, que contém dados para realizar a
conexão nas ferramentas 0800net e Mantis. A tabela tb_tramite0800 possui dados do 0800net
a partir do disparo dos gatilhos de integração. Quando os gatilhos detectam que há defeitos na
tarefa/trâmite gerado, isto é, identificam se a mesma possui o modelo de texto definido na
figura 8, estas recuperam os dados do 0800net e inserem na tabela de trâmites. A tabela
tb_tramite_falha possui os dados do 0800net recuperados da tabela de trâmites e que por
algum motivo não foram integrados, normalmente por preenchimento incorreto no 0800net.
A tabela de defeitos, tb_defeito, possui os defeitos recuperados dos trâmites existentes na
tabela de trâmites, mas com os dados organizados e divididos. Quando a integração converte
um trâmite em defeitos, este trâmite é removido. Por fim, ao integrar os defeitos com o
Mantis, os defeitos são marcados como integrados.
A Figura 11 apresenta o modelo entidade relacionamento da ferramenta 0800net. São
apresentadas somente as tabelas e os campos envolvidos neste processo.
34
Figura 11 – Modelo Entidade Relacionamento do 0800net
Os campos usunome da tabela Usuario, versaoL e verDataLib da tabela TipoVersao,
projeto e tarTitulo da tabela Tarefa sempre são inseridos na tabela de trâmites da ferramenta
de integração. Se o processo que ocorre é a criação de novas tarefas, é disparado o gatilho
existente na tabela Tarefa e os outros campos inseridos na tabela de trâmites são o
TarDescricao e o TarData da tabela Tarefa. Caso o processo que ocorre seja a criação de um
novo trâmite em uma tarefa, é disparado o gatilho existente na tabela Atividade e os outros
campos inseridos na tabela de trâmites são o ativDescricao e o ativData da tabela Atividade.
A Figura 12 apresenta o modelo entidade relacionamento da ferramenta Mantis. São
apresentadas somente as tabelas e os campos envolvidos neste processo.
35
Figura 12 – Diagrama de entidade relacionamento do Mantis
Quando o processo de integração é ativado, os defeitos existentes na tabela de defeitos
da ferramenta de integração são inseridos no Mantis. Todos os defeitos no Mantis são
registros da tabela Mantis_bug_table, que contém o título do defeito e referências para o
projeto do defeito que está contido na tabela Mantis_project_table, a descrição do defeito que
está contida na tabela Mantis_bug_text_table e o usuário que registrou o defeito que está
contido na tabela Mantis_user_table.
O dicionário de dados das entidades apresentadas anteriormente está descrito no
Apêndice A.
3.3
IMPLEMENTAÇÃO
A seguir são mostradas as técnicas e ferramentas utilizadas e a operacionalidade da
implementação.
36
3.3.1 Técnicas e ferramentas utilizadas
A ferramenta foi desenvolvida em ambiente web na linguagem Java com a utilização
da tecnologia Java Server Faces (JSF) no ambiente de desenvolvimento e depuração Net
Beans versão 6.8 e o web container da ferramenta é o GlassFish. A base de dados da
ferramenta foi criada em Sql Server, embora a mesma também estabeleça conexões com bases
de dados MySQL. Para a criação dos modelos entidade relacionamento, foi utilizada a
ferramenta DBDesigner versão 4.0. A criação dos diagramas de casos de uso foi feita com a
utilização do Enterprise Architect versão 7.5 com base nos padrões da Unified Model
Language (UML).
3.3.1.1 Codificação do sistema
A Figura 13 apresenta o gatilho que integra novas tarefas do 0800net com a base de
dados da ferramenta de integração.
Figura 13 – Gatilho de integração de tarefas
Sempre que uma nova tarefa é criada no 0800net o gatilho é ativado. O gatilho
37
verifica se no campo TarDescricao (a descrição da tarefa) existem defeitos. Para identificar se
existem defeitos, o gatilho percorre o campo inteiro procurando o caractere “§”, se houver ao
menos um caractere, o gatilho realiza a integração.
Existe também um gatilho que realiza este processo sempre que um novo trâmite é
registrado em alguma tarefa no 0800net. A regra definida para este gatilho é a mesma do
gatilho apresentado anteriormente, mas com base nos dados do trâmite registrado.
A Figura 14 apresenta trecho do método que realiza a conversão de um trâmite ou uma
tarefa em um ou mais defeitos.
Figura 14 – Trecho do método de conversão de trâmites/tarefas em defeitos
38
Figura 14 - Trecho do método de conversão de trâmites/tarefas em defeitos (continuação)
O método apresentado na Figura 14 captura todos os registros (trâmites) da
tb_tramite0800 em uma estrutura de retorno da consulta (resultset) identificado como
“tramites”. Sobre este resultset então, é realizada uma iteração para recuperar e armazenar em
uma variável string temporária a descrição do trâmite, na sequência o método armazena as
posições desta descrição que contém o caractere “§”. Estes caracteres delimitam o início e o
final dos defeitos dentro da descrição do trâmite.
Neste ponto, o método já identifica os defeitos do trâmite, e então para cada defeito o
mesmo armazena as posições que contém o caractere “#”, os quais delimitam o início dos
detalhes do defeito. Detalhes do defeito são as características do defeito, como a natureza, a
criticidade e outros.
Neste ponto o método já possui a posição dos detalhes do defeito e então para cada
detalhe, é armazenado em uma estrutura de vetor (array) de duas posições o cabeçalho do
detalhe na posição 0 e a descrição do detalhe na posição 1.
O método então verifica qual é o detalhe do defeito e insere na variável
39
correspondente, até que acabem todos os detalhes. Ao final deste processo o método insere o
defeito na tabela tb_defeito e realiza o mesmo processo em todos os defeitos de todos os
trâmites.
Os processos de conversão de trâmites em defeitos e inserção de defeitos no Mantis
podem ser realizados pela ação do usuário, porém, estes já são realizados em tempo
programado pelo servidor. A Figura 15 apresenta a classe que implementa esta
funcionalidade.
Figura 15 – Classe de gerenciamento de tarefas
Nesta classe, foi criada uma tarefa que é executada a cada um minuto. O tempo
programado para execução é configurado na linha selecionada. Ao ser executada, a tarefa
exibe a mensagem
Execução automatizada
da integração,
executa os
métodos
converteDefeito() da classe defeito e integraMantis() da classe defeito e encerra a tarefa. Para
que o servidor execute esta tarefa, é necessário criar um listener no arquivo web.xml da
aplicação. A Figura 16 apresenta o trecho de código selecionado deste listener inserido no
arquivo web.xml.
40
Figura 16 – Arquivo web.xml com a inclusão do listener
Para criar este listener, é necessário somente adicionar a etiqueta (tag) selecionada na
Figura 18 no arquivo web.xml.
3.3.2 Operacionalidade da implementação
Esta subseção apresenta as telas do sistema, bem como as operações possíveis. O
sistema possui uma opção que permite ao usuário realizar as configurações de conexão com
as bases de dados necessárias, criação dos gatilhos de integração e integração manual dos
defeitos. Outras três opções permitem realizar consultas sobre os defeitos existentes.
A Figura 17 apresenta a tela de acesso ao sistema (login) da ferramenta. Pelo fato de
41
não haver a necessidade de um controle multi usuários, o sistema possui somente um usuário
de acesso. Caso o usuário ou a senha estejam incorretos o sistema apresenta uma mensagem
de falha no login. A Figura 18 apresenta a mensagem de falha de login.
Figura 17 – Tela de login da ferramenta de integração
Figura 18 – Falha de login na ferramenta
A ferramenta possui controle de sessão e uma sessão só é aberta quando o login é
validado, ou seja, o usuário não consegue acessar o sistema enquanto não realiza a validação
42
do login. Quando o usuário sai do sistema a sessão é destruída.
A Figura 19 apresenta a tela inicial da ferramenta.
Figura 19 – Tela inicial da ferramenta
A tela inicial é exibida no momento em que o sistema valida o login do usuário. Esta
não pertence a nenhuma parte dos processos da ferramenta. Outra tela que não pertence ao
processo é a tela de informações, apresentada na Figura 20.
Figura 20 – Tela de informações da ferramenta
A tela de informações apenas apresenta ao usuário informações gerais de como ocorre
43
o processo de integração, como funcionam as consultas e o local em que o projeto foi
aplicado.
A Figura 21 apresenta a tela de integração de dados. Nesta tela estão previstas três
etapas do processo, a configuração das conexões, a criação dos gatilhos de integração e a
integração de dados manualmente.
Figura 21 – Tela de integração de dados da ferramenta
Para realizar a configuração das conexões com o 0800net e Mantis, basta informar o
servidor, a base de dados, o usuário de acesso e a senha e clicar no botão gravar conexões. A
ferramenta irá salvar estas informações em banco de dados e sempre que realizar uma
conexão na base de dados do 0800net ou do Mantis, utilizará estas informações.
A Figura 22 apresenta a mensagem de gravação da configuração para conexões.
44
Figura 22 – Gravação da configuração de conexões com o 0800net e o Mantis
Para criar os gatilhos de integração na base de dados do 0800net, o usuário precisa
somente clicar no botão Criar Gatilho de Integração. A ferramenta irá verificar os dados para
conectar na base de dados do 0800net, criar os gatilhos e avisar o usuário que os gatilhos
foram criados com sucesso, como é apresentado na Figura 23.
Figura 23 – Mensagem de criação dos gatilhos de integração
A Figura 24 apresenta a mensagem de integração dos defeitos. Esta mensagem é
apresentada sempre que o usuário realiza a integração dos defeitos com o Mantis
45
manualmente. Quando o processo ocorre de forma automática, o sistema não apresenta a
mensagem.
Figura 24 – Mensagem de integração de defeitos realizada
Ao clicar no botão Integrar Defeitos, a ferramenta recupera os registros de trâmites,
converte para defeitos e os insere no Mantis. Para inserir no Mantis, a ferramenta recupera os
dados para conexão na base de dados do Mantis.
A Figura 25 apresenta uma consulta realizada na tabela de defeitos que exibe os
defeitos de um projeto.
Figura 25 – Consulta de defeitos
A consulta de dados apresentada acima retornou nove defeitos. Estes nove defeitos são
exibidos também no Mantis. A Figura 26 apresenta os defeitos deste projeto no Mantis.
46
Figura 26 – Apresentação dos defeitos no Mantis
Após realizar a integração dos defeitos, o usuário poderá visualizar por consulta
algumas informações úteis para tomada de decisão.
Na Figura 27 a ferramenta disponibiliza a consulta de eficácia na detecção de defeitos
(EDD). Esta consulta é uma métrica que exibe ao usuário a eficácia que houve da equipe em
detectar defeitos de acordo com os filtros selecionados. A consulta eficácia na detecção de
defeitos compara os defeitos encontrados pelo teste com os defeitos encontrados por clientes.
Cada defeito encontrado acrescenta pontos de acordo com sua classificação, defeitos
classificados como altos valem cinco pontos, os médios valem três pontos e os baixos um
ponto. A comparação acontece de acordo com a fórmula apresentada no Quadro 9.
Eficácia = Pontos do teste / (Pontos do teste + Pontos do cliente) * 100. O percentual ideal
varia de acordo com o projeto.
Quadro 9 - Fórmula para comparar defeitos encontrados pelo cliente e pelo teste
47
Figura 27 – Consulta de eficácia na detecção de defeitos
A consulta retornou a eficácia de 86% baseada nos defeitos encontrados por
criticidade x cliente x teste para o projeto selecionado. Cada projeto, dependendo da sua
abordagem e complexidade pode ter uma meta para o EDD maior ou menor. No exemplo
fictício, a eficácia é considerada boa sempre que alcançar um valor maior que 75%. Este valor
de 75% é considerado satisfatório na empresa Edusoft.
A Figura 28 apresenta a consulta de defeitos por criticidade x cliente x teste na base de
dados da ferramenta.
Figura 28 – Consulta de defeitos por criticidade x cliente x teste
A Figura 29 apresenta a consulta de tempo de resposta na detecção de defeitos.
48
Figura 29 – Consulta de tempo de resposta na correção de defeitos
A consulta de tempo de resposta na correção de defeitos avalia a data em que o defeito
foi registrado e a data programada para a liberação da versão do mesmo. Tendo esta diferença,
os defeitos são agrupados de acordo com sua criticidade e a consulta apresenta a média de
tempo por criticidade com um totalizador no final. No projeto pesquisado, os defeitos levaram
em média dezesseis dias desde seu registro, passando pela correção, testes e disponibilização
da correção aos clientes.
A ferramenta possui ainda a consulta de quantidade de defeitos encontrados. Esta
consulta exibe a quantidade de defeitos encontrados pela equipe e pelo cliente de acordo com
os filtros selecionados. A Figura 30 apresenta a consulta de quantidade de defeitos
encontrados.
49
Figura 30 – Consulta de quantidade de defeitos encontrados
3.4
RESULTADOS E DISCUSSÃO
Este trabalho conseguiu atender o seu objetivo principal que era fornecer suporte à
gestão de defeitos a partir da integração de dados entre as ferramentas 0800net e Mantis.
Desta forma o Mantis possui uma base de dados precisa com os defeitos encontrados, e estes
podem ser avaliados por diversas perspectivas. Pelo fato do Mantis ser uma ferramenta
altamente customizável muitas informações úteis podem ser extraídas para análise,
dependendo da forma com que o mesmo é utilizado.
Além da integração com o Mantis, a ferramenta possibilitou aos gerentes as consultas
personalizadas de quantidade de defeitos encontrados, tempo de resposta na correção de
defeitos e eficácia na detecção de defeitos e estas informações têm um grande valor aos
gerentes de projetos para a tomada de decisões.
Outros benefícios que a integração forneceu foram a eliminação da necessidade de
registrar defeitos em duas ferramentas, evitando assim o retrabalho e garantindo a integridade
dos defeitos existentes em ambas as ferramentas. Ou seja, os defeitos existem nas duas
ferramentas e com os mesmos dados.
50
O Quadro 10 apresenta um comparativo do processo com a utilização da ferramenta de
integração.
Item
Sem integração
os
Com integração
Lançamento
de Todos
defeitos
defeitos
no registrados no 0800net.
são Todos os defeitos são registrados no
0800net.
0800net.
Lançamento
de Todos
os
defeitos
defeitos
no registrados no Mantis.
são Não há necessidade de registrar
manualmente defeitos no Mantis.
Mantis.
Integridade
dos Parte dos defeitos registrados 100% dos defeitos registrados no
defeitos.
no 0800net não são registrados 0800net são registrados no Mantis
no Mantis corretamente.
com os dados corretos.
Informações
Apenas informações bastante Quantidade
gerenciais
claras
relacionadas
ocasionadas
a percepção humana.
pela informações
relevante
vistas
de
de
diversas
formas.
defeitos.
Tomada
de Apenas em casos de problemas Decisões mais seguras, ainda em
decisões
relacionadas
muito perceptíveis.
a
pouca quantidade devido ao fato da
ferramenta
defeitos.
estar
em
produção
pouco tempo.
Quadro 10 – Comparativo do processo com a integração
Não foi possível avaliar ainda se houve diminuição no esforço realizado, ou ainda
diminuição nos custos do projeto.
Foram realizados questionamentos dos gerentes de qualidade e projetos da empresa
sobre os benefícios que a ferramenta trouxe.
Conforme a gerente de qualidade, com a utilização da ferramenta nos projetos da
empresa, consegue-se trabalhar sobre as naturezas dos defeitos de forma pró-ativa e não
reativa, melhorando o planejamento e execução dos testes nas funcionalidades em que mais
ocorreram defeitos. A utilização da ferramenta também permite avaliar a qualidade do
produto e eficácia da equipe com relação aos erros encontrados internamente e pelo cliente e
permite por fim avaliar se as mudanças nos processos de desenvolvimento de software
refletiram em melhoria no produto. Estas situações são identificadas a partir de números.
Para o gerente de projetos da empresa, informações como quantidade de defeitos
encontrados e tempo de resposta na correção de defeitos, auxiliam a tornar mais clara a
51
questão planejar o escopo e cronograma do projeto, bem como ajudam a avaliar a
produtividade da equipe.
Como consequência dos resultados obtidos com a integração, alguns elementos do
ciclo de gestão de defeitos são melhores atendidos. Com uma melhor identificação das
características dos defeitos encontrados consegue-se melhorar a prevenção de defeitos,
consequentemente em alguns casos exigindo mudanças nos processos de desenvolvimento de
software a fim de adequá-los, caracterizando as mudanças como melhoria de processo.
Em relação ao trabalho de Waltrick (2011), as duas ferramentas realizam integração,
mas manipulam dados diferentes, porém ambas ocorrem pela base de dados. Quanto aos
objetivos, as duas conseguiram alcançá-los com sucesso, atendendo assim as necessidades
existentes.
Quanto ao trabalho desenvolvido por Labes (2010), o mesmo teve um foco diferente
deste trabalho, mas os benefícios alcançados são parecidos, pois ambos tiverem foco na
qualidade dos processos da empresa implantada.
52
4 CONCLUSÕES
Após o desenvolvimento do trabalho e a avaliação resultados obtidos, pode-se avaliar
como alcançados os objetivos deste trabalho. A ferramenta permite aos gerentes a análise da
informação gerada pela mesma, possibilitando a tomada de decisão mais segura, o que por si
só garante o sucesso do projeto. Embora só a ferramenta não resolva todos os problemas
relacionados ao processo de gestão de defeitos, o mesmo fornece suporte ao processo,
principalmente na etapa de relatórios de gestão, o que por sua vez abrange a todas as etapas
do processo.
Percebeu-se que com o aumento da complexidade dos softwares e da concorrência
entre as empresas, alcançar um nível de qualidade superior é sim uma vantagem competitiva
desejada por todas estas.
Quanto as dificuldades durante o projeto destacam-se duas, a forma de utilização do
Mantis e a forma de realizar a integração de dados. Primeiramente tentou-se utilizar o Mantis
com base de dados Sql Server, mas não obteve-se sucesso na instalação, resultando assim na
utilização do Mantis com base de dados MySQL. Após esta definição pôde-se definir a forma
de integração, não mais diretamente entre as bases de dados, mas passando pela base de dados
da ferramenta. Tentou-se programar a integração toda por gatilho, mas devido a alta
complexidade, mudou-se a leitura e conversão dos defeitos para ocorrer pelo Java, assim
resolvendo-se também esta dificuldade.
4.1
EXTENSÕES
Como sugestões para futuros trabalhos, a ferramenta poderá incluir novas
funcionalidades como a eliminação de um defeito, caso seja percebido pela equipe que o
mesmo trata-se de uma dúvida ou até mesmo que tenha sido registrado indevidamente. Outra
funcionalidade que poderá ser incluída na ferramenta é a integração de novos dados do defeito
caso seja necessário. Poderá ser desenvolvida também a opção de guardar históricos das
consultas realizadas para acompanhar a evolução nos projetos com relação aos defeitos.
Além das novas funcionalidades, novas consultas poderão ser desenvolvidas, inclusive
53
a exportação em forma de relatórios pdf.
54
REFERÊNCIAS BIBLIOGRÁFICAS
BARTIÉ, Alexandre. Garantia da qualidade de software. Rio de Janeiro: Campus, 2002.
BASTOS, Aderson. Base de conhecimento em teste de software. 2.ed.São Paulo: Martins,
2007
ELIZA, Renata; LAGARES, Vivian. Gestão de Defeitos no Teste de Software Java
Magazine, Grajaú, n.94, p.68 – p.74 ago. 2011
ELLEVO. 0800net - Software help desk, service desk, software helpdesk, produto help desk,
Blumenau, 2010. Disponível em: <http://www.ellevo.com.br/0800net/> Acessado em: 04 set.
2011.
KOSCIANSKI, André; Soares, Michel S. Qualidade de software. São Paulo: Novatec, 2006.
LABES, Camila. Teste-plan: ferramenta de apoio ao planejamento e controle das atividades
do processo de testes. 2010, 107 f. Trabalho de Conclusão de Curso (Bacharelado em
Sistemas de Informação) – Centro de Ciências Exatas e Naturais, Universidade Regional de
Blumenau,
Blumenau.
Disponível
em:
<http://www.inf.furb.br/tcc/index.php?cd=11&tcc=1263> Acesso em: 07 set. 2011.
MANTISBT. Mantis Bug Tracker, [S.l.], 2011. Disponível em: <http://www.mantisbt.org/>
Acessado em: 29 ago. 2011.
SOMMERVILLE, Ian. Engenharia de software. 6. ed. São Paulo: Addison Wesley, 2003
WALTRICK, Douglas O. Plugin da ferramenta TestComplete para integração com a
ferramenta TestLink, 2011, 61 f. Trabalho de Conclusão de Curso (Bacharelado em
Sistemas de Informação) – Centro de Ciências Exatas e Naturais, Universidade Regional de
Blumenau,
Blumenau.
Disponível
em:
<http://www.inf.furb.br/tcc/index.php?cd=6&tcc=1382> Acesso em: 06 jun. 2012.
55
APÊNDICE A – Descrição do dicionário de dados
Os quadros de 11 a 14 apresentam o dicionário de dados das entidades que pertencem
a base de dados da ferramenta.
O Quadro 11 apresenta o dicionário de dados da entidade tb_conexao.
Entidade: tb_conexao
Atributo
Tipo
Descrição
con_id
Int (PK)
Código identificador do registro de conexões.
con_servidor0800
Varchar(45) Caminho do servidor + porta em que se encontra a base de
dados do 0800net.
con_base0800
Varchar(45) Nome da base de dados do 0800net.
con_servidormantis Varchar(45) Caminho do servidor + porta em que se encontra a base de
dados do Mantis.
con_basemantis
Varchar(45) Nome da base de dados do Mantis.
con_usuario0800
Varchar(45) Usuário para acesso ao servidor do 0800net.
con_senha0800
Varchar(45) Senha de acesso ao servidor do 0800net.
con_usuariomantis Varchar(45) Usuário para acesso ao servidor do Mantis.
con_senhamantis
Varchar(45) Senha de acesso ao servidor do Mantis.
Quadro 11 – Dicionário de dados da entidade tb_conexao
O Quadro 12 apresenta o dicionário de dados da entidade tb_tramite0800.
Entidade: tb_tramite0800
Atributo
Tipo
Descrição
tra_id
Int (PK)
tra_titulo
Varchar(255) Título da tarefa no 0800net.
tra_descricao
Text
tra_projeto
Varchar(255) Projeto no qual a tarefa está vinculada.
tra_versaolib
Varchar(255) Versão de liberação no qual a tarefa está vinculada.
tra_dataversaolib Date
Código identificador do registro.
Descrição da tarefa ou do trâmite da tarefa no 0800net.
Data programada para liberação da versão no qual a tarefa
está vinculada.
tra_datareg
Date
Data em que a tarefa ou trâmite foi registrada.
tra_usuario
Varchar(255) Usuário que registrou a tarefa ou trâmite.
Quadro 12 – Dicionário de dados da entidade tb_tramite0800
56
O Quadro 13 apresenta o dicionário de dados da entidade tb_tramite0800.
Entidade: tb_tramite_falha
Atributo
Tipo
Descrição
tfa_id
Int (PK)
Código identificador do trâmite com falha.
tfa_titulotarefa
Varchar(255) Título da tarefa no 0800net que possui a falha.
tfa_registro_falha Varchar(255) Descrição da tarefa ou do trâmite da tarefa com falha.
tfa_projeto
Varchar(255) Projeto no qual a tarefa está vinculada.
tfa_versaolib
Varchar(255) Versão de liberação no qual a tarefa está vinculada.
tfa_usuario
Varchar(45)
Usuário que registrou a tarefa ou trâmite com falha.
Quadro 13 – Dicionário de dados da entidade tb_tramite_falha
O Quadro 14 apresenta o dicionário de dados da entidade tb_defeito.
Entidade: tb_defeito
Atributo
Tipo
Descrição
def_id
Int (PK)
Código identificador do defeito.
def_titulo
Varchar(255)
Título do defeito.
def_descricao
Text
Descrição do defeito.
def_natureza
Varchar(45)
Natureza do defeito.
def_criticidade Varchar(45)
Criticidade do defeito.
def_projeto
Varchar(45)
Projeto em que a tarefa do defeito está vinculada.
def_versaolib
Varchar(45)
Versão de liberação em que a tarefa do defeito está
vinculada.
def_usuario
Varchar(45)
Usuário que registrou o defeito na tarefa.
def_codrel
Varchar(45)
Código do relatório em que o defeito ocorreu, caso
tenha ocorrido em relatório.
def_datareg
Date
Data em que o defeito foi registrado na tarefa ou
trâmite.
def_datalib
Date
Data da versão de liberação em que a tarefa do defeito
está vinculada.
def_interno
Varchar(45)
Valor informado no defeito. Será S caso o defeito
tenha sido encontrado pelo Teste e N caso o mesmo
tenha sido encontrado pelo cliente.
57
def_integrado
Int
Valor 0 enquanto o defeito não estiver integrado com o
Mantis. Quando o defeito for integrado com o Mantis
o valor passa a ser 1.
Quadro 14 - Dicionário de dados da entidade tb_defeito
Os quadros de 15 a 18 apresentam o dicionário de dados das entidades que pertencem
à base de dados do 0800net e estão envolvidas no processo de integração.
O Quadro 15 apresenta o dicionário de dados da entidade usuario.
Entidade: Usuario
Atributo
Tipo
Descrição
UsuID
Int (PK)
Código identificador do usuário.
usunome
Varchar
Nome do usuário cadastrado no 0800net.
Quadro 15 - Dicionário de dados da entidade usuario
O Quadro 16 apresenta o dicionário de dados da entidade TipoVersao.
Entidade: TipoVersao
Atributo
Tipo
Descrição
VerID
Int (PK)
Código identificador da versão.
ProID
Int (FK)
Código identificador do produto.
VersaoL
Varchar
Descrição da versão de liberação.
VerDataRealLib Datetime
Data programada para a liberação da versão.
Quadro 16 - Dicionário de dados da entidade TipoVersao
O Quadro 17 apresenta o dicionário de dados da entidade Tarefa.
Entidade: Tarefa
Atributo
Tipo
TarID
Int (PK)
Código identificador da tarefa.
ProID
Int (FK)
Código identificador de vínculo do produto.
VerID
Int (FK)
Código identificador de vínculo da versão.
UsuID
Int (FK)
Código identificador de vínculo do usuário.
TarTitulo
Varchar
Título da tarefa.
TarDescricao Varchar
Descrição
Descrição da tarefa. Contém dados do defeito como o título, a
descrição, a natureza e a criticidade, se o defeito é interno e o
código do relatório.
Projeto
Varchar
Projeto que a tarefa está vinculada.
58
TarData
Datetime
Data de registro da tarefa.
Quadro 17 - Dicionário de dados da entidade Tarefa
O Quadro 18 apresenta o dicionário de dados da entidade Atividade.
Entidade: Atividade
Atributo
Tipo
Descrição
AtivID
Int (PK)
Código identificador da atividade (trâmite da tarefa).
TarID
Int (FK)
Código identificador de vínculo da tarefa.
ativData
Datetime
Data de registro da atividade (trâmite da tarefa).
ativDescricao Varchar
Descrição da atividade (trâmite da tarefa).
Quadro 18 - Dicionário de dados da entidade Atividade
Os quadros de 19 a 22 apresentam o dicionário de dados das entidades que pertencem
à base de dados do Mantis e estão envolvidas no processo de integração.
O Quadro 19 apresenta o dicionário de dados da entidade Mantis_project_table.
Entidade: Mantis_project_table
Atributo
Tipo
Descrição
Id
Int (PK)
Código identificador do projeto.
Name
Varchar
Nome do projeto da tarefa do defeito integrado.
Quadro 19 - Dicionário de dados da entidade Mantis_project_table
O Quadro 20 apresenta o dicionário de dados da entidade Mantis_user_table.
Entidade: Mantis_user_table
Atributo
Tipo
Descrição
Id
Int (PK)
Código identificador do usuário.
username
Varchar
Nome do usuário que registrou a tarefa do defeito integrado.
Quadro 20 - Dicionário de dados da entidade Mantis_user_table
O Quadro 21 apresenta o dicionário de dados da entidade Mantis_bug_text_table.
Entidade: Mantis_bug_text_table
Atributo
Tipo
Descrição
Id
Int (PK)
description Longtext
Código identificador da descrição do defeito.
Descrição do defeito integrado.
Quadro 21 - Dicionário de dados da entidade Mantis_bug_text_table
O Quadro 22 apresenta o dicionário de dados da entidade Mantis_bug_table.
Entidade: Mantis_bug_table
Atributo
Tipo
Descrição
59
Id
Int (PK)
Código identificador do defeito.
project_id
Int (FK)
Código identificador de vínculo do projeto da tarefa do defeito
integrado.
bug_text_id Int (FK)
Código identificador de vínculo da descrição do defeito
integrado.
repórter_id Int (FK)
Código identificador de vínculo do usuário que registrou a tarefa
do defeito integrado.
summary
Varchar
Título do defeito integrado.
Quadro 22 - Dicionário de dados da entidade Mantis_bug_table
Download