Cap 17: Estratégias de Teste
🎯 Objetivo do Capítulo
Compreender a Pirâmide de Testes, diferenciando testes Unitários, de Integração e de Sistema, e aplicar os axiomas fundamentais da validação de software.
🏢 O Cenário Corporativo (TecProExpress QA)
Na TecProExpress, o time de desenvolvimento enviou uma atualização que quebrou o sistema de login em produção. O erro era simples, mas como ninguém testou, ele passou despercebido.
"Seu desafio é implementar a Pirâmide de Testes. Não aceitaremos mais códigos que não tenham cobertura de testes unitários. Você deve garantir que a base da pirâmide seja sólida para que possamos subir para a nuvem com confiança."
🧠 A Pirâmide de Testes
Os testes são organizados por granularidade. Quanto mais baixo na pirâmide, mais rápido e barato é o teste.
📊 Estrutura de Granularidade
| Nível de Teste | O que validamos na prática? |
|---|---|
| Unitário | O método ou a classe funciona isolada? (Base da pirâmide). |
| Integração | O Banco de Dados e as APIs conversam corretamente? |
| Sistema (E2E) | O fluxo completo do usuário está estável (Cypress/Selenium)? |
| Aceitação | O cliente aprova a funcionalidade para subir em Produção? |
🔍 Axiomas Fundamentais do Teste
- Presença de Erros: Testes mostram que existem erros, nunca que o sistema é 100% perfeito.
- Impossibilidade de Exaustão: Não dá para testar todas as combinações infinitas do mundo.
- Princípio de Pareto (80/20): 80% dos problemas estão concentrados em apenas 20% das funcionalidades mais complexas.
💡 Checkpoint de Lógica
Cap 16: Qualidade de Software (SQA)
Qualidade de software não é um acidente; é o resultado de esforço inteligente e processos bem definidos. No mundo corporativo, a qualidade é o que separa uma startup de fundo de quintal de uma empresa global de tecnologia. 🛡️🧩
Cap 18: Manutenção e Evolução
Após a implantação, o software entra em sua fase mais longa: a Evolução. Um sistema que não evolui torna-se obsoleto e morre. Na engenharia, chamamos isso de combate à Entropia de Software. 🛡️🧩