Fuzzing or fuzz testing is an automated software testing technique that involves providing invalid, unexpected, or random data as inputs to a computer program. The program is then monitored for exceptions such as crashes, failing built-in code assertions, or potential memory leaks.

 

Definition. Fuzz testing or fuzzing is an automated software testing method that injects invalid, malformed, or unexpected inputs into a system to reveal software defects and vulnerabilities. A fuzzing tool injects these inputs into the system and then monitors for exceptions such as crashes or information leakage.

Why is it called fuzz testing?

Fuzz testing typically involves inputting massive amounts of random data, called fuzz, to the software or system being tested in an attempt to make it crash or break through its defenses. If a vulnerability is found, a software tool called a fuzzer can be used to identify the potential causes.

Is fuzz testing a functional testing?

Fuzz testing is an effective solution for addressing those non-functional testing challenges. Unlike today’s approach, fuzzing doesn’t require a developer to manually craft every possible input.

What are the two types of fuzz testing?
There are two main types of fuzzing: coverage-guided and behavioral.

What is pen vs fuzz testing?
Whereas a fuzzing test seeks to overload a system (such as an ECU) and see how it reacts, a pen tester attempts to penetrate an attack surface using known and/or zero day vulnerabilities and not an input overload.