UNIVERSIDADE ANHEMBI MORUMBI ANDRÉ CORSINI FELIPE LIGIA AFFONSO ANDRÉ DE ALMEIDA RODRIGO SEIXAS SISNANDO FELIPE MALTA DA COSTA



Documentos relacionados
SERVICE DESK MANAGER SDM. Manual do Sistema - DPOI

Sistema de Controle de Solicitação de Desenvolvimento

Manual do Visualizador NF e KEY BEST

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Projeto de Sistemas I

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Manual SAGe Versão 1.2 (a partir da versão )

Índice Apresentação... 3 Mensagens... 4 Tickets... 6 Cadastro de Tickets... 6 Acompanhamento de Tickets:...9 Entregas Storage...

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Manual de Utilização

Plano de Gerenciamento do Projeto

Tópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

BEM-VINDO AO dhl PROVIEW

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

Análise de Dados do Financeiro

Tipos de teste de software

Proposta Comercial. Proposta Comercial de prestação de serviços de Desenvolvimento de web site para o Vereador Marcelo Ramos.

OI CONTA EMPRESA MANUAL DO USUÁRIO

Manual Geral do OASIS

MANUAL DE UTILIZAÇÃO

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

COMO SOLICITAR O CADASTRO DE UM ITEM SSA Central de Cadastro

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Manual Operacional SIGA

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

MANUAL DO ADMINISTRADOR LOCAL. Entidade Municipal

Manual do Painel Administrativo

GARANTIA DA QUALIDADE DE SOFTWARE

Sistema de Chamados Protega

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão Atualização 26/01/2009 Depto de TI - FASUL Página 1

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

Manual de Utilização

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Sistema de Gestão de Recursos de Aprendizagem

Fundamentos em Teste de Software. Vinicius V. Pessoni

MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Manual de Utilização Sisamil - Sistema Integrado de Saúde Amil Manual de Utilização 1 54

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

OI CONTA EMPRESA MANUAL DO USUÁRIO (exceto Administradores de Conta)

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

ENGENHARIA DE SOFTWARE I

1. INTRODUÇÃO 3 2. ESCOPO DO SERVIÇO DE CUSTOMIZAÇÃO 3

Manual Operacional SIGA

Conceitos de Banco de Dados

Feature-Driven Development

Manual UNICURITIBA VIRTUAL para Professores

Sumário INTRODUÇÃO Acesso ao Ambiente do Aluno Ferramentas e Configurações Ver Perfil Modificar Perfil...

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

FATEC Cruzeiro José da Silva. Ferramenta CRM como estratégia de negócios

NeXT Help Desk Manual do usuário. Abril/2011. NeXT Software

A IMPORTÂNCIA DA ATIVIDADE DE TESTE NO DESENVOLVIMENTO DE SOFTWARE

Manual Administrador - Mídia System

Gestão inteligente de documentos eletrônicos

SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Registro e Acompanhamento de Chamados

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

INDICADORES ETHOS PARA NEGÓCIOS SUSTENTÁVEIS E RESPONSÁVEIS. Sistema on-line

Manual de utilização do sistema de envio de sms marketing e corporativo da AGENCIA GLOBO. V

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

Manual de Operação do Sistema de Tickets Support Suite

Aplicação Prática de Lua para Web

Alterações Easycaptive

Manual do usuário. v1.0

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

GUIA BÁSICO DA SALA VIRTUAL

Em 2012, a Prosoft planejou o lançamento da Versão 5 dos seus produtos.

Diferenças da versão 6.3 para a 6.4

Universidade Paulista

VIAÇÃO SÃO BENTO LTDA.

Manual Captura S_Line

Portal Sindical. Manual Operacional Empresas/Escritórios

Channel. Visão Geral e Navegação. Tutorial. Atualizado com a versão 3.9

Gerenciamento de Incidentes

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

Manual Q-Acadêmico 2.0 Módulo Web - Aluno

ANDRÉ APARECIDO DA SILVA APOSTILA BÁSICA SOBRE O POWERPOINT 2007

Sistema de HelpDesk da SESAU Guia do Usuário

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

Guia do usuário GLPI. Versão Modificada- Thiago Passamani

GERÊNCIA DE INTEGRAÇÃO DO PROJETO

Sistema Banco de Preços Manual do Usuário OBSERVATÓRIO

*HUPRQGR±0DQXDOGR8VXiULR

Transcrição:

UNIVERSIDADE ANHEMBI MORUMBI ANDRÉ CORSINI FELIPE LIGIA AFFONSO ANDRÉ DE ALMEIDA RODRIGO SEIXAS SISNANDO FELIPE MALTA DA COSTA ESPECIFICAÇÃO E DESENVOLVIMENTO DE MELHORIAS PARA A FERRAMENTA DE GESTÃO DE OCORRÊNCIAS DE SOFTWARE MANTIS São Paulo 2010

