Fuzzing
fuzz testing · fuzzer · mutation testing · coverage-guided fuzzing
A testing method that bombards software with unexpected, malformed or random data to trigger crashes that reveal security flaws.
In practice
A fuzzer generates millions of inputs (files, network requests, form fields) and watches the program: crashes, abnormal memory use, strange response times. Each anomaly is a clue to a vulnerability, such as a buffer overflow. Modern coverage-guided fuzzers learn which inputs explore new code paths. Built into the development pipeline, fuzzing finds flaws that neither code review nor conventional testing catch; attackers also use it to discover zero-days.
Fictional case: an invoicing software vendor points a fuzzer at its PDF import module. Overnight, it gets forty crashes, which boil down to three distinct bugs, one of them remotely exploitable. Fixed before the next release, they will never become zero-days.

