A software testing technique that involves providing invalid, unexpected, or random data to the inputs of a computer system, then monitoring for exceptions, failed assertions, or memory leaks.
Fuzzing is a software testing technique that involves providing invalid, unexpected, or random data to the inputs of a computer program, then monitoring for exceptions, failed assertions, or memory leaks. Fuzzing can be employed as part of white-, gray-, or black-box testing.
In the context of reverse-engineering, fuzzing is often used to discover undocumented features or functionalities, not to say backdoors.