Kill All Mutants! (Intro to Mutation Testing)
summary
Explains mutation testing by making tiny code variants and running unit tests to see which variants are killed (cause failures) and which survive, with concrete examples: a power function where + and * mutants survive until targeted inputs are added, and a send_message loop where removing the loop survives, revealing redundant code. Claims tooling exists for Python, Ruby, JS, Java, C++, C#, LLVM languages; warns about CPU cost (example: ~1,000 mutants/function → ~17 minutes vs 10s) and common two‑thirds reductions.
AI-written summary · about
chapters (37)
- 0:00Intro
- 1:20Expectations
- 3:20Mutation Testing Qualities
- 4:20Mutation Testing Positives
- 4:50Mutation Testing Negatives
- 7:45How Does Mutation Testing Work
- 9:00SpiderMan
- 21:00Examples
- 23:30Surviving Mutants
- 24:30Kill Mutants
- 27:00Complex Example
- 28:30While Loop Once
- 29:00Not Testing
- 31:30Pseudocode
- 32:00Frequently Asked Questions
- 33:00Why is it so CPU intensive
- 33:30Unit tests
- 34:00Mutation testing
- 34:30Trimming down mutants
- 35:00Why change mutants in one way
- 35:30Swapping mutants
- 36:00Multiple mutations
- 37:00Individual tests
- 38:00All tests
- 38:30Summary
- 39:00Mutation Testing Tools
- 40:30Mutant
- 41:30Fails
- 43:00When
- 45:00Mutation Testing Report
- 46:00Switching Rooms
- 46:30From the Beginning
- 47:00Create Meaningful Tests
- 47:30Toy Project
- 48:00Test Coverage
- 50:30More Questions
- 51:30Outro
related talks
01h 06mKill All Mutants! (Intro to Mutation Testing)
50mKill All Mutants! Intro to Mutation Testing
21mKill All Mutants! (Intro to Mutation Testing)
39mKill All Mutants! (Intro to Mutation Testing)
47mKill All Mutants! (Intro to Mutation Testing)
22mKill All Mutants! (Introduction to Mutation Testing)
30mKill All Mutants! (Intro to Mutation Testing)
35mKill All Mutants! (Intro to Mutation Testing)
