How to Design Tests? Strengthening the post-condition!
Fortalecendo a Pós-condição em Testes de Software
Importância da Pós-condição
- A pós-condição é fundamental para garantir que o estado do sistema após uma ação atenda a restrições específicas, aumentando as garantias sobre o resultado obtido.
- Um teste fraco pode fornecer evidências superficiais sobre o comportamento do sistema, necessitando de um fortalecimento das verificações para assegurar resultados mais robustos.
Exemplos de Verificações
- Para verificar se um relatório foi gerado, uma abordagem simples é checar a existência de um arquivo específico (ex: report.pdf) e confirmar que não está vazio.
- Melhorar a verificação envolve validar se o arquivo PDF é realmente válido e não apenas possui a extensão correta, evitando problemas com conteúdo corrompido.
Níveis de Verificação
- A verificação pode ser aprofundada ao confirmar que o conteúdo do relatório atende às expectativas do cliente, como a ausência de numeração nas páginas.
- Fortalecer as verificações implica garantir que os dados no relatório reflitam corretamente as médias e notas armazenadas no sistema.
Estratégias para Redução de Estados Possíveis
- O objetivo é fortalecer as verificações reduzindo os estados possíveis que satisfazem a pós-condição através da adição de regras ou restrições.
- É crucial equilibrar diferentes tipos de testes (unitários, integração), pois cada combinação tem seu propósito dependendo do contexto do sistema.
Independência dos Testes
- Cada teste deve ser independente; não deve depender da execução anterior para evitar efeitos colaterais indesejados entre testes.
- A independência permite que cada teste comece em um estado limpo, facilitando sua execução sem considerar estados deixados por testes anteriores.
Composição e Dependências nos Testes
- Dependências entre testes dificultam sua execução isolada; por exemplo, um teste de deleção pode depender da inserção prévia.
Eficiência e Testes de Regressão
Importância da Preparação para o Próximo Passo
- A eficiência em processos é crucial, especialmente quando um passo prepara o estado para o próximo. Isso implica que informações relevantes devem ser consumidas para implementar verificações ou ações de forma mais eficaz.
Princípio dos Testes de Regressão