Skip to main content
Specialized Testing
DEFINITION

What is Fuzz Testing?

Fuzz testing (fuzzing) is an automated technique that feeds large volumes of malformed, unexpected, or random input to a program to find crashes, hangs, memory errors, and security vulnerabilities.

Free to start · 7-day trial on paid plans

IN DEPTH

In depth.

Fuzzing targets the code that parses and processes input, file parsers, network protocols, APIs, where a single unhandled edge case can mean a crash or an exploitable bug. A fuzzer generates or mutates inputs at high speed and watches for failures: crashes, assertion violations, memory corruption (caught with sanitizers), or hangs.

There are three broad styles. Dumb (mutation) fuzzers randomly mutate valid sample inputs, simple and surprisingly effective. Generation-based fuzzers build inputs from a model or grammar of the format, reaching deeper into structured parsers. Coverage-guided fuzzers (AFL, libFuzzer) instrument the code and evolve inputs toward unexplored paths, which is the modern, most powerful approach and is widely used in security and at scale (for example Google's OSS-Fuzz).

Fuzzing is strongest at robustness and security, not functional correctness, it tells you the program survived weird input, not that it produced the right answer. It is distinct from monkey testing, which fires random user actions at a UI rather than malformed data at a parser.

WHY IT MATTERS

Why interviewers ask about this.

For SDET, platform, and security-leaning roles, fuzzing signals that you think about robustness and the security boundary, not just the happy path. Knowing coverage-guided fuzzing and real tools (AFL, libFuzzer) shows depth.

EXAMPLE

Example scenario.

A team fuzzes its image-upload parser with a coverage-guided fuzzer seeded with valid images. Within hours it finds an input that triggers an out-of-bounds read, a potential security vulnerability, that no hand-written test had covered. The crashing input becomes a permanent regression test.

TIP

Interview tip.

Define fuzzing as automated malformed-input testing for crashes and security bugs, then distinguish dumb, generation-based, and coverage-guided fuzzers. Separating it from monkey testing (random actions vs malformed data) is a strong differentiator.

FAQ

Frequently asked questions.

What is the difference between fuzz testing and monkey testing?

Fuzz testing feeds malformed or random data to input parsers to find crashes and security bugs. Monkey testing fires random user actions at a UI to test stability. Both use randomness but target different layers and goals.

What is coverage-guided fuzzing?

A modern approach (AFL, libFuzzer) that instruments the code to measure which paths an input exercises, then evolves inputs toward unexplored code. It finds deep bugs far faster than purely random fuzzing.

FREE TOOLS  /  no signup

Free QA career tools, no account needed

Instant and private, everything runs in your browser. Try them before you sign up.

EXEC.NOW

Ready to Ace Your QA Interview?

Practice explaining fuzz testing and other key concepts with our AI interviewer.

Join 1,200+ QA engineers already practicing with AssertHired.

Start your free QA interview
FREE.TO.START  ·  7.DAY.TRIAL ON PAID PLANS
Written by Aston Cook, Senior QA EngineerLast updated May 2026