Análise e Modelagem de Teste (Cap. 4 CTFL)
Partição de Equivalência
A Partição de Equivalência (PE) divide os dados de entrada em grupos (partições) onde todos os valores do grupo devem se comportar da mesma forma. A ideia é que se um valor dentro da partição revela um defeito, todos os outros valores também revelariam — e vice-versa.
Isso permite reduzir drasticamente o número de casos de teste sem perder cobertura. Em vez de testar 100 valores numéricos válidos, você testa um representante de cada partição.
Exemplo: campo "Idade" que aceita valores entre 18 e 65 anos. Partições:
- Partição inválida: valores abaixo de 18 (ex: 17)
- Partição válida: valores entre 18 e 65 (ex: 30)
- Partição inválida: valores acima de 65 (ex: 66)
🎬 Partição de Equivalência
Análise de Valor Limite
A Análise de Valor Limite (AVL) complementa a PE focando nos limites das partições, onde defeitos se concentram com mais frequência. Desenvolvedores frequentemente erram nas condições de fronteira (usar < em vez de <=, por exemplo).
Para o CTFL v4.0, testamos os valores no limite e imediatamente além do limite (2 pontos por limite). Versões anteriores usavam 3 pontos (abaixo, no limite, acima).
Usando o mesmo exemplo de "Idade" (18-65):
- Limite inferior: testar 17 (inválido) e 18 (válido)
- Limite superior: testar 65 (válido) e 66 (inválido)
Resultado: 4 casos de teste cobrem os 4 pontos críticos da fronteira.
🎬 Análise de Valor Limite
Tabela de Decisão
A Tabela de Decisão é ideal para requisitos com múltiplas condições combinadas que geram diferentes ações. Ela mapeia sistematicamente todas as combinações possíveis de condições e seus resultados esperados.
Estrutura de uma tabela de decisão:
- Condições: as entradas ou estados do sistema (linhas superiores)
- Ações: os resultados esperados para cada combinação (linhas inferiores)
- Regras: cada coluna representa uma combinação de condições
Exemplo: sistema de desconto onde "Cliente Premium" E "Compra acima de R$500" dão 20% de desconto; apenas um dos dois dá 10%; nenhum dos dois dá 0%.
🎬 Tabela de Decisão
Teste de Transição de Estado
O Teste de Transição de Estado é usado quando o comportamento do sistema depende do seu estado atual. Sistemas com estados são representados por um diagrama de estados: círculos são estados, setas são transições disparadas por eventos.
Exemplo clássico: uma conta bancária tem estados (Ativa, Bloqueada, Encerrada). Cada transição (bloquear, desbloquear, encerrar) tem condições e ações associadas.
Cobertura em testes de transição de estado:
- Cobertura de todos os estados: visitar cada estado ao menos uma vez
- Cobertura de todas as transições válidas: exercitar cada transição permitida
- Cobertura de transições inválidas: verificar que transições proibidas são rejeitadas
🎬 Teste de Transição de Estado
Teste Caixa-Branca e Baseado em Experiência
O Teste Caixa-Branca (estrutural) usa o conhecimento da estrutura interna do código para criar casos de teste. A principal métrica é a cobertura de código:
- Cobertura de instruções: percentual de linhas de código executadas
- Cobertura de ramificações: percentual de branches (if/else, switch) exercitados — mais rigorosa
O Teste Baseado em Experiência usa o conhecimento e intuição do testador. As técnicas incluem:
- Suposição de Erros (Error Guessing): o testador usa sua experiência para supor onde defeitos provavelmente estão.
- Teste Exploratório: design e execução simultâneos, guiados pela aprendizagem contínua durante o teste.
- Teste Baseado em Checklist: uso de listas de verificação derivadas de experiências anteriores.
🎬 Teste Caixa-Branca e Baseado em Experiência
🧠 Teste seus conhecimentos
Um campo aceita idades entre 18 e 65 anos. Usando Análise de Valor Limite (2 pontos), quais valores devem ser testados no limite inferior?