Publication | Closed Access
Deferred concretization in symbolic execution via fuzzing
25
Citations
24
References
2019
Year
Unknown Venue
EngineeringTest Data GenerationSoftware EngineeringDeferred ConcretizationSoftware AnalysisFormal VerificationPath DivergenceFuzzingRuntime VerificationComputer EngineeringComputer ScienceStatic Program AnalysisAutomated ReasoningProgram AnalysisSoftware TestingFormal MethodsParallel ProgrammingSymbolic ExecutionSystem Software
Concretization is an effective weapon in the armory of symbolic execution engines. However, concretization can lead to loss in coverage, path divergence, and generation of test-cases on which the intended bugs are not reproduced. In this paper, we propose an algorithm, Deferred Concretization, that uses a new category for values within symbolic execution (referred to as the symcrete values) to pend concretization till they are actually needed. Our tool, COLOSSUS, built around these ideas, was able to gain an average coverage improvement of 66.94% and reduce divergence by more than 55% relative to the state-of-the-art symbolic execution engine, KLEE. Moreover, we found that KLEE loses about 38.60% of the states in the symbolic execution tree that COLOSSUS is able to recover, showing that COLOSSUS is capable of covering a much larger coverage space.
| Year | Citations | |
|---|---|---|
Page 1
Page 1