2007 · 96 citations · 37 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesSyntaxAbstract Syntax TreesContext-free LanguagesData-flow AnalysisSoftware TestingSymbolic ExecutionSyntax AnalysisAutomated Test GenerationConcrete Syntax ModelingSymbolic Execution EnginesTest Generation
We present CESE, a tool that combines exhaustive enumeration of test inputs from a structured domain with symbolic execution driven test generation. We target programs whose valid inputs are determined by some context free grammar. We abstract the concrete input syntax with symbolic grammars, where some original tokens are replaced with symbolic constants. This reduces the set of input strings that must be enumerated exhaustively. For each enumerated input string, which may contain symbolic constants, symbolic execution based test generation instantiates the constants based on program execution paths. The "template" generated by enumerating valid strings reduces the burden on the symbolic execution to generate syntactically valid inputs and helps exercise interesting code paths. Together, symbolic grammars provide a link between exhaustive enumeration of valid inputs and execution-directed symbolic test generation
37
Symbolic execution and program testing
James C. King · Communications of the ACM · 1976 · 3K citations · Full text
Introduction to the Theory of Computation
Michael Sipser · ACM SIGACT News · 1996 · 2.8K 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