ANDRÉ CORSINI FELIPE LIGIA AFFONSO ANDRÉ DE ALMEIDA RODRIGO SEIXAS SISNANDO FELIPE MALTA DA COSTA ESPECIFICAÇÃO E DESENVOLVIMENTO DE MELHORIAS PARA A FERRAMENTA DE GESTÃO DE OCORRÊNCIAS DE SOFTWARE MANTIS Monografia apresentada como exigência para a obtenção do certificado de Bacharelado do curso de Ciência da Computação da Universidade Anhembi Morumbi. Orientador: Professora Roberta Beatriz Aragon Bento São Paulo 2010

ANDRÉ CORSINI FELIPE LIGIA AFFONSO ANDRÉ DE ALMEIDA RODRIGO SEIXAS SISNANDO FELIPE MALTA DA COSTA ESPECIFICAÇÃO E DESENVOLVIMENTO DE MELHORIAS PARA A FERRAMENTA DE GESTÃO DE OCORRÊNCIAS DE SOFTWARE MANTIS Monografia apresentada como exigência para a obtenção do certificado de Bacharelado do curso de Ciência da Computação da Universidade Anhembi Morumbi. Aprovado em Professor Universidade Anhembi Morumbi Professor Universidade Anhembi Morumbi Professor Universidade Anhembi Morumbi

AGRADECIMENTOS Gostaríamos de agradecer inicialmente à Prof.ª Roberta Aragon, pela grande ajuda, empenho e dedicação ao grupo, pelas fervorosas cobranças, sem as quais este trabalho não viraria realidade e por ter se mostrado uma ótima orientadora, professora e pessoa. Agradecemos também a nossos familiares, em especial nossos pais, pela ajuda que nos foi dada ao longo deste caminho e pela paciência demonstrada nesses meses de trabalho. Dedicamos este trabalho também, à avó de um de seus autores, que infelizmente faleceu durante o projeto. Agradecemos aos nossos colegas da Universidade Anhembi Morumbi e aos profissionais da área de TI que participaram da nossa pesquisa, colaborando para a confecção deste trabalho. Muito obrigado.

O único lugar em que sucesso vem antes do trabalho, é no dicionário Albert Einstein

RESUMO A área de desenvolvimento de sistemas cresce rapidamente a cada dia e isso leva as empresas deste ramo, tanto pequenas quanto grandes, a buscar simplificações em seus serviços e mais qualidade em seus resultados. Estas empresas sabem que para garantir a qualidade de seus sistemas e assim obter maiores lucros, é necessário ter presente uma área de qualidade, ou seja, uma equipe de testes junto à equipe de desenvolvimento. Para facilitar a comunicação entre estas duas equipes, existem ferramentas específicas, os gerenciadores de ocorrências. Geralmente, grandes empresas adquirem gerenciadores pagos, que se apresentam ricos em funcionalidades, porém são caros. Já as pequenas e médias empresas utilizam ferramentas open source, que são gratuitas, porem são pobres em funcionalidades ou contém funcionalidades limitadas e problemáticas. Através do estudo de uma dessas ferramentas open source, chamada Mantis, que se apresenta como a ferramenta mais utilizada por pequenas e médias empresas, e de uma pesquisa de satisfação realizada via Web com analistas de teste e desenvolvedores que a utilizam, foram levantadas e implementadas melhorias, buscando aperfeiçoar a comunicação entre as equipes e tornar a ferramenta mais completa. Palavras-chave: Teste de Software, Gerenciadores de Ocorrência, Ferramenta Mantis, Qualidade de Software.

