The document discusses a method for combining whitebox and blackbox fuzzing techniques to improve the discovery of software vulnerabilities. It proposes an architecture with four components: 1) a path predicates collector that uses symbolic execution to generate constraints, 2) an input data generator that uses these constraints to generate test cases, 3) a delivery mechanism that tests the software, and 4) a monitoring system to detect crashes or errors. The method uses the KLEE symbolic execution tool to generate constraints, the PPL library to generate test cases from these constraints, and the ZZuf fuzzer to deliver tests and monitor for issues.