Desenvolvimento de Sistemas Fluxo de Testes Alexandre Monteiro Fluxo de Testes Objetivo Avaliar o nível de qualidade do produto Verificar a correta integração entre todos os componentes de software; Verificar se todos os requisitos do sistema foram implementados corretamente; Planejar os testes que devem ser executados em cada iteração; Projetar e implementar os testes, definindo casos de teste; Identificar defeitos e assegurar que suas correções são prioritárias à entrega do produto. Relacionamento com os demais Fluxos No fluxo de planejamento e gerenciamento, os testes para cada iteração são planejados e documentados no plano da iteração; O fluxo de requisitos é o primeiro passo para a identificação dos testes que serão executados; O fluxo de análise e projeto descreve como desenvolver um projeto e isto é outro passo para a definição de testes; O alvo principal das atividades de teste é a aplicação do mesmo aos resultados da implementação. O que é um Modelo de Teste? Um modelo de teste consiste de: •Casos de teste •Procedimentos de teste Caso de teste Caso de teste OK Um caso teste pode ser implementado por um ou mais procedimentos. Saque de um valor pré-definido OK Saque de um valor digitado Procedimento de teste Um procedimento de teste implementa (todo ou parte de) um ou mais casos de teste. Use cases são a primeira entrada para identificar casos de teste. OK OK Finalizar saque Iniciar saque de valor pré-definido OK Finalizar saque de um valor digitado Caso e procedimento de teste em um Sistema ATM. Artefatos do Fluxo de Testes Projeto de Testes Plano de Testes Avaliação dos Testes Casos de Teste Componentes de Teste Log’s de Defeitos Procedimentos de Teste Plano de Testes Descreve as estratégias de teste, o esforço necessário para sua realização e seu cronograma; Na estratégia de teste estão definidos os tipos de teste que serão executados na iteração e os objetivos que devem ser atingidos. Plano de Testes 1 INTRODUÇÃO ________________________________________________________________ 3 1.1 VISÃO GERAL DESTE DOCUMENTO _________________________________________________ 3 1.2 REFERÊNCIAS ________________________________________________________________ 3 2 REQUISITOS A TESTAR _______________________________________________________ 3 2.1 IDENTIFICAÇÃO DOS REQUISITOS A TESTAR _________________________________________ 4 3 ESTRATÉGIA_________________________________________________________________ 4 3.1 3.2 3.3 3.4 4 RECURSOS ___________________________________________________________________ 5 4.1 4.2 4.3 4.4 5 ESTÁGIOS E TIPOS DOS TESTES ____________________________________________________ 4 TÉCNICA ____________________________________________________________________ 5 CRITÉRIOS DE CONCLUSÃO E SUCESSO______________________________________________ 5 CONSIDERAÇÕES ESPECIAIS ______________________________________________________ 5 RECURSOS HUMANOS __________________________________________________________ 5 AMBIENTE DE TESTE (HARDWARE E SOFTWARE) ______________________________________ 5 FERRAMENTAS________________________________________________________________ 5 DADOS ______________________________________________________________________ 6 CRONOGRAMA_______________________________________________________________ 6 Projeto de Testes É composto pelos casos e procedimentos de teste; Um caso de teste especifica uma maneira de testar o sistema: o que testar, quais os valores e pré-condições de entrada e os valores e pós-condições de saída; Um procedimento de teste especifica como realizar um ou diversos casos de teste. É um conjunto de instruções para execução e avaliação de resultados para um ou mais casos de teste, que podem ser efetivados manualmente ou através de ferramentas. Projeto de Testes 1 INTRODUÇÃO ________________________________________________________________ 3 1.1 VISÃO GERAL DESTE DOCUMENTO _________________________________________________ 3 1.2 REFERÊNCIAS ________________________________________________________________ 3 2 CASOS DE TESTE _____________________________________________________________ 4 2.1 IDENTIFICAÇÃO DOS CASOS DE TESTE ______________________________________________ 4 [CT001] <Nome do caso de teste> __________________________________________________ 4 [CT…] <Nome do caso de teste> ___________________________________________________ 4 3 PROCEDIMENTOS DE TESTE__________________________________________________ 5 3.1 IDENTIFICAÇÃO DOS PROCEDIMENTOS DE TESTE ______________________________________ 5 [ProcT001] <Nome do procedimento de teste> ________________________________________ 5 [ProcT…] <Nome do procedimento de teste> _________________________________________ 5 Avaliação dos Testes É uma avaliação dos resultados dos esforços do teste como, por exemplo, a análise da cobertura dos casos e procedimentos de teste Log’s de Defeito É um registro de um defeito encontrado ao ser executado um teste. Componente de Teste Automatiza um ou mais procedimentos de teste ou partes deles e pode ser desenvolvido usando-se uma linguagem de programação/script ou gerado através de uma interação com uma ferramenta de testes; Os componentes podem ser classes, pacotes, subsistemas ou scripts. Considerações Gerais sobre os Artefatos do Fluxo de Testes Devido à natureza iterativa do processo de desenvolvimento, muitos dos artefatos produzidos nas primeiras iterações como casos e procedimentos de teste são usados em iterações posteriores como testes de regressão. Artefatos x Responsáveis no Fluxo Simplificado de Testes Projetista de testes Testador de integração Testador de sistema Programador responsável por responsável por responsável por responsável por Plano de testes Projeto de testes Avaliação dos testes Log de defeitos de Log de defeitos Subsistemas, (casos e integração de sistema Componentes, Classes, procedimentos) Pacotes e Scripts de teste Visão Simplificada das atividades Projetista de Testes Elaborar PlanoProjetar Testes de Testes Testador de Integração Testador de Sistema Programador Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Implementar Testes Atividade do projetista de testes: Elaborar plano de testes Tem por objetivo documentar as informações relevantes ao planejamento dos testes para uma iteração. Elaborar plano de testes: entrada x saída Entrada: Documento de requisitos Modelo de casos de uso Saída: Plano de testes Elaborar plano de testes: passos Identificar requisitos a serem testados Definir prioridades Definir estratégias de testes Definir recursos Definir cronograma Notificar o gerente do projeto Visão das atividades Projetista de Testes Elaborar Plano Projetar Testes de Testes Testador de Integração Testador de Sistema Programador Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Implementar Testes Atividade do projetista de testes: Projetar testes Tem por objetivo identificar e descrever os casos de teste para cada build, e identificar e estruturar os procedimentos de teste, especificando como executar os casos de teste. Projetar testes: entrada x saída Entrada: Documento de requisitos Modelo de casos de uso Plano de testes Saída: Projeto de testes Plano de testes (atualizado) Projetar testes: passos Identificar e descrever casos de teste Identificar e estruturar procedimentos de teste Visão das atividades Projetista de Testes Elaborar Plano Projetar Testes de Testes Testador de Integração Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Testador de Sistema Programador Implementar Testes Atividade do programador: Implementar testes Tem por objetivo automatizar procedimentos de teste criando componentes de teste consistentes com os casos de teste associados. Implementar testes: entrada x saída Entrada: Projeto de testes Saída: Componentes de teste Implementar testes: passos Gerar componentes de teste Identificar funcionalidades específicas para teste nos modelos de projeto e implementação Definir conjunto de dados externos Visão das atividades Projetista de Testes Elaborar PlanoProjetar Testes de Testes Testador de Integração Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Testador de Sistema Programador Implementar Testes Atividade do testador de integração: Executar testes de integração Tem por objetivo executar testes de integração para cada build do sistema, avaliar seus resultados e registrar os defeitos encontrados. Executar testes de integração: entrada x saída Entrada: Plano de testes Projeto de testes Componentes de teste Saída: Log de defeitos de integração Executar testes de integração: passos Executar os procedimentos de teste Avaliar a execução dos testes Recuperar testes interrompidos Verificar os resultados Investigar os resultados inesperados Registrar defeitos encontrados Visão das atividades Projetista de Testes Elaborar Plano Projetar Testes de Testes Testador de Integração Testador de Sistema Programador Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Implementar Testes Atividade do testador de sistemas: Executar testes de sistema Tem por objetivo executar testes de sistema para o último build de cada iteração do sistema, avaliar seus resultados e registrar os defeitos encontrados. Executar testes de sistema: entrada x saída Entrada: Plano de testes Projeto de testes Componentes de teste Saída: Log de defeitos de sistema Executar testes de sistema: passos Executar os procedimentos de teste Avaliar a execução dos testes Recuperar testes interrompidos Verificar os resultados Investigar os resultados inesperados Registrar defeitos encontrados Visão das atividades Projetista de Testes Elaborar Plano Projetar Testes de Testes Testador de Integração Testador de Sistema Programador Avaliar Testes Executar Testes de Integração Executar Testes de Sistema Implementar Testes Atividade do projetista de testes: Avaliar testes Tem por objetivo medir quantitativamente o progresso dos testes e, opcionalmente, gerar um relatório de avaliação dos testes. Avaliar testes: entrada x saída Entrada: Plano de testes Projeto de testes Saída: Avaliação dos testes (opcional) Avaliar testes: passos Avaliar cobertura dos casos de teste Verificar se os critérios de completude e sucesso dos testes foram atingidos