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

🛡️ Validação de Software e Pipeline de Testes

A validação de software visa demonstrar que o sistema atende às especificações do usuário e é à prova de falhas. A técnica principal é o teste de software automatizado.

Não basta confiar no programador; se uma API Spring for para produção sem bater 80% de cobertura de código, é grande o risco de causar prejuízo aos clientes.


📊 Os Três Estágios do Teste (Sommerville, 2011)

Estágio ClássicoDescrição e Impacto no Ecossistema
Testes de Componente (Unidade)Focado em lógica isolada (Mocks). Ex: Testar um @Service sem bater no banco de dados real usando o JUnit 5 e o Mockito. Responde rápido, roda na hora.
Testes de Sistema (Integração)Encontra erros na junção. Ex: Injetar a injeção inteira do @SpringBootTest junto de um contêiner no Docker (Testcontainers) rodando um banco real. Lento, mas testa o mundo real.
Teste de Aceitação (Homologação)Valida com o cliente (Product Owner). A API é colocada num ambiente de Staging na AWS (PaaS) e testada.

graph LR
    C[JUnit: Teste Unitário] --> S[Integração CI: GitHub Actions]
    S --> A[Q.A. / Homologação]
    A -->|Sucesso Total| RL[Deploy Contínuo]
    
    style A fill:#c8e6c9,stroke:#2e7d32

[!IMPORTANT] 💡 Dica Corporativa (Validação vs Verificação):

  • Validação: Estamos construindo a API Certa? (O cliente precisava disso?).
  • Verificação: Construímos a API Corretamente? (Testes Unitários, Clean Code, Tratamento com @RestControllerAdvice). Não basta que funcione, tem que funcionar perfeitamente.