Treinamento Definição de Casos de Teste Funcionais a partir de Casos de Uso Introdução Para que testar? Como testar? Existe técnica? Como repetir um conjunto testes? Programação Definições A técnica Exemplos Exercício Objetivo Gerar casos de teste funcionais a partir de casos de uso Registrar os casos de testes no artefato PCT-Planilha de Especificação de Testes Definição Um Caso de teste é um conjunto de entradas de teste, condições de execução e resultados esperados desenvolvidos para um objetivo específico como, por exemplo, testar o caminho de determinado programa ou verificar o cumprimento de um requisito específico Importância do Caso de Teste Os casos de teste são constituídos por um conjunto de dados de entrada necessários para a execução do software e os respectivos resultados esperados da execução, conforme definidos no requisito Representa um cenário de teste, uma situação diferenciada e única de comportamento no software, objetivando identificar defeitos ainda não descobertos Os casos de teste constituem a base do design e do desenvolvimento dos Scripts de Teste Importância do Caso de Teste A “profundidade” do teste é proporcional ao número de casos de teste. O aumento do número de casos de teste gera uma maior confiança na qualidade do produto e no processo de teste, já que cada caso de teste reflete um cenário, uma condição ou um fluxo diferente através do produto A principal avaliação da abrangência do teste é a cobertura baseada em requisitos, de acordo com o número de casos de teste identificados, implementados e/ou executados. Uma sentença como “Executamos e verificamos 95% dos casos de teste críticos” é mais significativa do que a sentença “Já executamos 95% do total de testes”. Critério de Teste baseado em caso de uso Um caso de uso representa uma seqüência especial de transações, realizadas entre um ator e um sistema, através de um diálogo Estrutura composta de: – Fluxo principal: descreve a seqüência normal de eventos que ocorre na execução do caso de uso (obrigatório); – Fluxo alternativo: descreve como as operações alternativas são tratadas (opcional); – Fluxo de exceção: descreve como as exceções são tratadas (opcional); Testes Funcionais Baseados em Casos de Uso Vantagens: – Fluxo de exceção: descreve como as exceções são tratadas (opcional); – Casos de uso são amplamente usados no mercado – Casos de uso refletem o ponto de vista dos usuários do sistema Desvantagem: – Não existe concordância sobre o nível de abstração que um caso de uso deva ter Definindo cenários de teste a partir de um caso de uso Etapa-1: Levantamento dos fluxos de eventos Etapa-2: Definição dos cenários de teste Etapa-3: Definição da tabela de casos de teste Etapa-4: Definição dos valores dos casos de teste Etapa-1: Levantamento dos fluxos de eventos Objetiva descrever os fluxos de eventos existentes para o caso de uso São descritos tanto o fluxo de evento principal quanto os fluxos alternativos e de exceção Etapa-1: Levantamento dos fluxos de eventos Etapa-2: Definição dos cenários de teste Objetiva obter o conjunto de cenários que serão usados nos testes Cada cenário é uma caminho possível dentro do fluxo do caso de uso Etapa-2: Definição dos cenários de teste Cenário Fluxo Cenário 1 Cenário 2 Cenário 3 Cenário 4 P1-P10 P1-P3 /A1.1-A1.5 P1-P3 / A1.1-A1.2 / E1.1-E1.2 P1-P7 / A2.1-A2.4 Cenário 5 P1-P7 / A2.1-A2.3 / E1.1-E1.3 Etapa-3: Definição da tabela de casos de teste Objetiva definir os casos de teste a partir dos cenários de teste identificados na segunda etapa Para cada cenário mapeado deve-se elaborar pelo menos um caso de teste com o objetivo de exercitar o caminho percorrido O caso de teste é composto por: – Uma descrição que relata o seu objetivo e sob qual condição ele é executado; – As entradas (valor ou domínio) necessárias para execução do caso de teste e – Quais os resultados esperados Etapa-3: Definição da tabela de casos de teste A partir dos cenários de teste identificados, monta-se uma tabela de casos de teste, onde a quantidade de casos de teste varia de acordo com as validações existentes nos cenários A união das informações desta tabela com os passos percorridos nos fluxos do casos de usos (resultado da tabela gerada na segunda etapa) produz a Planilha de Especificação de Testes. Etapa-3: Definição da tabela de casos de teste Caso de Uso Cenário de Teste Fluxo <Identificação do Cenário de Teste 1> <Passos percorridos para a definição do cenário de teste 1> <Identificação do Cenário de Teste 2> <Passos percorridos para a definição do cenário de teste 2> <Identificação do Cenário de Teste 3> <Passos percorridos para a definição do cenário de teste 3> <Identificação do Cenário de teste 4> <Passos percorridos para a definição do cenário de teste 4> <Identificação do caso de uso 1> <Identificação do caso de uso 2> Caso de Teste Entradas Resultados Esperados <Identificação e descrição do caso de teste 1> <Identificação e descrição do caso de teste 2> <Identificação e descrição do caso de teste 3> <Identificação e descrição do caso de teste 4> <Identificação e descrição do caso de teste 5> <Identificação e descrição do caso de teste 6> <Identificação e descrição do caso de teste 7> <Identificação e descrição do caso de teste 8> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 1> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 2> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 3> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 4> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 5> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 6> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 7> <Entradas (valor ou domínio) necessárias para execução do Caso de Teste 8> <Resultados Esperados com a execução do Caso de Teste 1> <Resultados Esperados com a execução do Caso de Teste 2> <Resultados Esperados com a execução do Caso de Teste 3> <Resultados Esperados com a execução do Caso de Teste 4> <Resultados Esperados com a execução do Caso de Teste 5> <Resultados Esperados com a execução do Caso de Teste 6> <Resultados Esperados com a execução do Caso de Teste 7> <Resultados Esperados com a execução do Caso de Teste 8> Exemplo