Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🧪 Teste de Software e Automação

Testar é o processo de executar o software com a intenção deliberada de encontrar erros e validar o comportamento esperado. Na Engenharia moderna, os testes são, em sua maioria, automatizados.


🏛️ Pirâmide de Testes (Níveis)

Os testes são organizados por granularidade. Quanto mais baixo na pirâmide, mais rápido e barato é o teste.

graph TD
    A["📦 Teste Unitário - Ex: JUnit"] --> B["🔗 Teste de Integração"]
    B --> C["🛡️ Teste de Sistema/E2E"]
    C --> D["✅ Teste de Aceitação - UAT"]
    
    style A fill:#e3f2fd,stroke:#1e88e5
    style D fill:#f1f8e9,stroke:#558b2f

🏗️ Níveis de Validação

Nível de TesteO que validamos na prática?
📦 UnitárioO método ou a classe funciona isolada do resto do sistema? (Mocks/Stubs usados aqui).
🔗 IntegraçãoO Banco de Dados e as APIs de terceiros conversam corretamente com o nosso código?
🛡️ SistemaO fluxo completo do usuário (End-to-End) está estável no ambiente de Staging?
✅ AceitaçãoO cliente (Stakeholder) aprova a funcionalidade para subir em Produção?

[!IMPORTANT] 💡 Axiomas do Teste:

  • Testes mostram a presença de erros, nunca a sua ausência total.
  • É impossível realizar testes exaustivos (todas as combinações possíveis).
  • Princípio de Pareto: 80% dos defeitos estão concentrados em 20% das funcionalidades mais complexas. 🛡️