Are your tests good enough?
summary
Explains how mutation testing supplements code coverage by actually breaking code to see if tests catch it, using Golang examples and an automated mutator that generates mutants from the AST and reruns tests with killfast and profiling optimizations. Demonstrates 29 mutants giving 96.5% mutation score, then 100% after adding one test, shows a 0% score when tests assert nothing, warns of equivalent mutants requiring human review and long runs (2.7s tests × 200 mutants ≈ 9 minutes).
AI-written summary · about
chapters (23)
- 0:00Introduction
- 2:15Code and tests
- 5:24Code coverage limits
- 7:11Code coverage in Go
- 9:20Coverage isn't enough
- 10:45Mutation testing
- 12:13Mutants and score
- 14:02How tools work
- 15:49Mutation testing in Go
- 18:31Audience question on mutants
- 19:39Mutation testing quality
- 21:03Real-world mutation testing
- 22:28Equivalent mutants
- 23:11Equivalent mutants demo
- 24:36Refactoring mutants
- 26:26Performance challenges
- 28:10Tool optimizations
- 30:18Scaling mutation testing
- 31:19Practical approaches
- 32:00Mutation testing in TDD
- 33:27Targeted mutation testing
- 34:35Key takeaways
- 36:38Q&A
related talks
32mCAN WE WRITE PERFECT TESTS? - MAYBE!
29mKill All Mutants! (Intro to Mutation Testing)
01h 06mKill All Mutants! (Intro to Mutation Testing)
07mWho is Testing the Tests?
36mMutation Testing: Did my test break my code ? 🤔
35mKill All Mutants! (Intro to Mutation Testing)
24mGain more confidence in your code with mutation testing
26mMutation Testing
