Processo de Teste de Software - Monografia

6.492 visualizações

Publicada em

Monografia apresentada ao curso de Engenharia de Software do Centro Universitário Positivo, sobre Teste de Software, como requisito parcial para a conclusão do curso de pós-graduação.
Orientador: Prof. Douglas Mendes
2006

Rodrigo Kammers - Trabalho como coodenador de projetos de Testes de Software à 6 anos na Positivo Infomática.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
6.492
No SlideShare
0
A partir de incorporações
0
Número de incorporações
95
Ações
Compartilhamentos
0
Downloads
323
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Processo de Teste de Software - Monografia

  1. 1. UnicenP – Centro Universitário Positivo Pós-Graduação em Engenharia de Software Rodrigo Augusto Kammers O PROCESSO DE TESTE E AS ATIVIDADES ENVOLVIDAS EM CADA FASE CURITIBA 2006
  2. 2. Rodrigo Augusto Kammers Monografia apresentada ao curso de Engenharia de Software do Centro Universitário Positivo, sobre Teste de Software, como requisito parcial para a conclusão do curso de pós-graduação. Orientador: Prof. Douglas Mendes CURITIBA 2006 2
  3. 3. Rodrigo Augusto Kammers Entendendo o processo de teste de software e as atividades envolvidas em cada fase. Monografia apresentada ao curso de Engenharia de Software do Centro Universitário Positivo, sobre Teste de Software, como requisito parcial para a conclusão do curso de pós-graduação. Unicenp – 2006 ______________________________________ Prof. Douglas Mendes ______________________________________ Prof. Silvio Bortoleto 3
  4. 4. RESUMO Esta proposta de monografia propõe-se a descrever as fases do processo de teste e as atividades envolvidas. Através da apresentação dos problemas e dificuldades geradas pelo não uso de uma metodologia de testes, mostra-se a necessidade de se estudar e entender o processo. Para iniciar o trabalho serão definidos os conceitos de qualidade e testes. Após isto serão especificadas as etapas e subetapas do processo. E para cada subetapa, serão identificadas as atividades necessárias para alcançar os objetivos. Palavras-chave: Teste de Software, Qualidade, Metodologia e Processo de Teste. 4
  5. 5. SUMÁRIO 1. INTRODUÇÃO..........................................................................................................9 1.1 TEMA ...................................................................................................................................9 1.2 PROBLEMA.........................................................................................................9 1.3 OBJETIVOS.......................................................................................................10 1.3.1 Objetivo geral............................................................................................10 1.3.2 Objetivos específicos...............................................................................11 1.4 ETAPAS.............................................................................................................13 1.5 RESULTADOS ESPERADOS...........................................................................13 2. REVISÃO DA LITERATURA.................................................................................14 2.1 QUALIDADE DE SOFTWARE..........................................................................14 2.2 TESTE DE SOFTWARE....................................................................................14 2.3 IMPORTÂNCIA DOS TESTES..........................................................................15 2.4 CUSTO DOS TESTES......................................................................................15 2.5 SELEÇÃO DO CONJUNTO DE TESTES.........................................................16 2.6 DIMENSÕES DO TESTE..................................................................................17 2.6.1 Fases do teste...........................................................................................18 2.6.1.1 Teste de Unidade ................................................................................18 2.6.1.2 Teste de Integração..............................................................................18 2.6.1.3 Teste de Sistema..................................................................................18 2.6.1.4 Teste de Aceitação...............................................................................19 2.6.2 Tipos de teste............................................................................................19 2.6.2.1 Características da qualidade................................................................19 2.6.2.2 Tipos de testes.....................................................................................19 2.6.3 Técnicas de teste......................................................................................21 2.6.3.1 Técnicas Funcionais.............................................................................21 2.6.3.2 Técnicas Estruturais.............................................................................22 3. METODOLOGIA.....................................................................................................23 4. APRESENTAÇÃO DOS RESULTADOS...............................................................24 4.1 PROCESSO DE TESTE DE SOFTWARE........................................................24 4.2 DESCRIÇÃO DAS ETAPAS DE TESTE...........................................................25 5
  6. 6. 4.2.1 Procedimentos iniciais.............................................................................25 4.2.1.1 Elaborar o Guia Operacional de Testes...............................................25 4.2.2 Planejamento.............................................................................................26 4.2.2.1 Elaborar o Plano de Testes..................................................................26 4.2.2.2 Elaborar o projeto de testes.................................................................27 4.2.3 Preparação.................................................................................................28 4.2.3.1 Adequar o projeto de testes à Gerência de Configuração e/ou de controle de mudanças......................................................................................28 4.2.3.2 Disponibilizar infra-estrutura e ferramentas de teste...........................29 4.2.3.3 Disponibilizar pessoal...........................................................................29 4.2.4 Especificação............................................................................................30 4.2.4.1 Elaborar casos de testes......................................................................30 4.2.4.2 Elaborar Roteiros de Teste..................................................................31 4.2.5 Execução....................................................................................................31 4.2.5.1 Preparar dados de testes.....................................................................31 4.2.5.2 Executar testes.....................................................................................32 4.2.5.3 Solucionar ocorrências de testes.........................................................33 4.2.5.4 Acompanhar a execução dos casos de testes....................................33 4.2.5.5 Elaborar relatório final..........................................................................34 4.2.6 Entrega.......................................................................................................35 4.2.6.1 Avaliação e Arquivamento da Documentação.....................................35 4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO..................35 5. DISCUSSÃO DOS RESULTADOS........................................................................38 6. CONCLUSÃO.........................................................................................................40 6.1 SÍNTESE DO PROJETO...................................................................................40 6.2 CONTRIBUIÇÕES.............................................................................................40 6.3 LIMITAÇÕES.....................................................................................................40 6.4 PESQUISAS FUTURAS....................................................................................41 6
  7. 7. 7. REFERÊNCIAS ......................................................................................................42 ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998 .....................................................................................................................................43 ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A ISO/IEC 9126-1...........................................................................................................46 ANEXO 3 – MODELO DE PLANO DE TESTE..........................................................48 ANEXO 4 - MODELO DE PROJETO DE TESTE.......................................................52 ANEXO 5 - MODELO DE CASOS DE TESTE...........................................................53 ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE.......................................54 ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE.....................55 ANEXO 8 - MODELO DE DIÁRIO DE TESTE...........................................................56 ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE........................58 ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE...............................59 ANEXO 11 – GUIA OPERACIONAL DE TESTE.......................................................60 7
  8. 8. LISTA DE FIGURAS Figura 1 – Custo do teste mais o custo da falha .......................................................16 Figura 2 – Relação entre níveis, tipos e técnicas de teste ........................................18 Figura 3 – Processo de desenvolvimento e processo de teste .................................38 8
  9. 9. 1. INTRODUÇÃO 1.1 TEMA Este trabalho tem como tema o processo de teste de software e as atividades envolvidas em cada fase. Assim como as fases de um projeto, o processo de teste é executado por etapas; que se iniciam com um planejamento e se estendem até a avaliação dos resultados. Cada uma das etapas compreende um conjunto de atividades, que devem ser gerenciadas para que no final do processo sejam alcançados os objetivos esperados. Conforme os sistemas se tornam mais complexos e cruciais para a empresa, aumenta a importância de um teste eficaz. Vimos que década após década (70 a 90) aumenta a participação do teste no total dos esforços de um projeto. As atividades de teste que antes eram executadas apenas na última fase de um projeto, agora atuam a partir do momento em que ele possua requisitos. Ao observar a importância e complexidade das atividades envolvidas no teste, vimos a necessidade do uso de uma metodologia para gerir este processo. Este trabalho visa à elaboração de uma monografia, onde serão descritas as fases do processo de teste de software e as atividades envolvidas. 1.2 PROBLEMA O processo de teste de um software é visto como uma tarefa secundária, de pouca importância. Visto que suas atividades parecem não agregar valor ao projeto em questão, para muitos ainda é tratado como um mal necessário, para provar ao cliente que o produto funciona. Após analisar as combinações de entradas de dados e plataformas disponíveis, e criarmos os casos de teste, chegamos a números grandes demais. Que tornam a tarefa de testar um software 100% praticamente impossível. Esta análise piora ainda mais a imagem das tarefas de teste, que além de não adicionar nenhuma funcionalidade a um sistema não garante ao cliente que o software está livre de defeitos. 9
  10. 10. Através da engenharia de software, e aplicando-se uma metodologia de testes formal, conseguimos fazer com que a execução das atividades de teste seja eficaz. Encontrando o maior número de defeitos possível antes do usuário final. Melhorando a satisfação dos clientes e reduzindo os custos com manutenção e correção dos erros após a finalização do projeto. Sem a utilização de um processo formal, fica mais difícil treinar as pessoas da área de teste adequadamente. A comunicação entre o setor de testes e as outras áreas da equipe de desenvolvimento fica deficiente. Dificultando a visibilidade da responsabilidade de cada um sobre a qualidade do produto final do produto. Quando não se usa uma metodologia formal, as tarefas de teste são esquecidas, e a tendência é a de serem executadas somente na fase final do projeto. Mas quando o processo de teste integra-se ao processo de desenvolvimento, atuando logo nas etapas iniciais do projeto, vários problemas já podem ser detectados e corrigidos antes mesmo do início da implementação do código. 1.3 OBJETIVOS 1.3.1 Objetivo geral O objetivo principal deste trabalho é o de descrever as etapas do processo de teste juntamente com as atividades envolvidas. Dando uma ênfase maior as atividades mais relevantes de cada fase. As etapas do processo de teste são: • Procedimentos iniciais • Planejamento • Preparação • Especificação • Execução • Entrega 10
  11. 11. No final da descrição do processo, será feito um paralelo das atividades de teste com as fases de desenvolvimento. E quando for necessária uma descrição mais detalhada das ferramentas, metodologias, modelos de documentos, ou outro artigo, estes serão acrescentados ao final do projeto por meio de anexos. 1.3.2 Objetivos específicos Antes de entrar na descrição do processo de teste, serão abordados temas referentes à qualidade e definição de teste. Lista dos itens a serem abordados na introdução: • O que é Qualidade? • O que é teste? • Importância do teste • Custos do teste versus custo de correção dos erros • Tipos de testes • Teste unitário • Teste de integração • Teste de sistema • Teste de aceitação • Técnicas de teste • Caixa branca • Caixa preta • Tipos de teste • Qualidade • Performance • Usabilidade... Para cada subetapa, serão levantadas as atividades que levam a criação do produto a que ela se destina. Abaixo temos algumas tabelas que definem as subetapas, e quais produtos devem ser criados em cada uma destas fases. 11
  12. 12. 1 - Procedimentos iniciais Subetapa Produto Elaborar o Guia Operacional de Testes Guia Operacional de teste 2 - Planejamento Subetapa Produto Estabelecer Plano de Testes Plano de testes – nova versão Análise de Riscos do Projetos de Testes Estabelecer Projeto de teste Projeto de teste 3 - Preparação Subetapa Produto Adequar o projeto de testes à Gerência de Configuração e/ou de controle de mudanças Registro e controle das diversas versões do produto:funcional, desenvolvimento, produto e operacional Disponibilizar infra-estrutura e ferramentas de teste Infra-estrutura e ferramentas de teste disponíveis para a equipe de testes Disponibilizar pessoal Equipe de testes definida e capacitada 4 - Especificação Subetapa Produto Elaborar casos de testes Casos de Testes(atual e nova versão) “Scripts” de testes(se usar ferramentas de automação) Especificação das necessidades de dados de testes Elaborar Roteiros de Teste Roteiros de testes 5 - Execução Subetapa Produto Preparar dados de testes Bases/Arquivos de teste disponíveis Executar testes Resultado dos testes Relatório de defeitos encontrados Ajustes no material de testes Solucionar ocorrências de testes Relatório de defeitos encontrados com status resolvido ou a avaliar Acompanhar a execução dos Análise do andamento dos Casos de 12
  13. 13. casos de testes Testes Elaborar relatório final Relatório final dos testes 6 - Entrega Subetapa Produto Avaliação e Arquivamento da Documentação Relatórios de não conformidade Relatório final de testes Documentação arquivada 1.4 ETAPAS Para entender estes objetivos, este projeto está composto pelas seguintes etapas: - Esta introdução, onde se apresenta o tema, problema e objetivos; - A revisão da literatura, onde se examinam os conceitos ligados a qualidade e ao teste de software; - A metodologia utilizada neste trabalho; - O desenvolvimento do trabalho, que consiste na apresentação das etapas do teste de software e as atividades envolvidas; - A discussão dos resultados, onde comparamos a teoria com a prática vivida pelo autor; - A conclusão, onde se revê o caminho percorrido neste trabalho e são sugeridos temas futuros. 1.5 RESULTADOS ESPERADOS Após a conclusão deste trabalho, espera-se com o documento final, alcançar os seguintes objetivos: • Tornar-se uma referência para a estruturação dos processos de um setor de testes. • Demonstrar para a organização, a importância das atividades de teste. • Demonstrar para a organização, a economia de manutenção gerada devido a descoberta de defeitos através da atividade de teste. 13
  14. 14. • Contribuir para o processo de formação de mão de obra especializada 2. REVISÃO DA LITERATURA 2.1 QUALIDADE DE SOFTWARE Na década de 80, iniciou-se uma abordagem da área da qualidade que visa à melhoria do processo. Segundo este conceito, a qualidade de um produto ou serviço, somente pode ser assegurada através da qualidade do processo. Nessa abordagem, o objetivo é controlar a produção e eliminar a introdução de elementos que possam gerar não conformidade ao produto final. Para o desenvolvimento de software, metodologias como o CMMI, PSP e o TSP colaboraram para assegurar a qualidade do software. E dentro destas metodologias existem atividades de teste que contribuem na garantia da qualidade do produto. E as atividades de teste têm conquistado bastante espaço e autonomia dentro das organizações. E à medida que se tornam mais complexas, necessitam de metodologias específicas para que seus processos sejam executados plenamente. E é neste ponto onde a qualidade do processo de teste se reflete na qualidade do produto final de software. 2.2 TESTE DE SOFTWARE Existem varias definições para teste de software, entre elas podemos destacar as seguintes: • É o processo de executar um programa ou sistema com a intenção de encontrar defeitos (Glen Meyers). • Qualquer atividade que a partir da avaliação de um atributo ou capacidade de um sistema seja possível determinar se ele alcança os resultados desejados (Bill Hetzel). 14
  15. 15. • O processo de operação de um sistema ou componente em específicas condições, observando ou registrando os resultados, e fazendo uma avaliação em alguns aspectos do sistema ou componente (IEEE). Na prática, podemos definir o teste como o processo de executar um programa, utilizando-o completamente e de todas as formas possíveis, a fim de verificar se ele atende aos requisitos especificados. E tendo como objetivo principal descobrir defeitos antes que o software seja liberado para o cliente final. Desta forma, vimos que o teste contribui na satisfação do cliente, assegurando que o produto entregue chegue com a qualidade esperada. E dentro da organização, garantindo que os padrões internos sejam cumpridos, reduzindo assim o custo com re-trabalho após cada fase onde o teste é aplicado. 2.3 IMPORTÂNCIA DOS TESTES. Além de contribuir para a qualidade do software, o teste tem um papel fundamento na diminuição dos custos de manutenção e correção do produto. Segundo Ron Patton, no seu livro Software Testing, os custos para a correção de um problema aumentam exponencialmente no decorrer do projeto. Quanto mais tarde for detectado um erro, menor é a chance de existir uma solução viável; que cause pouco impacto, utilize poucos recursos e se adapte ao tempo disponível. Por exemplo, um erro que seja identificado logo após a fase de definição de requisitos, pode ter como correção apenas alguns ajustes na documentação dos requisitos e no planejamento do projeto. Se este mesmo erro for detectado somente após a finalização da etapa de implementação, pode ter como conseqüência a mudança de toda a arquitetura deste produto. 2.4 CUSTO DOS TESTES Vimos que o teste contribui bastante na diminuição dos custos diretos, como manutenção, suporte e re-trabalho. E também nos custos indiretos, como na 15
  16. 16. qualidade dos produtos e na satisfação dos clientes. Mas como podemos decidir quanto devemos investir no teste para que tenhamos o máximo de retorno possível? Já concluímos que por mais testes que façamos sempre estaremos sujeitos ao aparecimento de uma falha no produto. Mas quanto mais investimos no teste, menor será o custo da utilizado para a manutenção. Podemos notar com isso o aparecimento de um custo total. Este valor total representa a soma do investimento feito nos testes com aqueles que serão empregados na manutenção e correção. Se traçarmos um gráfico deste custo total (figura 1), e se conseguirmos na prática atingir o seu ponto de menor valor, teremos então alcançado o ponto onde a relação custo benefício mais nos favorece. Figura 1 – Custo do teste mais o custo da falha 2.5 SELEÇÃO DO CONJUNTO DE TESTES Quando um produto é enviado para ser testado, uma difícil tarefa durante o planejamento é a de decidir quais os testes que serão realizados. Dentro de uma quantidade de tipos de testes e uma variedade de configurações de ambiente possíveis, podemos chegar à conclusão de que a execução do teste poderá se tornar custosa demais, ou até extrapolar as datas de finalização do projeto. Para determinar os testes que serão executados, e quais não, podemos utilizar como fator de decisão, uma análise de riscos com seus respectivos impactos, relacionados a cada teste levantado. Uma ferramenta de qualidade que sugerimos para auxiliar nesta escolha é a matriz GUT. Para definir as prioridades, utilizando a matriz GUT, são definidos valores para os indicadores de gravidade, urgência e tendência. Para indicar o peso de cada 16
  17. 17. um destes itens, são utilizadas algumas perguntas chave. Tendo isto, basta multiplicar para cada item o peso de seus indicadores. Quanto maior o valor maior será a prioridade de execução deste teste. Indicador Descrição Perguntas e pesos Gravidade Aquilo que afeta profundamente o resultado. È o dano causado caso o teste não seja executado • O dano é extremamente importante? (5) • O dano é muito importante? (4) • O dano é importante? (3) • O dano é relativamente importante? (2) • O dano é pouco importante? (1) Urgência Pressão do tempo que o sistema sofre. Define qual a importância de se fazer este teste no momento atual. • Tenho que tomar uma ação muito urgente? (5) • Tenho que tomar uma ação urgente? (4) • Tenho que tomar uma ação relativamente urgente? (3) • Posso aguardar? (2) • Não há pressa? (1) Tendência É o estado que a situação pode apresentar, caso não seja tomada nenhuma medida corretiva. Indica a tendência do erro se agravar com o passar do tempo, caso ele ocorra. • Se não fizer nada, a situação vai piorar muito? (5) • Se não fizer nada, a situação vai piorar? (4) • Se não fizer nada, a situação vai permanecer? (3) • Se não fizer nada, a situação vai melhorar? (2) • Se não fizer nada, a situação vai melhorar muito? (1) 2.6 DIMENSÕES DO TESTE Para entender as diversas fases e tipos de testes, podemos visualizá-lo em três dimensões. Sendo que cada uma destas dimensões representa uma de classificação do testes. Estas classificações são aplicadas segundo estas visões: • Fase de desenvolvimento – relaciona o teste com a fase de desenvolvimento onde ele é aplicado. • Tipo de teste – relaciona o teste à característica de qualidade que está sendo avaliada. • Técnica de teste – são as técnicas utilizadas para se executar o teste. A figura abaixo nos mostra os níveis de testes com seus tipos associados. 17
  18. 18. Cenpra - Figura 2 – Relação entre níveis, tipos e técnicas de teste 2.6.1 Fases do teste 2.6.1.1 Teste de Unidade Este é o estágio mais baixo da escala de testes e são aplicados nos menores componentes de código criados. São aplicados de maneira individual a cada unidade do sistema. Utiliza as técnicas de teste de caixa branca para a sua execução, e normalmente é realizado pelo próprio programador; 2.6.1.2 Teste de Integração È o processo de verificar a interação entre os componentes. Para que esta fase seja executada, os módulos já devem ter passado pelos testes unitários. Será dado mais ênfase à interface entre os módulos que estão sendo analisados. 2.6.1.3 Teste de Sistema Nesta etapa o software é testado por completo. Os teste que são aplicados são do tipo caixa-preta. Nesta fase se verifica a conformidade com os requisitos, simulando um ambiente de produção real. 18
  19. 19. 2.6.1.4 Teste de Aceitação Os testes de aceitação, também chamados de teste Alfa e Beta, são realizados para permitir ao usuário final validar todos os requisitos. Nesta fase o cliente confirma se todas as suas necessidades foram atendidas pelo sistema. 2.6.2 Tipos de teste A classificação dos tipos de teste é feita tendo como referência a característica de qualidade que se deseja alcançar. Existem testes específicos para se atingir cada uma das características relacionadas pela norma ISO/IEC 9126-1. 2.6.2.1 Características da qualidade Na tabela abaixo, são mostrados os tipos de características de qualidade e sua descrição. Característica Descrição Funcionalidade Evidenciar que o conjunto de funções atende às necessidades explícitas e implícitas para a finalidade a que se destina o produto. Confiabilidade Evidenciar que o desempenho se mantém ao longo do tempo e em condições estabelecidas. Usabilidade Evidenciar a facilidade para a utilização do software Manutenibilidad e Evidenciar que há facilidade para correções, atualizações e alterações. Portabilidade Evidenciar que é possível utilizar o produto em diversas plataformas com pequeno esforço de adaptação. 2.6.2.2 Tipos de testes A quantidade de tipos de teste existente é bastante grande. E tem um relacionamento direto com o tipo produto de software que esta sendo testado, e com 19
  20. 20. o ambiente onde será utilizado. Abaixo relacionamos os tipos de testes mais freqüentemente utilizados:  Testes de Carga: visam avaliar a resposta de um software sob uma pesada carga de dados, repetição de certas ações de entrada de dados, entrada de valores numéricos grandes, consultas complexas a base de dados, grande quantidades de usuários simultâneos para verificar o nível de escalabilidade.  Testes Back-to-back: o mesmo teste executado em versões diferentes do software e os resultados são comparados.  Testes de Configuração: verificam se o software está apto a funcionar em diferentes versões ou configurações de ambientes (hardware e software).  Testes de Usabilidade: verificam o nível de facilidade de uso do software pelos usuários.  Testes de Instalação: verificam o processo de instalação parcial, total ou atualização do software.  Testes de Segurança: validam a capacidade de proteção do software contra acessos interno ou externo não autorizados.  Testes de Recuperação: validam a capacidade e qualidade da recuperação do software após falhas de hardware ou problemas externos.  Testes de Compatibilidade: validam a capacidade do software de executar em um particular ambiente de hardware/software/sistema operacional ou rede.  Testes de Desempenho/Performance: visam garantir que o sistema atende os níveis de desempenho e tempo de resposta acordados com usuários e definidos nos requisitos.  Testes Funcionais: grupos de testes que validam se o que foi especificado foi implementado.  Teste de Qualidade de Código: grupos de testes com o intuito de verificar o código fonte dos programas em consonância com padrões, melhores práticas, instruções não executadas e outros. 20
  21. 21.  Testes de Alterações: visam rastrear alterações de programas durante o processo de teste.  Testes de Recuperações de Versões: verificam a capacidade de retornar a uma versão anterior do software.  Testes de Interoperabilidade: avaliam as condições de integração com outros softwares e /ou ambientes.  Testes de Sobrevivência: avaliam a capacidade do software em continuar operando mesmo quando algum elemento (software ou hardware) fica inoperante ou para de funcionar.  Testes Estéticos: avaliam toda a documentação do projeto, tais como modelos, requisitos, etc.  Teste Embutido: avalia a capacidade de integração entre o hardware e o software.  Teste de Conferência de Arquivos: verificam alterações nos arquivos usados.  Testes Alfa: são executados quando o desenvolvimento está próximo a sua conclusão.  Testes Beta: são executados quando o desenvolvimento e testes estão praticamente concluídos.  Teste de Verificação de Sites Web: verificam problemas que possam haver no site como links inválidos, arquivos órfãos, ligações entre páginas (Molinari, 2003). 2.6.3 Técnicas de teste 2.6.3.1 Técnicas Funcionais Os testes funcionais têm por objetivo a verificação da entrada dos dados, do processamento, e da resposta a este processamento. Através destes métodos também são verificados se o sistema atende aos requisitos de negócio. Estes métodos são do tipo caixa-preta. 21
  22. 22. Alguns exemplos destes tipos de teste são: • Teste baseado em casos de uso • Valores limites • Particionamento de equivalência 2.6.3.2 Técnicas Estruturais Estas técnicas têm por objetivo determinar defeitos na estrutura interna ou no código do software. Também são chamadas de teste de caixa-branca, e são normalmente feitas pelos programadores na fase dos testes de unidades. Alguns exemplos destes tipos de teste são: • Teste de caminhos • Teste de comandos • Teste de ramos • Teste de condições 22
  23. 23. 3. METODOLOGIA Este trabalho tem como objetivo levantar todas as atividades necessárias para gerir o processo de teste. Auxiliando assim na coordenação das tarefas realizadas pela equipe de testes, e apontando também os principais pontos para que o processo de teste esteja alinhado com o processo de desenvolvimento. Antes de entrar na descrição do processo, é necessário fundamentar os aspectos essenciais envolvidos nestas atividades. Para isso foi feita uma pesquisa através de livros e da Internet, identificando os conceitos e metodologias conhecidas. Após isto foi feito um estudo mais detalhado sobre a norma IEEE Std 829- 1998, para se identificar e entender os itens necessários para a elaboração dos documentos de testes. E com base nesta norma e na bibliografia pesquisada, foram listadas as atividades de teste que contribuem na elaboração destes documentos. E para que esta metodologia seja mais facilmente aplicada, foi feito um paralelo do processo de teste com o de desenvolvimento. Assim como a criação de modelos de todos os documentos citados pela norma IEEE Std 829-1998. 23
  24. 24. 4. APRESENTAÇÃO DOS RESULTADOS 4.1 PROCESSO DE TESTE DE SOFTWARE Como toda atividade de produção de software, o teste requer um planejamento detalhado. E durante todo o processo, possuir uma documentação bem estruturada melhora a visibilidade das fases do teste. Uma boa documentação contribui para o gerenciamento da execução dos testes, e é uma forma de comunicação entre as partes envolvidas no teste e no projeto como um todo. A norma IEEE Std 829-1998 descreve um conjunto de oito documentos básicos de teste de software, que devem ser gerados na atividade de gerência do teste de software. Esta documentação cobre desde a preparação até o registro dos resultados. A metodologia de teste que será descrita a seguir, é baseada principalmente na produção da documentação descrita por esta norma. E as atividades relacionadas em cada fase do processo de teste, terão como objetivo principal a geração e manutenção da documentação prevista pela norma. A norma separa as atividades de teste em três etapas: preparação, execução e registro do teste. Mas para uma melhor distribuição das atividades envolvidas, Trayahú Moreira Filho, em seu livro Teste de Software, propõe uma metodologia dividida em seis partes; sendo que as quatro primeiras são voltadas a preparação, a quinta é direcionada para a execução e a sexta a finalização do teste. Estas etapas são: • Planejamento • Procedimentos iniciais • Preparação • Especificação • Execução • Entrega Mas para que o processo atenda os documentos da norma IEEE Std 829- 1998, devem ser criados os seguintes documentos: • Plano de testes • Especificação do projeto de teste 24
  25. 25. • Especificação dos casos de teste • Especificação dos procedimentos de teste • Relatório de encaminhamento dos itens de teste • Diário do teste • Registro de incidentes de teste • Relatório resumo de teste 4.2 DESCRIÇÃO DAS ETAPAS DE TESTE Para entender melhor cada etapa de teste, elas foram divididas em subetapas. Cada subetapa agrupa atividades comuns que produzem um determinado artefato. Cada uma destas subetapas é composta pelos seguintes itens: • Insumos – são os itens que são pré-requisitos para a realização da subetapa. • Produtos – são os documentos gerados pela subetapa. • Atividades – tarefas que precisam ser realizadas para conseguir gerar os produtos esperados. Nas atividades de teste descritas por Trayahú Moreira Filho, foram feitas algumas alterações a fim de se gerar todos os documentos propostos pela norma IEEE a que se foi proposto 4.2.1 Procedimentos iniciais O projeto de teste se inicia com a análise dos requisitos de negócio. E através deste estudo deverá ser criado um documento guia para a execução do processo de teste. Com estes dados iniciais já é possível prever uma lista de atividades de teste, necessidades de recursos de pessoal e ambiente. 4.2.1.1 Elaborar o Guia Operacional de Testes Produto 25
  26. 26. • Guia Operacional de teste (termo utilizado por Trayahú Moreira Filho, descrito no anexo 11) Insumos • Requisitos do negócio • Modelos de dados • Diagramas de fluxo de dados • Diagramas de contexto Atividades • Planejar as atividades sobre os requisitos de negócio e fazer a sua análise. • Identificar os riscos que envolvem os requisitos de negócio. • Fazer entrevistas com a equipe de desenvolvimento. • Estabelecer datas para a elaboração do plano de teste e projeto de teste. • Elaborar o documento Guia Operacional de Teste 4.2.2 Planejamento O objetivo desta etapa é o de elaborar o projeto de plano de testes e o projeto de testes. Sua finalidade é diminuir os riscos do negócio e direcionar as próximas atividades do teste. 4.2.2.1 Elaborar o Plano de Testes Produtos • Plano de testes Insumos • Guia operacional de teste – GOT • Planejamento do sistema que está sendo desenvolvido Atividades • Identificar o tamanho em pontos de função, ou outra medida, do sistema a ser testado. • Relacionar as atividades de testes, indicando as datas de início e término, por subsistema ou módulo para , pelo menos, os seguintes testes: 26
  27. 27. Testes Unitários, Integração, Testes de Sistema, Testes de Aceitação. • Caracterizar as medições para calcular os indicadores de qualidade e desempenho. • Prever os recursos (hardware,software, pessoal, ambiente) e a estratégia para a sua obtenção e capacitação (ver a etapa de preparação). • Definir a alocação de responsabilidades para as atividades e testes específicos. • Definir a necessidade de dados para testes. • Definir os relatórios de acompanhamento do processo de testes e de controle de correções de defeitos, caso sejam necessários outros relatórios além daqueles já padronizados. • Definir as regras para a classificação dos defeitos e da sua severidade, caso já não estejam padronizados. • Identificar os riscos do projeto. • Elaborar o Plano de Testes. • Alinhar o Plano de Testes ao Planejamento do Sistema. • Planejar o cronograma de testes. • Aprovar o Plano de Testes. 4.2.2.2 Elaborar o projeto de testes Produtos • Especificação do projeto de teste • Análise de riscos do projeto de testes. Insumos • Plano de teste • Guia operacional de teste – GOT Atividades • Elaborar a análise de riscos do projeto de testes. • Analisar os requisitos do sistema. • Analisar os diagramas do sistema a fim de entender as tecnologias envolvidas 27
  28. 28. • Planejar os tipos de testes que serão realizados (testes estáticos e dinâmicos, teste unitário, teste de integração, teste de sistema, teste de aceitação) • Identificar as técnicas estruturais ou funcionais que serão executadas. • Definir a infra-estrutura necessária. • Dividir o teste de acordo com os módulos do sistema • Construir documento de Projeto de testes. 4.2.3 Preparação O objetivo principal desta etapa é preparar o ambiente para a realização dos testes. As necessidades de equipamentos, pessoal, ferramentas de automação, hardware e software são levantadas e planejadas. 4.2.3.1 Adequar o projeto de testes à Gerência de Configuração e/ou de controle de mudanças Produto • Registro e controle das diversas versões do produto:funcional, desenvolvimento, produto e operacional Insumos • Arquitetura do ambiente de desenvolvimento • Arquitetura do ambiente de produção • Ferramentas e procedimentos de Gerência de Configuração e de mudança Atividades • Definir o nível de controle de versão e controle de mudanças necessárias para o projeto. • Definir os perfis de acesso. • Definir processos de sincronização entre a equipe do projeto e a equipe de testes. • Disponibilizar o processo/ferramenta. • Definir o baseline (grupo de produtos) do projeto de testes. 28
  29. 29. 4.2.3.2 Disponibilizar infra-estrutura e ferramentas de teste Produtos • Infra-estrutura e ferramentas de teste disponíveis para a equipe de testes Insumos • Projeto de testes • Arquitetura básica do ambiente • Arquitetura do ambiente de produção • Ferramentas de teste Atividades • Instalar hardware e software necessários. • Instalar ferramentas de testes a serem utilizadas. • Configurar ambiente conforme necessidades do projeto. • Estabelecer perfis de atualização. • Disponibilizar para a equipe do projeto. • Resolver problemas referentes a acessos a informações ou processos. • Definir a origem da massa de testes e a forma de sua dispinibilização. • Preparar os ambientes de teste em conformidade com o ambiente real onde o sistema será processado. 4.2.3.3 Disponibilizar pessoal Produto • Equipe de testes definida e capacitada Insumos • Projeto de Testes • Plano de Testes • Ferramentas de Testes • Descrição do ambiente de testes Atividades 29
  30. 30. • Avaliar o projeto e o plano de testes. • Levantar as características do ambiente de teste. • Levantar as características das ferramentas a serem utilizadas. • Avaliar a disponibilidade e a experiência da equipe de teste do projeto. • Avaliar as necessidades de treinamento. • Capacitar a equipe de testes, se necessário. • Avaliar o tamanho do sistema em pontos de teste ou em outra métrica adotada para a organização. 4.2.4 Especificação Nesta fase são elaborados os casos de teste e os roteiros de teste. Estes roteiros são elaborados a medida que os itens do projeto sejam disponibilizados para a equipe de teste. 4.2.4.1 Elaborar casos de testes Produtos • Casos de Testes • “Scripts” de testes • Especificação das necessidades de dados de testes Insumos • Projeto de Testes • Plano de Testes • Documentação técnica do sistema • Necessidades de dados de teste • Posição quanto aos testes já realizados Atividades • Elaborar Casos de Testes. • Ajustar Casos de Testes existentes. 30
  31. 31. • Preparar “Scripts” de testes (se usar ferramenta automatizada). • Especificar as necessidades de dados de testes. • Revisar os Casos de Testes. 4.2.4.2 Elaborar Roteiros de Teste Produtos • Roteiros e procedimentos de testes Insumos • Casos de testes • Planos de Testes • Fluxo de execução dos programas previsto pela equipe de desenvolvimento Atividades • Elaborar os Roteiros de Testes • Analisar o Fluxo de execução dos programas ou os Casos de Usos. • Compatibilizar o fluxo ou os Casos de Usos com os Casos de Testes. • Revisar os Roteiros de Testes. 4.2.5 Execução O objetivo desta fase é a execução dos testes planejados na fase de especificação. Nesta fase os testes são executados e os seus resultados registrados. 4.2.5.1 Preparar dados de testes Produtos • Bases/Arquivos de teste disponíveis Insumos • Casos de Testes • “Scripts” de Testes 31
  32. 32. • Roteiros de Testes • Documentação do sistema • Especificação das necessidades de dados de testes • Processo de criação de bases e/ou arquivos de teste Atividades • Levantar disponibilidade das bases de dados ou arquivos de testes. • Definir o processo de captura de dados. • Elaborar os procedimentos necessários a disponibilização das bases de dados ou arquivos. • Acordar com os usuários os dados que serão utilizados nos testes. • Acertar com os usuários a condução dos testes em função dos dados a serem utilizados. • Testar a base de dados de teste. 4.2.5.2 Executar testes Produtos • Resultado dos testes • Relatório de incidentes de teste • Ajustes no material de testes Insumos • Relatório de encaminhamento de itens de teste • Roteiros de Testes • Casos de Testes • “Scripts” de Testes • Resultados esperados Atividades • Executar os Roteiros de Testes, Casos de Testes e “Scripts” de Testes previstos. • Examinar os resultados obtidos versus os resultados esperados. • Emitir relatório de defeitos encontrados. 32
  33. 33. • Registrar os defeitos encontrados. • Acertar com os usuários a execução e condução dos testes. • Submeter aos usuários os resultados de testes. • Caso seja constatado algum defeito nos Casos de Testes, Roteiros de Testes, “Scripts” de Testes e/ou Resultados esperados, efetuar as correções devidas. 4.2.5.3 Solucionar ocorrências de testes Produtos • Relatório de defeitos encontrados com status resolvido ou a avaliar Insumos • Relatório de Defeitos com status a resolver • Resultados dos testes Atividades • Analisar os Relatórios de Defeitos encontrados e os Resultados de Testes correspondentes. • Identificar o módulo/programa/compontente que originou a ocorrência. • Identificar e corrigir o problema no módulo/programa/compontente. • Disponibilizar nova versão do módulo/programa/compontente na ferramenta de gerência de configuração. • Atualizar o Relatório de Defeitos encontrados com o status correspondente. • Corrigir os “Scripts” de testes e/ou Casos de Testes, se for o caso. 4.2.5.4 Acompanhar a execução dos casos de testes Produtos • Diário de testes Insumos • Relatório de defeitos(resumo) • Resultado dos testes(resumo) • Projeto de teste 33
  34. 34. • Plano de testes • Casos de testes • Roteiros de testes Atividades • Obter os Relatórios de Defeitos encontrados (resumo). • Elaborar totalizações, relatórios, documentos e gráficos pertinentes conforme o Projeto de Testes do projeto. • Elaborar relatório de Análise dos Resultados de Testes. • Submeter os Resultados de Testes aos usuários e desenvolvedores. • Disponibilizar e divulgar o relatório. 4.2.5.5 Elaborar relatório final Produtos • Relatório resumo dos testes Insumos • Análise dos resultados do teste • Projeto de teste • Resultados de testes • Relatórios de defeitos – resumo • Plano de Testes Atividades • Avaliar o grau de cumprimento dos objetivos dos testes definidos no Projeto de teste e nos Planos de Testes. • Elaborar o Relatório Final. • Dimensionar o tamanho final do projeto de teste em Pontos de Testes ou em outra métrica usada na organização. • Buscar o tamanho final do sistema que foi testado, junto à equipe de desenvolvimento. 34
  35. 35. • Realizar reunião formal junto às áreas envolvidas visando a terminar o projeto de testes. • Avaliar o nível de criticidade dos defeitos encontrados e alinhavar possíveis ações de melhoria de qualidade. 4.2.6 Entrega Nesta etapa encerra-se o projeto de testes. A documentação é arquivada e as informações relevantes à melhoria do processo ou pendências são reportadas. 4.2.6.1 Avaliação e Arquivamento da Documentação Produtos • Relatórios de não conformidade • Relatório final de testes • Documentação arquivada Insumos • Documentos de testes Atividades • Avaliar toda a documentação do processo de testes. • Arquivar a documentação do processo de testes. • Elaborar relatório de não conformidades e de conformidades, se for o caso. • Elaborar relatório final de testes. • Avaliar os indicadores de testes. 4.3 ALINHAMENTO COM O PROCESSO DE DESENVOLVIMENTO Durante o processo de teste, existem diversas tarefas que dependem de informações da equipe de desenvolvimento, e da mesma forma, o desenvolvimento também necessita dos dados gerados pelo teste. Estas informações são importantes 35
  36. 36. para que se possa dar continuidade as suas tarefas, ou que os desvios encontrados sejam corrigidos o mais rápido possível. Devido a isto é necessário que as duas equipes conheçam claramente estes pontos de ligação. Os seus cronogramas devem estar sincronizados, para que não haja perdas de recursos ou tempo gerados por estas dependências. Assim que uma destas informações ou produtos estiverem finalizados, a outra equipe deve ser avisada para que possa usufruir destes resultados. Na figura 3 é mostrado o relacionamento entre os dois processos. 36
  37. 37. Figura 3 – Processo de desenvolvimento e processo de teste 37
  38. 38. 5. DISCUSSÃO DOS RESULTADOS Através deste trabalho, notamos a complexidade que o processo de teste possui. E que para que ele tenha êxito, é fundamental que as etapas de planejamento sejam elaboradas com muito critério e detalhamento. Além disto, as atividades de teste devem estar alinhadas com o processo de desenvolvimento. Se não houver esta cooperação entre as equipes o processo pode não ter êxito. E para que o processo ocorra de modo organizado, deve ser dado ênfase ao preenchimento correto e pleno da documentação referente a cada etapa do teste. 38
  39. 39. 39
  40. 40. 6. CONCLUSÃO 6.1 SÍNTESE DO PROJETO Através da pesquisa feita através de livros e da Internet, foram reforçados os conceitos essenciais para a atividade de teste. E após esta análise vimos a importância que possui a norma IEEE Std 829-1998 para o processo. Com base nisto foram listadas todas as atividades necessárias para se preencher corretamente as documentações citadas. E para dar um apoio no uso da metodologia descrita, foram construídos modelos todos os modelos descritos pela norma. Antes de encerrar o projeto, foi feito um paralelo do processo de teste com o de desenvolvimento. Para reforçar os pontos onde o teste interage com o desenvolvimento. Desta forma, conseguimos descrever os processos, suas atividades, e a documentação necessária para a gestão do setor de testes. 6.2 CONTRIBUIÇÕES Podemos citar as seguintes contribuições deste trabalho: • O levantamento da importância da norma IEEE Std 829-1998, como base para a construção de um processo de software. • A elaboração de um roteiro para que se possa estruturar e coordenar uma equipe de testes. 6.3 LIMITAÇÕES Apesar deste trabalho ainda não ter sido aplicado em um projeto real, podemos verificar que as atividades levantadas contribuem para a produção dos documentos descritos pela norma IEEE Std 829-1998. 40
  41. 41. Para que uma pessoa possa executar as atividades contidas nesta pesquisa, é necessário ter conhecimento das técnicas de teste e suas aplicações, o que não foi visto em detalhes neste trabalho. 6.4 PESQUISAS FUTURAS Este trabalho visou mais o aspecto administrativo do processo de teste. Por isso, possíveis complementações deste projeto poderiam focar na execução do teste propriamente dito. As sugestões das pesquisas seriam: • Estudo das técnicas de teste e como aplicá-las • Elaboração de casos de teste • Testes automatizados • Execução de teste para aplicações WEB. 41
  42. 42. 7. REFERÊNCIAS Beizer, Boris. Black-Box Testing: techniques for funcional testing of software and systems. New York: Wiley, 1995. NOBIATO CRESPO, Adalberto. Uma Metodologia para Teste de Software no Contexto da Melhoria de Processo. Campinas. Disponível em: <http://bibliotecadigital.sbc.org.br/download.php?paper=254> HETZEL, Bill. The Complete Guide to Software Testing. 2ª Edição. John Wiley & Sons, 1988. The Institute of Electrical and Electronics Engineers. IEEE Std 829: Standard for Software Test Documentation. New York: IEEE Computer Society, 1998. The International Organization for Standardization and The International Electrotechnical Commission. ISO/IEC 9126-1 Product Quality. 1ª Edição, 2001. Moreira Filho, Trayahú R. TESTE DE SOFTWARE. 5ª Edição. Alta Books Ltda, 2003. Pressman, R. Engenharia de Software. 5ª Edição. Mc GrawHill, 2002. PRESSMAN, R. S. Engenharia de Software. 5ª Edição. Rio de Janeiro: Mc Graw- Hill, 2002. MYERS, G.J. The Art of Software Testing. 1ª Edição. New York: Wiley, 1979, 177p. 42
  43. 43. ANEXO 1 – DOCUMENTOS DE TESTE SEGUNDO A NORMA IEEE STD 829-1998 1 Plano de teste Descrever o escopo, métodos, recursos, e calendário das atividades de teste. Identifica os itens a serem testados, as características a serem testadas, as tarefas de teste a serem realizadas, o responsável por cada tarefa, e os riscos associados ao plano de testes. Um plano de teste deve possuir a seguinte estrutura: a) Identificador do plano de teste b) Introdução c) Itens de teste d) Características que serão testadas e) Características que não serão testadas f) Metodologia g) Critérios de aceitação h) Critério de suspensão e requerimentos de reinicialização i) Produtos de teste j) Atividades de teste k) Necessidades do ambiente l) Responsabilidades m) Necessidades de contratação e treinamento n) Cronograma o) Riscos e contingências p) Aprovações. 2 Especificação do projeto de teste Para especificar os refinamentos da metodologia de teste e identificar os componentes a serem testados no projeto e seus testes associados. O projeto de teste deve ter a seguinte estrutura: a) Identificador do projeto de teste b) Componentes a serem testados c) Refinamentos da metodologia d) Identificação dos testes e) Critérios de aceitação 43
  44. 44. 3. Especificação do caso de teste Definir um caso de teste identificado por um projeto de teste Um caso de teste deve conter a seguinte estrutura: a) Identificador da especificação do caso de teste b) Itens de teste c) Especificações de entrada d) Especificações de saída e) Necessidades de ambiente f) Requerimentos de procedimentos especiais g) Dependencia de outro caso de teste. 4 Especificação de procedimento de teste Especificar os passos para execução de um conjunto de casos de teste. São os passos usados para analisar um item de software em ordem para avaliar as suas características. Um procedimento de teste deve conter a seguinte estrutura. a) Identificador da especificação do procedimento de teste b) Propósito c) Requerimentos especiais d) Passos para executar o procedimento 5 Relatório de encaminhamento de item de teste Identificar os itens de teste que estão sendo enviados para o teste. Inclui a pessoa responsável por cada item, sua localização física e seu status. As variações entre o requerimento do item corrente e o projeto são registrados neste relatório. Um relatório de entrega de item de teste deve ter a seguinte estrutura: a) Identificador do relatório de encaminhamento de item de teste b) Itens entregues c) Localização d) Status e) Aprovações 6 Diário de teste 44
  45. 45. Fornecer um registro cronológico dos detalhes relevantes sobre a execução dos testes. O diário de teste deve ter a seguinte estrutura: a) Identificador do diário de teste b) Descrição c) Atividades e eventos de entrada 7 Relatório de incidente de teste Documentar qualquer evento que ocorra durante o processo de teste que requeira investigação. Um relatório de incidente de teste dever ter a seguinte estrutura: a) Identificador do relatório de incidente de teste b) Sumário c) Descrição do incidente d) Impacto 8 Relatório resumo de teste Sumarizar os resultados das atividades designadas para o teste e fornecer avaliações baseadas nestes resultados. Um sumário de relatório de teste deve ter a seguinte estrutura: a) Identificador do relatório resumo de teste b) Sumário c) Variações d) Avaliação detalhada e) Sumário dos resultados f) Avaliação g) Sumário das atividades h) Aprovações 45
  46. 46. ANEXO 2 - CARACTERÍSTICAS E SUBCARACTERÍSTICAS SEGUNDO A ISO/IEC 9126-1 Características Subcaracterísticas Descrição Funcionalidade Adequação Presença de conjunto de funções e sua apropriação para as tarefas Acurácia Geração de resultados ou efeitos corretos Interoperabilidade Capacidade de interagir com outros sistemas Conformidade Estar de acordo com normas, convenções, regulamentações Segurança de acesso Capacidade de evitar acesso não autorizado a programas e dados Confiabilidade Maturidade Freqüência de falhas Tolerância a falhas Manter nível de desempenho em caso de falha Recuperabilidade Capacidade de se restabelecer e restaurar dados após falhas Usabilidade Inteligibilidade Facilidade de entendimento dos conceitos utilizados Apreensibilidade Facilidade de aprendizado Operacionabilidade Facilidade de operar e controlar a operação Eficiência Comportamento em relação ao tempo Tempo de resposta, de processamento. Comportamento em relação a recursos Quantidade de recursos utilizados Manutenibilidad e Analisabilidade Facilidade de diagnosticar deficiências e causas de falhas Modificabilidade Facilidade de modificação e remoção de defeitos Estabilidade Ausência de riscos de efeitos inesperados Testabilidade Facilidade de ser testado Portabilidade Adaptabilidade Capacidade de ser adaptado a ambientes diferentes Capacidade para ser instalado Facilidade de instalação Conformidade Acordo com padrões ou convenções 46
  47. 47. de portabilidade Capacidade para substituir Substituir outro software 47
  48. 48. ANEXO 3 – MODELO DE PLANO DE TESTE Empresa Projeto Versão Data PLANO DE TESTE Objetivo: descrever o escopo, métodos, recursos, e calendário das atividades de teste. Identifica os itens a serem testados, as características a serem testadas, as tarefas de teste a serem realizadas, o responsável por cada tarefa, e os riscos associados ao plano de testes. Identificador Introdução Sumariza os itens de software e as características que serão testadas. A necessidade para cada item e seu histórico pode se incluído neste item. Referência aos seguintes documentos, quando existirem: • Autorização do projeto • Plano do projeto • Plano de qualidade • Plano de gerenciamento de configuração • Políticas relevantes • Padrões relevantes. Identifica os itens de teste incluindo seu nível de versão e revisão. Também especifica as características de transmissão de mídia que impactam nos requerimentos de hardware ou indicam a necessidade de transformações lógicas ou físicas antes do inicio dos testes (Ex: programas que precisam ser transferidos de fita para disco). Itens de teste Item Versão Descrição Referências a fontes dos seguintes itens de documentação, se existirem: especificação de requerimento, especificação de projeto, guia de usuário, guia de operação, guia de instalação. Referências Documento Data de criação Fonte de origem Características que serão testadas e características que não serão testadas. Identifica todas as características de software e combinações a serem testadas. Identifica o a especificação do projeto de teste associada a cada característica e cada combinação de características. Características Característica Descrição Sim Não Funcionalidade Evidenciar que o conjunto de funções atendem às necessidades explícitas e implícitas para a finalidade a que se destina o produto. Confiabilidade Evidenciar que o desempenho se mantém ao longo do tempo e em condições estabelecidas. Usabilidade Evidenciar a facilidade para a utilização do software Eficiência Manutenibilidade Evidenciar que há facilidade para correções, atualizações e alterações. Portabilidade Evidenciar que é possível utilizar o produto em diversas plataformas com pequeno esforço de adaptação. 48
  49. 49. Estágios do teste Característica Descrição Sim Não Teste Unitário Validar individualmente cada um dos componentes utilizados na implementação das funcionalidades do sistema. São realizados ao longo do fluxo de implementação. Teste de Integração Validar a integração entre componentes e pacotes desenvolvidos para implementação das funcionalidades do sistema. São realizados ao longo do fluxo de implementação após os testes unitários e integração dos componentes. Teste de Sistema Validar se todos os elementos do sistema foram adequadamente integrados e estão de acordo com os requisitos especificados. São realizados pela equipe de desenvolvimento, no fluxo de testes, conforme definido no Plano. Teste de Aceitação Validar se o sistema está de acordo com os requisitos especificados. O teste de aceitação deverá ser realizado pelo cliente em ambiente de homologação e seu sucesso indica que o sistema está pronto para ser posto em produção. Especifica os critérios para determinar quando um teste passou ou falhou Critérios de aceitação Item de teste Descrição dos critérios Especifica os critérios utilizados para suspender ou reiniciar um teste ou parte dele. Especifica as atividades de teste que precisarão ser repetidas, quando o teste for reiniciado. Critério de suspensão e requerimentos de reinicialização Identifica os documentos que serão gerados pelo processo de teste. Os seguintes documentos poderão se incluídos: Produtos Característica Sim Não Plano de teste Especificações do projeto de teste Especificações dos casos de teste Especificações dos procedimentos de testes Relatórios de encaminhamento de itens de teste Diário de teste Relatórios de incidentes de teste Relatórios de resumo de teste Identifica o conjunto de tarefas necessárias para realizar o teste. Identifica todas as dependências entre as tarefas e as habilidades requeridas para cada uma delas. Tarefas e cronograma Código Descrição da tarefa Dependências Observações Responsável Data 49
  50. 50. Especifica as propriedades desejadas e necessárias para o ambiente de teste. Esta especificação deve conter as características físicas dos aparatos, incluindo hardware, comunicações e sistemas de software, seu modo de uso, e qualquer outro software ou necessidade para suportar os testes. Também especifica o nível de segurança que deve ser fornecido pelos aparatos de teste, softwares de sistemas, e componentes proprietários como software, dados e hardware. Identifica as ferramentas de teste necessárias Necessidades do ambiente Item Descrição Hardware Software Segurança Ferramentas Responsabilidades Identifica os grupos responsáveis por gerenciar, projetar, preparar, executar, verificar e resolver. Em adição, identifica os grupos responsáveis por fornecer itens de teste indicados nas necessidades de ambiente. Estes grupos podem ser desenvolvedores, testadores, operadores, representantes de clientes, suporte técnico, gerência, administradores de dados e suporte de qualidade. Grupo Tarefa Gerenciar Projetar Preparar Executar Verificar Resolver Desenvolvedor Testador Operador Cliente Suporte Gerência Admin. BD Qualidade Necessidades de contratação e treinamento Especifica contratações de pessoal necessárias e as habilidades. Identifica necessidades de treinamento para fornecer as habilidades necessárias. Contratação Grupo Função Habilidades necessárias Quantidade Treinamentos Grupo Treinamento Habilidades necessárias Quantidade 50
  51. 51. Riscos e contingências Identifica os riscos associados a plano de teste. Especifica os planos de contingência para cada possível atraso do cronograma. Riscos e contingências Risco Gravidade Contingência Aprovações Especifica os nomes e cargos de todas as pessoas que precisam aprovar o plano de teste. Fornece espaço para assinaturas e datas. _______________________________________ _________________ Gerente do Teste Data _______________________________________ _________________ Gerente do Desenvolvimento Data ______________________________________ _________________ Gerente de Qualidade Data 51
  52. 52. ANEXO 4 - MODELO DE PROJETO DE TESTE Empresa Projeto Versão Data PROJETO DE TESTE Objetivo: Para especificar os refinamentos da metodologia de teste e identificar os componentes a serem testados no projeto e seus testes associados. Identificador Identifica os itens de teste incluindo seu nível de versão e revisão. Itens de teste Item Versão Descrição Metodologia Cód. item Fase Tipo Estágio Abordagem Técnica Item a ser testado ou validado Fase do projeto Tipo de teste Estágio de teste Caixa preta / caixa branca Automática / Manual Identificação dos testes Lista o identificador e uma breve descrição de cada caso de teste associado a este projeto. Casos de teste Cód. item Descrição 52
  53. 53. ANEXO 5 - MODELO DE CASOS DE TESTE Empresa Projeto Versão Data CASO DE TESTE Objetivo: Definir um caso de teste identificado por um projeto de teste. Identificador Identifica os itens de teste incluindo seu nível de versão e revisão. Itens de teste Cód. Item Nome Requisitos associados Código Nome do caso de teste Nome do caso de uso associado ou requisito Identificador Nome do caso de teste Descrição Descrição sucinta do caso de teste Responsável Responsável pela especificação do caso de teste Requisito Código do caso de uso ou requisito associado Tipo de teste Tipo de teste a ser realizado Abordagem Caixa-branca ou caixa-preta Técnica Automática ou manual Dados de teste Pré-condições Condição inicial exigida para execução do caso de teste Pós-condições Situação esperada após a execução do caso de teste Passos Descrição dos passo, incluindo referências aos procedimentos indicados 53
  54. 54. ANEXO 6 – MODELO DE PROCEDIMENTOS DE TESTE Empresa Projeto Versão Data PROCEDIMENTOS DE TESTE Objetivo: Especificar os passos para execução de um conjunto de casos de teste. São os passos usados para analisar um item de software em ordem para avaliar as suas características. Identificador Identificador do procedimento de teste Descrição Descrição sucinta do procedimento de teste. Indicando os casos de teste relacionados. Configuração do ambiente Ferramentas de apoio Dados necessários Tipo de teste a ser realizado Passos Descrição dos passos para execução do procedimento. Passo 1 Passo 2 Passo 3 Informações adicionais Registro Descreve métodos especiais ou formatos para registrar os resultados da execução do teste, os incidentes observados, e outros eventos pertinentes ao teste. Configuração Descreve a seqüência de ações necessárias para preparar a execução do procedimento. Inicialização Descreve as ações necessárias para iniciar a execução do procedimento. Medição Descreve como as medições do teste serão feitas Desligamento Descreve as ações necessárias para suspender o teste quando eventos não programados ocorrerem. Reinicialização Identifica um ponto para reiniciar o procedimento e descreve as ações necessárias para reiniciar o procedimento a partir do ponto de inicio. Parada Descreve as ações necessárias para fazer uma execução parar. Restauração Descreve as ações necessárias para restaurar um ambiente. Contingências Descreve as ações necessárias para lidar com anomalias que possam ocorrer durante a execução do procedimento. 54
  55. 55. ANEXO 7 - MODELO DE ENCAMINHAMENTO DE ITEM DE TESTE Empresa Projeto Versão Data ENCAMINHAMENTO DE ÍTEM DE TESTE Objetivo: Identificar os itens de teste que estão sendo enviados para o teste. Inclui a pessoa responsável por cada item, sua localização física e seu status. As variações entre o requerimento do item corrente e o projeto são registrados neste relatório. Itens entregues Item Versão Descrição Localização Status Observações Aprovações Especifica os nomes e cargos das pessoas que aprovaram a entrega do item. Fornece espaço para assinaturas e datas. _______________________________________ _________________ Responsável do teste pelo recebimento Data _______________________________________ _________________ Responsável pela entrega Data 55
  56. 56. ANEXO 8 - MODELO DE DIÁRIO DE TESTE Empresa Projeto Versão Data DIÁRIO DE TESTE Objetivo: Fornecer um registro cronológico dos detalhes relevantes sobre a execução dos testes. Testes Cód. Proc. Versão Descrição Responsável OK Data 56
  57. 57. Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes Cód. Procedimento Funcionários presentes Resultados do procedimento Informações do ambiente Eventos anormais Identificador relatórios de incidentes 57
  58. 58. ANEXO 9 - MODELO DE RELATÓRIO DE INCIDENTE DE TESTE Empresa Projeto Versão Data RELATÓRIO DE INCIDENTE DE TESTE Objetivo: Documentar qualquer evento que ocorra durante o processo de teste que requeira investigação. Identificador Sumariza o incidente. Identifica os itens de teste envolvidos e indica sua versão e revisão. Referencia a especificação do procedimento de teste, especificação do caso de teste, e diário de teste. SUMÁRIO Entradas Resultados esperados Resultados alcançados Eventos anormais Anomalias Data e hora Passos do procedimento Ambiente Tentativas de repetição Testadores Observadores Impacto 58
  59. 59. ANEXO 10 - MODELO DE RELATÓRIO RESUMO DE TESTE Empresa Projeto Versão Data RELATÓRIO RESUMO DE TESTE Objetivo: Sumarizar os resultados das atividades designadas para o teste e fornecer avaliações baseadas nestes resultados. Identificador Sumariza a avaliação dos itens de teste. Identifica os itens testados, indicando sua versão e revisão. Indica o ambiente aonde os testes foram feitos. SUMÁRIO Resultados Casos de teste Fase Iteração Teste OK Erro Falha Total Data Responsáveis Aprovações Especifica os nomes e cargos de todas as pessoas que aprovaram o relatório. Fornece espaço para assinaturas e datas. _______________________________________ _________________ Gerente do Teste Data _______________________________________ _________________ Gerente do Desenvolvimento Data ______________________________________ _________________ Gerente de Qualidade Data 59
  60. 60. ANEXO 11 – GUIA OPERACIONAL DE TESTE Resumo do documento descrito por Trayahú Moreira Filho, no seu livro Teste de Software. Objetivo Formalizar o acordo entre as partes envolvidas (desenvolvedores, testadores e usuários). Itens do documento a) Objetivos: definir as responsabilidades de cada um dos envolvidos e descrever o plano preliminar de trabalho. b) Líder do projeto de teste: indicar o líder do projeto de teste. c) Data: informar as datas de início é término da atividade. 60

×