“Fuzzing” is
a concept that has been in use for many years, mostly with in-house
testing departments, and its effectiveness can have a profound effect
on your code quality. In an IBM DeveloperWorks article, Elliotte Harold presents
this testing technique for hardening applications against unexpected
input – and shows what happens when he deliberately injects random bad
data (aka fuzz) into an application to see what breaks.

Its important to note that fuzzing isn’t the end all of software
testing. The main problem with fuzzing to find program faults is that
it generally only finds very simple faults, but curiously, this testing
technique seems to find defects that are not found by other techniques.

Originally authored by Stelligent at testearly.com