Whitebox fuzzing is a form of automatic dynamic test generation,
based on symbolic execution and constraint solving,
designed for security testing of large applications. Unfortunately,
the current effectiveness of whitebox fuzzing is limitedwhen
testing applications with highly-structured inputs,
such as compilers and interpreters. These applications process
their inputs in stages, such as lexing, parsing and evaluation.
Due to the enormous number of control paths in early
processing stages, whitebox fuzzing rarely reaches parts of
the application beyond those first stages.