ABSTRACT The systems development area is growing rapidly every day and it takes the companies in this industry, both small and large, to seek simplifications in its services and more quality in their results. These companies know that to ensure the quality of their systems and thus higher profits, they must have one area of quality, ie a "test team" working with the development team. To facilitate the communication between these two teams, there are specific tools, occurrence`s manager. Usually big companies can afford paid managers (sharewares), which have rich features, but are expensive. Small and medium enterprises can only use open source tools, which are free, but are poor in functionality or contain limited functionalities and problems. Through the study of one of these open source tools, called Mantis, which is presented as the most used tool by small and medium enterprises, and a satisfaction survey conducted via Web with analysts and test developers who use it, have been raised and implemented improvements, seeking to improve communication between teams and make the product more complete. Keywords: Software Test, Event Managers, Mantis Tool, Software Quality.

LISTA DE FIGURAS Figura 1 - Verificação e Validação... 21 Figura 2 - Modelo V... 22 Figura 3 - Projeto de Teste... 24 Figura 4 - Fluxo de Erro... 27 Figura 5 - Fluxo de Dúvida... 28 Figura 6 - Caso de Teste com falha... 29 Figura 7 - Gerando Número da Ocorrência... 29 Figura 8 - Ocorrencia do Mantis... 29

LISTA DE TABELAS Tabela 1 - Estágios de Teste... 18 Tabela 2 - Extensões Aceitas para Exportação... 25 Tabela 3 - Extensões de Arquivo para Importação... 26 Tabela 4 - Melhorias para o Mantis... 33

LISTA DE SIGLAS CSV GPL HP HTML IBM IBQTS PHP TI XML XLS Comma Separated Values General Public License Hewlett-Packard HyperText Markup Language International Business Machines Instituto Brasileiro de Qualidade de Software Hypertext Preprocessor Tecnologia da Informação Extensible Markup Language Microsoft Office Excel Spreadsheet

SUMÁRIO 1 INTRODUÇÃO...ERRO! INDICADOR NÃO DEFINIDO. 1.1 Objetivo... 122 1.2 Justificativa... 13 1.3 Abrangência... 13 1.4 Estrutura do Trabalho... 13 2 TESTE DE SOFTWARE...ERRO! INDICADOR NÃO DEFINIDO. 2.1 Surgimento do Teste de Software... 15 2.2 Técnicas, Estágios e Tipos de Teste... 16 2.2.1 Técnicas de Teste... 16 2.2.2 Estágios de Teste... 17 2.2.3 Principais Tipos de Teste... 17 2.3 Técnicas de Validação de Requisitos... 19 2.3.1 Teste de Requisitos... 19 2.4 Processo de Verificação e Validação... 19 3 GERENCIAMENTO DE OCORRÊNCIAS...ERRO! INDICADOR NÃO DEFINIDO. 3.1 Testlink... 23 3.1.1 Projeto de Teste... 24 3.2 Mantis... 26 3.3 Integração entre Testlink e Mantis... 28 4 PROPOSTA DE MELHORIAS... 30 4.1 Pesquisa de Satisfação da Ferramenta Mantis... 30 4.2 Resultados da Pesquisa... 30 4.3 Descrição das Melhorias... 32 4.4 Soluções de Melhorias... 32 5. CONCLUSÃO... 33 6. TRABALHOS FUTUROS... 38 REFERÊNCIAS BIBLIOGRÁFICAS... 39 APÊNDICE A PESQUISA DE SATISFAÇÃO... 41 1 INTRODUÇÃO... 12 1.1 Objetivo... 12 1.2 Justificativa... 13 1.3 Abrangência... 13 1.4 Estrutura do Trabalho... 13 2 TESTE DE SOFTWARE... 15

2.1 Surgimento do Teste de Software... 15 2.2 Técnicas, Estágios e Tipos de Teste... 16 2.2.1 Técnicas de teste... 17 2.2.2 Estágios de teste... 17 2.2.3 Principais tipos de teste... 17 2.3 Técnicas de Validação de Requisitos... 19 2.3.1 Teste de requisitos... 19 2.4 Processo de Verificação e Validação... 20 3 GERENCIAMENTO DE OCORRÊNCIAS... 23 3.1 Testlink... 23 3.2 MANTIS... 26 3.3 Integração entre Testlink e Mantis... 28 4 LEVANTAMENTO DE MELHORIAS... 30 4.3 Descrição das Melhorias... 32 FONTE: (O AUTOR, 2010)... 34 4.4 Implementação das Melhorias... 34 5 CONCLUSÃO... 37 5.1 TRABALHOS FUTUROS... 37 REFERÊNCIAS BIBLIOGRAFICAS... 39 APÊNDICE A PESQUISA... 41 APÊNDICE B QUESTÕES DISSERTATIVAS... 42 APÊNDICE D MELHORAR INTEGRAÇÃO ENTRE AS FERRAMENTAS... 45 APÊNDICE E CUSTOMIZAR CAMPOS DA TELA DESCRIÇÃO... 46 APÊNDICE G MELHORAR A DESCRIÇÃO DA OCORRÊNCIA... 48

... 48 APÊNDICE H OBRIGAR INFORMAR VERSÃO DA APLICAÇÃO... 49 APÊNDICE I NUMERAR AS OCORRÊNCIAS POR PROJETO... 50

APÊNDICE M... 54 APÊNDICE N CRIAR CAMPO AMBIENTE... 55 APÊNDICE O CRIAR CAMPO NAVEGADOR... 56

12 1 INTRODUÇÃO O mercado na área de TI (Tecnologia da Informação) apresentou um crescimento considerável nas últimas décadas. De acordo com o Ministério da Ciência e Tecnologia (COMPUTERWORD, 2008), estima-se que o crescimento dessa área no Brasil será de 10% ao ano na próxima década e paralelo a esse crescimento está a necessidade de softwares de qualidade. Obter qualidade e agilidade nos processos e produtos de engenharia de software não é uma tarefa fácil. Existem vários fatores que dificultam atingir esses objetivos, como processo mal planejado, falta de organização, equipe desqualificada ou até mesmo falta de atenção para acompanhar a evolução dos requisitos. Além disso, a homologação do software com muitas indicações de ocorrências, ou até mesmo funcionalidades que não correspondem ao que foi solicitado pelo cliente, geram softwares de baixa qualidade. Atualmente, existem ferramentas com o propósito de apoiar o analista de qualidade com a modelagem e a execução do plano de testes e o gerenciamento de ocorrências. Esta última também com a finalidade de garantir o gerenciamento do desenvolvedor nas ocorrências e na qualidade do sistema. Essas ferramentas trazem várias vantagens, tais como: simplificação das atividades de teste, a dinamização da execução e uma melhor visibilidade sobre os projetos e métricas de qualidade estratégica. Existem excelentes ferramentas pagas (sharewares) no mercado, como o Rational TestManager da IBM (International Business Machines) e o Quality Center da HP (Hewlett-Packard). Porém, sabe-se que nem todas as empresas possuem um orçamento suficiente para adquirir tais ferramentas e buscam a solução em ferramentas não pagas (freewares) tais como Testlink e Mantis, que mesmo possuindo algumas carências em relação às sharewares, podem ser uma excelente escolha. 1.1 Objetivo O presente trabalho tem como objetivo propor melhorias na ferramenta de gestão de ocorrências de software Mantis, a partir de uma análise de usabilidade e

13 uma pesquisa com analistas de teste, buscando aperfeiçoar suas funcionalidades e simplificar seu uso. Junto às melhorias, são apresentados alguns modelos de qualidade de software, técnicas de teste e metodologias de desenvolvimento, proporcionando uma visão de como a qualidade é aplicada aos diferentes papéis do ciclo de desenvolvimento de software e como as ferramentas de gerenciamento de testes apóiam os desenvolvedores. 1.2 Justificativa Ao analisar o mercado e as ferramentas de gerenciamento de ocorrências disponíveis, principalmente as ferramentas não pagas (freewares), percebe-se algumas carências nessa área. Este trabalho visa suprir tais carências por meio da identificação e implementação de melhorias na ferramenta Mantis. 1.3 Abrangência O trabalho abrange a qualidade de software, mostrando o que é teste, tipos de testes e os processos dessa área. Ao longo do trabalho são especificados alguns modelos de testes, mas sem aprofundamento, pois o foco será o gerenciamento de ocorrências. Este trabalho não visa propor melhorias para a ferramenta Mantis mediante a análise de outras ferramentas de gerenciamento de ocorrências, mas sim com base em uma pesquisa realizada com testadores e desenvolvedores de softwares. O trabalho abrange o estudo da ferramenta Testlink, porém não especifica suas funcionalidades, mostrando apenas sua integração com o Mantis. 1.4 Estrutura do Trabalho O trabalho está estruturado em quatro capítulos. O capítulo dois reúne alguns conceitos do que é teste, descreve a história de como surgiram e a evolução das técnicas. Nesse capítulo será possível verificar também níveis, tipos e fases de

14 teste. O capítulo três discorre sobre as ferramentas de estudo deste trabalho, suas funcionalidades, maneiras de utilização, carências e qualidades. O quarto capítulo apresenta as melhorias identificadas por meio de uma pesquisa realizada com usuários da ferramenta e sua implementação. Por fim, o capítulo cinco apresenta os resultados deste trabalho, mostrando todas as dificuldades, aprendizados e conclusões.

15 2 TESTE DE SOFTWARE Conforme Myers (2004, p.36), o teste de software consiste em executar o programa de diversas maneiras com a intenção de encontrar ocorrências e defeitos. De acordo com o dicionário Michaelis, um teste é um exame crítico ou prova das qualidades, natureza ou comportamento de uma pessoa ou coisa. É exercitar ou simular a operação de um programa ou sistema. É confiar que um sistema faz o que se espera que ele faça. Testar é medir a qualidade e funcionalidade de um sistema. O teste não prova nada, mas deve reduzir o risco percebido de não trabalhar dentro de normas e valores aceitáveis (IBQTS, 2008, p.37) Tem-se uma série de regras definidas por Myers (2004) que servem como base dos objetivos de teste: executar um programa para descobrir ocorrências; projetar casos de testes com elevada probabilidade de revelar um erro ainda não descoberto; projetar testes que descobrirão sistematicamente diferentes classes de ocorrências com uma quantidade de tempo, esforço e custo mínimo; proporcionar uma boa indicação da qualidade e da confiabilidade do software; entregar um software de qualidade no menor tempo, com menor custo, para maiores lucros de negócios e satisfação de seus clientes. Deve demonstrar que as funções do software estão trabalhando de acordo com as especificações e que os requisitos de desempenho foram cumpridos. Além disso, os dados compilados quando a atividade de teste é executada proporcionam uma boa indicação da qualidade e confiabilidade do software como um todo. O teste de software busca reduzir os defeitos e ocorrências das aplicações testadas antes de finalizadas, evitando assim o retrabalho e custos adicionais. Uma metodologia de testes bem aplicada aumenta o índice de atendimento aos requisitos do cliente e melhora a qualidade dos sistemas entregues. Todo o processo de teste de softwares, em resumo, visa diminuir os custos e maximizar os lucros (IBQTS, 2008). 2.1 Surgimento do Teste de Software No início da era do computador, décadas de 1950 e 1960, a administração era responsável pelo desenvolvimento de sistemas, e estes eram orientados ao

16 hardware, visto que era o maior item do orçamento de projetos. O processo para determinar onde as melhorias poderiam ser implementadas era cuidadosamente analisado mediante controles, métodos e ferramentas que são conhecidos atualmente como engenharia de software. Nessa época, os projetos de desenvolvimento de software eram feitos com um vago indício das exigências do cliente e assim, a insatisfação deste com o sistema final era freqüente (PRESSMAN, 1995). Nos dias de hoje, a distribuição dos custos no desenvolvimento de sistemas computacionais mudou fortemente, sendo que o software passou a ser o item de maior custo e de maior importância (PRESSMAN, 1995). Muitas perguntas eram feitas na década passada como o porquê da demora da conclusão de um sistema, o motivo dos custos serem tão elevados, ou até mesmo o porquê de não se descobrir todos os erros antes de entregarem o software aos clientes. Essas questões, que mostraram uma manifestação de preocupação relativa ao software e a maneira pela qual ele era desenvolvido, levaram à adoção das práticas de engenharia de software. A busca pela qualidade dos sistemas computacionais foi evoluindo assim como a concorrência no mercado nas últimas décadas vem aumentando a cada dia. Assim, o entendimento da importância dos testes de software pelos gerentes surgiu e o investimento nessa etapa do desenvolvimento de sistemas passou a ser uma necessidade para o lucro da empresa (PRESSMAN, 1995). 2.2 Técnicas, Estágios e Tipos de Teste O teste de software consiste em avaliar as funções, características, tempos de resposta e interfaces dos sistemas. Para conseguir isso, os testes são implementados e executados com o seu objetivo e sua técnica de suporte específica. O foco de cada técnica está em testar uma ou mais características ou atributos do objetivo do teste (RIOS & MOREIRA, 2006).

17 2.2.1 Técnicas de teste Basicamente, as técnicas de testes podem ser classificadas como: Teste de Caixa-Preta: também chamado de teste funcional orientado a dado ou a entrada e saída. A técnica de caixa-preta avalia o comportamento externo do componente de software sem considerar o comportamento interno. Testa todas as entradas e saídas desejadas e não se preocupa com o código. Cada saída indesejada é visto como um erro (MYERS, 2004). Teste Caixa-Branca: também chamado de teste estrutural ou orientado à lógica. A técnica de caixa-branca avalia o comportamento interno do componente de software. O objetivo é testar o código (MYERS, 2004). Teste Caixa-Cinza: é a mistura das técnicas de caixa-preta com os de caixabranca. O analista de teste projeta os casos de teste a partir das estruturas de dados internos e algoritmos, avaliando o comportamento externo do software (MYERS, 2004). 2.2.2 Estágios de teste Segundo Rios & Moreira (2006) os estágios de teste podem ser classificados em três estágios distintos: Teste Geral: praticamente indispensável para o teste de qualquer aplicação em ambientes de grande porte. Teste Especializado: fundamental quando alguns testes específicos forem necessários, por exemplo, uma aplicação Web. Teste do Usuário: grupos de testes formados pelos usuários da aplicação. 2.2.3 Principais tipos de teste No mercado atual, existem vários tipos de testes: Unitário, Integração, Sistema, Regressão, Performance, Estresse, Segurança, Recuperação, Usabilidade,

18 Beta, Alpha, Aceitação, entre outros. A seguir são apresentados brevemente alguns dos principais tipos de teste e suas descrições (RIOS & MOREIRA, 2006): Teste de Unidade: também conhecido como teste unitário. Tem por objetivo explorar a menor unidade do projeto, procurando provocar falhas ocasionadas por defeitos de lógica e de implementação em cada módulo, separadamente. O universo alvo desse tipo de teste são os métodos dos objetos ou mesmo pequenos trechos de código. Teste de Integração: visa buscar falhas associadas às interfaces entre os módulos quando estes são integrados para construir a estrutura do software que foi estabelecida na fase de projeto. Teste de Sistema: avalia o software em busca de falhas por meio de sua utilização, como se fosse um usuário final. Dessa maneira, os testes são executados nos mesmos ambientes, com as mesmas condições e com os mesmos dados de entrada que um usuário utilizaria no seu dia-a-dia de manipulação do software. Verifica se o produto satisfaz seus requisitos. Teste de Aceitação: são realizados geralmente por um restrito grupo de usuários finais do sistema. Esses simulam operações de rotina do sistema de modo a verificar se seu comportamento está de acordo com o solicitado. Conforme mostra a tabela 1, para cada estágio de teste existem tipos específicos de testes: Tabela 1 Estágios de Testes. Teste Geral Teste Especializado Teste do Usuário Unitário Performance Usabilidade Integração Estresse Beta Sistema Segurança Alfa Regressão Recuperação Aceitação FONTE: (RIOS & MOREIRA, 2006).

19 2.3 Técnicas de Validação de Requisitos De acordo com a visão de um analista de testes, ''um requisito é algo que o produto deve fazer ou alguma qualidade que deve apresentar'' (IBQTS, 2008, p.15). Para um testador um requisito é algo verificável que o produto deve fazer ou alguma qualidade mensurável que deve apresentar e que pelo seu risco de comprometer o sucesso do projeto compensa ser testado (IBQTS, 2008, p.15). Os requisitos se compõem de especificações, denominadas instrumentos, que se classificam em (IBQTS, 2008): Contratuais: configuram um compromisso quanto ao que o escopo alcança e a forma do produto a ser desenvolvido. De Gerência de Configuração: uma especificação deve definir uma configuração específica de um produto/sistema. De Engenharia de Softwares: comunicação entre cliente, produto, TI, fábrica de softwares, testes e produção; descrição e compreensão das necessidades operacionais, repositório das soluções técnicas empregadas, definição da arquitetura do produto, verificação e validação dos elementos do produto e verificação da completude do produto. 2.3.1 Teste de requisitos Por meio de um requisito funcional deve ser possível definir um ou mais testes a serem realizados no sistema final para verificar se o mesmo cumpre os requisitos na íntegra. Um requisito necessita ser classificado, pois irá criar problemas no desenvolvimento do produto IBQTS (2008). A validação de requisitos diz respeito à sua verificação quanto à consistência, completude e precisão. Deve demonstrar que estes definem o sistema que o cliente realmente deseja.

20 2.4 Processo de Verificação e Validação Um software de qualidade não pode ser construído sem a utilização de técnicas de teste e análise de software (PEZZÈ & YOUNG, 2008). O processo de planejamento de testes estabelece uma estrutura de padronização para esses procedimentos com a finalidade de melhor definir o que testar e como testar, quais as atividades a serem realizadas, quais artefatos devem ser usados, qual o papel de cada envolvido e as suas respectivas responsabilidades (SOMMERVILLE, 2003). O planejamento detalha os passos a serem tomados em um determinado projeto e esse plano deve responder às seguintes questões: quais atividades de qualidade devem ser executadas? Quais são as dependências entre as atividades de qualidade e as de desenvolvimento? Quais são os recursos necessários e como eles serão alocados? Como o produto e o processo serão monitorados para manter uma avaliação adequada da qualidade e avisar com antecedência sobre os problemas de qualidade e de cronograma? (PEZZÈ & YOUNG, 2008). Verificação e Validação, conhecidas como V&V ou modelo V, trata de processos que asseguram o cumprimento do software quanto à realização de suas atividades que foram designadas pelo cliente, ou seja, suas especificações. O processo V&V está presente em cada estágio do desenvolvimento do software, desde a revisão dos requisitos até os testes do produto final. Ambas as palavras se distinguem pelo fato de que, verificação está voltada para a checagem do software, quanto as suas especificações e requisitos (funcionais e não funcionais), e validação se o sistema funciona como o cliente solicitou, atendendo assim suas expectativas (SOMMERVILLE, 2003). De acordo com Boehm (apud SOMMERVILLE, 2003), duas perguntas descrevem simplificadamente a diferença entre essas palavras: Verificação: Estamos construindo certo o produto? Validação: Estamos construindo o produto certo?

21 A figura 1 responde de uma maneira simples essas duas perguntas. Figura 1 - Verificação e Validação. FONTE: (O Autor, 2010) Duas técnicas de checagem e análise de sistemas podem ser utilizadas no modelo V: Inspeções do Software, que pode ser aplicada em todos os estágios do processo do software e diz respeito à análise e à verificação de documentos de requisitos, diagramas e o próprio código-fonte do sistema; e Testes de Software, que trata da parte executável do sistema, com dados de teste para verificar se está sendo executado como o esperado. A finalidade definitiva do processo V&V está voltada para a confiança de que o software está adequado ao seu propósito, não significando que este deva estar inteiramente livre de defeitos. A função do sistema, as expectativas dos usuários e o atual ambiente de mercado definem o nível de confiança. A função do sistema descreve o quanto o software é importante na organização. As expectativas do usuário tratam de seu aceite quanto às falhas do sistema, mas atualmente sistemas não confiáveis estão deixando de ser aceitos, ou seja, as empresas estão se dedicando mais às atividades de verificação e validação. O ambiente de mercado leva em conta o preço, a concorrência e o cronograma para entrega do sistema, e esses fatores decidem quanto esforço se deve dedicar para a verificação e validação do software. As empresas que não estão dispostas a pagar um valor alto pelo sistema ficam sujeitas a ter que tolerar mais defeitos deste, visto que esse processo é dispendioso e que, em alguns casos, chega a ser metade do orçamento do desenvolvimento do software (SOMMERVILLE, 2003). A figura 2 demonstra o processo V&V, descreve o paralelismo entre as atividades de desenvolvimento e teste de software:

22 Figura 2 - Modelo V. FONTE: (CRAIG & JASKIEL, 2002). O planejamento e o projeto dos testes devem ocorrer de cima para baixo, ou seja, inicialmente é planejado o teste de aceitação com base no documento de requisitos, logo após, o teste de sistema é planejado a partir do projeto de alto nível do software, em seguida, ocorre o planejamento dos testes de integração junto ao projeto detalhado, e por fim, o planejamento dos testes baseado na codificação. (NETO, 2007).

23 3 GERENCIAMENTO DE OCORRÊNCIAS Para garantir que uma aplicação está de acordo com os requisitos definidos juntamente com cliente, se o software é considerado seguro, antes mesmo de entrar na linha de produção, é necessário realizar uma bateria de testes rigorosa. Conforme foi visto no capítulo anterior, há vários tipos de testes. A qualidade nos testes se tornou importante tanto para garantir se o que foi solicitado pelo cliente realmente está de acordo, quanto para assegurar a integridade dos dados. A relação custo/benefício é extremamente significante, na questão de retrabalho e manutenção de softwares, essa comparação fica em média para cada dólar investido em qualidade, as empresas economizam cinco dólares (GOMES, 2010). Como a qualidade se tornou tão importante, foram desenvolvidas várias ferramentas para auxiliar na gestão dos testes. Essas ferramentas têm como principal objetivo gerir os processos, casos de testes, modelar e acompanhar os testes. A seguir, serão consideradas duas ferramentas, o Mantis e o Testlink. 3.1 Testlink O Testlink é uma ferramenta Opensource, ou seja, tem o código fonte aberto, é acessado via browser e mantido pela Open Comunity Testers. Essa ferramenta tem como principal objetivo auxiliar todo o processo que engloba as fases de produção de um sistema, dependendo da metodologia de desenvolvimento utilizada. Porém, o Testlink é mais utilizado para criação e gerenciamento de casos de uso, bem como para organizá-los em planos de teste. A partir desses planos as pessoas responsáveis poderão executar casos de teste e consultar resultados de testes dinamicamente, gerar relatórios, rastreamento de requisitos de software, priorizar e atribuir tarefas (Testlink, 2010). Por ter uma interface extremante simples, o Testlink se integra facilmente com outras ferramentas que auxiliam no rastreamento de ocorrências e ainda possibilita que usuários possam adaptá-lo de acordo com suas necessidades. Por ser Opensource, os desenvolvedores podem adicionar, excluir ou alterar suas funcionalidades. No site da Testlink (www.testlink.org) são disponibilizadas

24 atualizações constantemente, junto com novas versões. Isso é muito importante, pois o usuário só irá atualizar o que for necessário para cada projeto. 3.1.1 Projeto de teste A ferramenta de gerenciamento Testlink tem uma estrutura para projetos bem completa. No momento que é criado um novo projeto de testes, a ferramenta automaticamente cria uma estrutura para deixar padronizado todo o projeto. Esse padrão pode ser bem visualizado na Figura 3. Figura 3 - Projeto de Teste. FONTE: (Testlink, 2010) Os componentes do projeto apresentados na figura 3 são descritos a seguir (Testlink, 2010): Test Project: é a unidade básica de organização do Testlink. Os Test Projets incluem Especificação de Teste, Requerimentos e Planejamento de Teste. Test Specification: A especificação de testes é a segunda fase no ciclo de vida da criação dos testes. Ela é criada a partir do plano de teste e tem como principal objetivo explicar como implementar os casos de teste descritos no plano de teste.

25 Requirements: para confirmar que um sistema está de acordo com o esperado pelo cliente, uma combinação de risco e uma análise baseada em requisitos para assegurar que um sistema é construído como especificado a partir da perspectiva do cliente e as partes interessadas. Test Plan: é a base para atividade de execução de teste. O plano de teste disponibilizado pelo Testlink possui várias informações de extrema importância para um analista de qualidade. Custom fields: no Testlink é possível atribuir campos personalizados, informando tamanho, tipo e se é obrigatório. A partir disso, o sistema automaticamente gera testes de máscara/limite para os mesmos. Users: os criadores do Plano de Testes poderão criar usuários dando as devidas permissões. Attachments: pode inserir um documento externo juntamente ao plano de teste. Reports: a aplicação disponibiliza ao usuário, relatórios ou gráficos. Esses relatórios têm como base de dados o plano de teste. Os relatórios podem ser gerados de várias formas, conforme a Tabela 2. Tabela 2 - Extensões aceitas para exportação. Tipo Modo de apresentação HTML (HyperText Markup Language) Apresentado numa página da internet (HTML) OpenOffice Writer Em modo texto OpenOffice Calc Em modo de tabela Microsoft Word Em modo texto Microsoft Excel Em modo tabela E-mail HTML Envia um HTML para o e-mail do usuário FONTE: (Testlink, 2010) Import/Export: existe a opção de importar ou exportar um projeto já existente ou

26 separadamente itens do projeto. Na Tabela 3 é possível visualizar o que pode ser importado e exportado nos formatos XML (Extensible Markup Language) e CSV (Comma Separated Values): Tabela 3 - Extensões de arquivo para importação. Item Formato Imp. Exp. Test Project XML X X Test Suíte XML X X Test Case XML X X Keyword CSV, XML X X Requeriments CSV, XML X X Result XML X FONTE: (Testlink, 2010) 3.2 Mantis Mantis é um sistema de gerenciamento de ocorrências baseado na web, desenvolvido inicialmente por Kenzaburo Ito, que criou uma ferramenta para controle de ocorrências, direcionada ao controle de animais, porém depois de uma adequação foi disponibilizado ao público por meio da GPL (General Public License). Em Novembro de 2002, Kenzaburo Ito se uniu com Jereon Latour, Victor Boctor e Julian Fitzell formando assim um núcleo de administradores e desenvolvedores (MANTIS, 2010). Com o tempo, ele amadureceu e ganhou popularidade, tornando-se a ferramenta Opensource para gerenciamento de ocorrências mais popular. O Mantis é desenvolvido em PHP (Hypertext Preprocessor) e utiliza banco de dados com suporte para múltiplos backends. Como possui o seu código aberto, permite aos usuários uma grande variedade de customizações, que inclusive, são incentivadas no arquivo principal do sistema. Um grande diferencial é sua disponibilidade em vários idiomas. Atualmente, o Mantis dispõe de seis níveis de usuário: Visualizador, Relator, Atualizador, Desenvolvedor, Gerente e Administrador. Cada qual possui diferentes

27 tipos de permissões. O Visualizador, por exemplo, possui a permissão de somente visualizar os registros de ocorrências efetuados. Os registros de ocorrências efetuados são delegados para um usuário. Automaticamente o sistema envia um e-mail para esse usuário informando que esse registro se encontra em sua responsabilidade. Após solucionar o problema, o usuário responsável deverá informar ao remetente para que o mesmo possa averiguar se o problema foi resolvido e assim atualizar o status. A figura 4 mostra o Fluxo de Erro, na visão do analista de teste (Relator) e do desenvolvedor (Desenvolvimento): Figura 4 Fluxo de erro. FONTE: (O autor, 2010) A figura 4 representa o caminho percorrido pelo relator e o desenvolvedor utilizando a ferramenta Mantis. O Relator deve cadastrar o erro, informando a descrição com o anexo da ocorrência encontrada, deve atribuir a ocorrência aberta ao desenvolvedor que está cadastrado na ferramenta. Após o desenvolvedor corrigir a ocorrência que foi aberta, o relator deve realizar reteste da ocorrência informando isso no Mantis, colocando como caso resolvido ou atribuindo novamente ao desenvolvedor informando que a ocorrência permanece. O desenvolvedor deve receber a ocorrência que foi aberta pelo relator, confirmar que isso é de fato um erro, confirmando e solucionando o problema aberto pelo analista de teste. Após a solução do problema que foi aberto pelo relator o desenvolvedor deve atribuir ao relator informando que a mesma está solucionada e disponível para teste. A figura 5 mostra o Fluxo de Dúvida, na visão do analista de teste e do

28 analista funcional: Figura 5 Fluxo de Dúvida. FONTE: (O Autor, 2010) A figura 5 representa o relator encontrando uma dúvida no caso de uso que foi disponibilizado, abrindo a ocorrência e informando o que ocorreu, atribuindo a um analista funcional que está cadastrado na ferramenta Mantis. Após o analista de negócio ver a dúvida que foi aberta, ele deve verificar e corrigir roteiro de teste caso necessário. O analista funcional deve receber a ocorrência que foi aberta pelo relator e verificar a dúvida e solucioná-la. Após solucionar a dúvida, ele deve atribuir novamente ao relator informando, no campo descrição, o problema que foi solucionado. 3.3 Integração entre Testlink e Mantis Como visto no item 3.2, o Testlink foi desenvolvido para gestão de casos de teste, uma visão para o analista de testes, que necessita de relatórios, andamento dos fluxos, controle dos testes executados e dos que serão executados. Já o Mantis, que foi criado basicamente para desenvolvedores, possui uma visão extremamente simples, somente com o que precisa ser corrigido. Para ter um sistema completo é necessária uma integração entre essas duas ferramentas. Primeiro o analista de testes insere o caso de teste no Testlink, preenche o campo Observação e clica na opção com falha, conforme a figura 6: