Mutants to the rescue: How effective are your unit tests?
summary
Shows that 100% code coverage can hide useless tests by example: a ProposalService with three unit tests reaches 100% coverage while mutation testing finds 0 mutants killed, proving assertions are missing. Recommends Java tooling: JaCoCo for coverage, PIT (and Stryker for other languages) for mutation analysis, Maven plugins and Sonar integration, and practices like incremental analysis, multithreading and excluding generated or slow DB tests. Notes timeouts (default 1.5× original test time) and equivalent-mutant limits.
AI-written summary · about
chapters (10)
- 0:00Introduction and speaker intro
- 1:46What is software quality?
- 4:14Why write unit tests?
- 8:47Limitations of code coverage
- 13:25Introducing mutation testing
- 18:00Mutation testing tools
- 20:26Live demo of mutation testing
- 26:02Optimizing mutation testing
- 33:41When to use mutation testing
- 36:51Summary and tools overview
related talks
41mMutation testing in practice
50mFrom jUnit to Mutation-Testing
36mMutation Testing: Did my test break my code ? 🤔
24mGain more confidence in your code with mutation testing
27mRe-thinking Regression Testing
48mMutation Testing, or What Code Coverage Keeps Silent About
31mCan You Trust Your Tests?
41mMutation Testing with Mutant
