Describes and evaluates JDOOP: a hybrid fuzzer/symbolic executor for Java that uses random search to quickly build coverage and symbolic execution to hit hard to hit branch conditions. JDOOP is a combination of RANDOOP and JDART.
As in garg:icse:2013 the main goal is to generate sequences of method calls that achieve high coverage.
One major barrier is the handling of non-Java code which, unfortunately
includes Java string functions charAt
and indexOf
.
These are not treated symbolically: the tool has a choice of either
returning a symbolic return value or of concretizing inputs and running
concretely.