Por que 100% de cobertura não significa código bem testado
Pergunta
Cobertura de código é uma métrica útil, mas por que 100% de cobertura não garante que o código está bem testado?
Resposta esperada
Cobertura mede quais linhas/branches foram executados durante os testes, não se houve asserção significativa sobre o resultado. Dá pra ter 100% de cobertura com testes que só chamam as funções e não verificam nada, ou que verificam o trivial e ignoram os casos de borda (entrada vazia, nulo, limites, concorrência). Cobertura também não vê o que não existe: um caminho de erro que ninguém implementou não aparece como 'descoberto'. Serve bem como alarme no sentido inverso — cobertura caindo indica código novo sem teste — mas mirar um número alto vira incentivo a testes sem valor. Melhor usar como diagnóstico ('essa parte crítica está descoberta?') do que como meta.
Por que perguntam isso
Testa maturidade sobre métricas. Resposta forte distingue 'cobertura baixa é um sinal ruim' de 'cobertura alta é um sinal bom' — só a primeira é verdade.