Publication | Closed Access
Directed Incremental Symbolic Execution
42
Citations
42
References
2014
Year
EngineeringSoftware SystemsSoftware EngineeringSource Code AnalysisSoftware AnalysisFormal VerificationSymbolic ComputationStatic Analysis TechniquesBinary AnalysisStatic CheckingParallel ComputingCompilersProgramming LanguagesSource CodeComputer EngineeringComputer ScienceStatic Program AnalysisProgram AnalysisAutomated ReasoningFormal MethodsProgram SynthesisParallel ProgrammingIncremental Symbolic ExecutionSymbolic ExecutionSystem Software
The last few years have seen a resurgence of interest in the use of symbolic execution—a program analysis technique developed more than three decades ago to analyze program execution paths. Scaling symbolic execution to real systems remains challenging despite recent algorithmic and technological advances. An effective approach to address scalability is to reduce the scope of the analysis. For example, in regression analysis, differences between two related program versions are used to guide the analysis. While such an approach is intuitive, finding efficient and precise ways to identify program differences, and characterize their impact on how the program executes has proved challenging in practice. In this article, we present Directed Incremental Symbolic Execution (DiSE), a novel technique for detecting and characterizing the impact of program changes to scale symbolic execution. The novelty of DiSE is to combine the efficiencies of static analysis techniques to compute program difference information with the precision of symbolic execution to explore program execution paths and generate path conditions affected by the differences. DiSE complements other reduction and bounding techniques for improving symbolic execution. Furthermore, DiSE does not require analysis results to be carried forward as the software evolves—only the source code for two related program versions is required. An experimental evaluation using our implementation of DiSE illustrates its effectiveness at detecting and characterizing the effects of program changes.
| Year | Citations | |
|---|---|---|
Page 1
Page 1