Fuzz testing is a software testing technique using which a random data is given as the inputs to the system. If the application fails, then those issues/defects are to be addressed by the system. In short, unexpected or random inputs might lead to unexpected results.
Following are the key phases for fuzz testing:
Number/Character Fuzzing
Application Fuzzing
Protocol Fuzzing
File Format Fuzzing