🧪 1.21 Cobertura de Testes: Qualidade vs Métrica

A métrica de Cobertura de Código (Code Coverage) indica a porcentagem de linhas ou ramos executados pela sua suíte de testes. Ferramentas como JaCoCo geram relatórios detalhados que ajudam a encontrar “pontos cegos” no sistema.

🏗️ O Mito dos 100%

Embora pareça o objetivo ideal, buscar 100% de cobertura pode ser um esforço de baixo retorno (Low ROI).

  1. Getters e Setters: Testar métodos gerados automaticamente pela IDE ou pelo Lombok raramente revela bugs reais.
  2. Código de Infraestrutura: Algumas configurações de framework são melhor validadas por testes de integração ou fumaça.
  3. Complexidade Estrutural: Às vezes, o esforço para testar uma linha de log irrelevante é maior que o valor que esse teste agrega.

🎯 Onde Focar o Esforço?

PrioridadeTipo de CódigoDecisão Técnica
AltíssimaRegras de Negócio / AlgoritmosTeste 100% dos caminhos e exceções.
MédiaControladores / ServiçosTeste as integrações e fluxos principais.
BaixaPOJOs / Records / DTOsTeste apenas se houver lógica customizada.

📊 Quadrantes de Testabilidade

quadrantChart
    title Priorização de Testes
    x-axis Baixa Complexidade --> Alta Complexidade
    y-axis Baixo Risco --> Alto Risco
    "Logs / Config": [0.2, 0.2]
    "Getters / Setters": [0.2, 0.4]
    "Integração de APIs": [0.7, 0.8]
    "Regras de Negócio Críticas": [0.8, 0.9]

A Regra da Confiança 🛡️

O objetivo do teste não é bater uma meta numérica, mas dar à equipe a confiança necessária para fazer o deploy em plena sexta-feira à tarde sem medo. Use a cobertura como um guia para encontrar regiões arriscadas e não testadas. 🏁


Ferramental Moderno ⚡

Integre o JaCoCo ao seu pipeline CI/CD (GitHub Actions/GitLab CI) para bloquear builds que reduzam a cobertura média do projeto. Isso garante que a qualidade do sistema cresça junto com o código. 🚀


⬅️ Capítulo Anterior | Próximo Capítulo ➡️