Skip to content
Latchkey

O Que É Mutation Testing?

O mutation testing avalia quão boa uma suíte de testes realmente é fazendo mudanças pequenas e deliberadas (mutations) no código e então rodando os testes para ver se eles falham. Uma mutation sobrevivente significa que os testes não detectaram aquela mudança, revelando uma lacuna. Ele mede a eficácia dos testes, não apenas quantas linhas eles tocam.

Por que isso importa

Alto code coverage pode esconder assertions fracas: um teste pode executar uma linha sem verificar seu resultado. O mutation testing expõe isso perguntando se os testes de fato perceberiam se o código estivesse quebrado, dando um sinal muito mais honesto da qualidade dos testes do que o coverage sozinho.

Conceitos relacionados

  • Mais rigoroso que o line coverage
  • Um mutant "morto" significa que um teste detectou a mudança
  • Computacionalmente caro, então frequentemente rodado seletivamente

Guias relacionados