Skip to content
Latchkey

O Que É um Relatório de Code Coverage?

Um relatório de code coverage mede quanto do seu código seus testes realmente executam - linha por linha, branch por branch.

Testes que passam dizem o que foi verificado, não o que foi deixado de fora. A instrumentação de cobertura registra quais linhas e branches foram executados durante a rodada de testes e produz um relatório, para que você veja os cantos não testados da base de código.

Como a cobertura é coletada

Uma ferramenta de cobertura instrumenta seu código (ou seu bytecode) para registrar quais linhas e branches rodam enquanto os testes executam, e então emite um relatório - frequentemente em um formato padrão como LCOV ou Cobertura para que o tooling o consuma.

O que os números significam

  • Cobertura de linha: porcentagem de linhas executáveis que rodaram.
  • Cobertura de branch: porcentagem de branches de decisão tomados.
  • Cobertura de função: porcentagem de funções invocadas.

Um pequeno exemplo

Uma função com um if/else mostra 100% de cobertura de linha se um teste a executa uma vez, mas apenas 50% de cobertura de branch se nenhum teste exercita o else. A cobertura de branch expõe o caminho que seu número de cobertura de linha silenciosamente escondeu.

Os limites da cobertura

Cobertura alta significa que o código rodou, não que foi corretamente verificado por asserções. Um teste pode executar uma linha sem verificar seu resultado. A cobertura é um piso útil e um sinal de regressão, não uma prova de qualidade.

Cobertura como gate

Os times costumam usar a cobertura como gate - mas um "80%" genérico em uma base de código legada convida a manipulação. Usar como gate a cobertura das linhas alteradas ("não adicione código não testado") costuma ser um limiar mais honesto e acionável.

Principais conclusões

  • A cobertura mede qual código os testes de fato executam.
  • Cobertura de linha, de branch e de função respondem a perguntas diferentes.
  • A cobertura mostra o que rodou, não se foi corretamente verificado por asserções.

Guias relacionados