Fuzzing, auch Robustness Testing, Fuzzy Testing oder Negative Testing, ist eine automatisierte Technik für Softwaretests, bei der das zu testende Programm an einer oder mehreren Eingabeschnittstellen immer wieder mit Zufallsdaten beschickt wird. Mit zufälligen Daten können meistens Situationen im Betrieb des Programms erzeugt werden, die mit anderen Testverfahren nicht erreicht werden. Programme sind häufig nicht auf beliebige Eingangsdaten ausgelegt und können dann bei nicht plausiblen Daten ungewollt abstürzen und damit auch Sicherheitslücken (engl. Vulnerabilities) offenbaren. Daher ist Fuzzing eine der wichtigsten Techniken von Sicherheitsspezialisten.
Das Fuzzing (Fuzz-Testing, nach dem englischen Wort fuzzy für „unscharf, verschwommen“) wurde an der Universität von Wisconsin-Madison 1989 von Barton Miller und seinen Studenten entwickelt.[1]