2012 · 20 citations · 35 references
ComputingComputer EngineeringComputer ScienceFault ToleranceSoftware EngineeringSystems ModelingExecutable System ModelsModel-driven Software EngineeringSoftware ArchitectureSoftware DesignSoftware ModelingSoftware TestingAutomated Program SynthesisExecutable ModelsExecution EnvironmentImplementation ComplexityProgram SynthesisProgram Synthesis For ModelingTest GenerationTest Generation From Models
Software execution environment, interfaced with software through library functions and system calls, constitutes an important aspect of the software's semantics. Software analysis ought to take the execution environment into consideration. However, due to lack of source code and the inherent implementation complexity of these functions, it is quite difficult to co-analyze software and its environment. In this paper, we propose to extend program synthesis techniques to construct models for system and library functions. The technique samples the behavior of the original implementation of a function. The samples are used as the specification to synthesize the model, which is a C program. The generated model is iteratively refined. We have developed a prototype that can successfully construct models for a pool of system and library calls from their real world complex binary implementations. Moreover, our experiments have shown that the constructed models can improve dynamic test generation and failure tolerance.
35
Mark Weiser · IEEE Transactions on Software Engineering · 1984 · 3.2K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · ACM SIGPLAN Notices · 2005 · 2.1K citations
Koushik Sen, Darko Marinov, Gul Agha · 2005 · 1.7K citations
Patrice Godefroid, Nils Klarlund, Koushik Sen · 2005 · 1.5K citations