Watch
Henry Coles, 2019. 41-minute talk.
The creator of PIT explains how mutation testing seeds small bugs to show which tests would miss them, and why line coverage alone cannot tell you that.
Katie Hockman, 2022. 24-minute talk.
The designer of Go's native fuzzing explains how coverage-guided fuzzing mutates inputs to find crashes in parsers, and introduces differential fuzzing as a way to get an oracle.
Read
Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do
Fred Hebert, 2019.
The most thorough book-length treatment of how to think in properties, write custom generators, read shrunk counterexamples and do stateful testing. The ideas carry over directly to fast-check and Hypothesis.
Andreas Zeller, Rahul Gopinath and 3 others, 2024. Free to read online.
A free, executable textbook that builds random, mutation-based, grammar-based and coverage-guided fuzzers from scratch, and explains what each one finds in malformed-input handling.
Introduction to Software Testing
Paul Ammann and Jeff Offutt, 2016, 2nd edition.
Defines coverage criteria (statement, branch, logic, mutation) formally, making clear what each criterion guarantees and what a high coverage number leaves untested.