The 6th Joint Meeting on European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software 2007
DOI: 10.1145/1295014.1295039
|View full text |Cite
|
Sign up to set email alerts
|

Directed test generation using symbolic grammars

Abstract: We present CESI, an algorithm that combines exhaustive enumeration of test inputs from a structured domain with symbolic execution driven test generation. CESI is a hybrid of two predominant techniques: specification-based enumerative test generation (which exhaustively generates all possible inputs satisfying some constraint) and symbolic directed test generation (which explores program paths based on symbolic path constraint solving). We target programs whose valid inputs are determined by some context free … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

1
68
0

Year Published

2009
2009
2014
2014

Publication Types

Select...
5
3
1

Relationship

0
9

Authors

Journals

citations
Cited by 48 publications
(69 citation statements)
references
References 15 publications
(13 reference statements)
1
68
0
Order By: Relevance
“…In general, based on code instrumentation or program tracing, these tools replace concrete input data with symbolic values, collect and solve the constraints on execution traces and guide input error detection and generation. When testing applications with highly-structured inputs, such as compilers and interpreters, Godefroid et al [41] and Majumdar et al [50] proposed a variation technique which employs input symbolic grammar specifications. These tools have proven to highly improve the effectiveness of traditional fuzzing tools.…”
Section: Related Workmentioning
confidence: 99%
“…In general, based on code instrumentation or program tracing, these tools replace concrete input data with symbolic values, collect and solve the constraints on execution traces and guide input error detection and generation. When testing applications with highly-structured inputs, such as compilers and interpreters, Godefroid et al [41] and Majumdar et al [50] proposed a variation technique which employs input symbolic grammar specifications. These tools have proven to highly improve the effectiveness of traditional fuzzing tools.…”
Section: Related Workmentioning
confidence: 99%
“…One can approach the fuzzing problem by different techniques, as using symbolic execution [3], [13], [8], where input variables are made symbolic, and constraints are assembled to these variables along the execution path. Tracing tainted data is another approach where system functions and system calls from input data are followed to trace the behavior of an application as described in [19], [16], [6].…”
Section: Related Workmentioning
confidence: 99%
“…Information that constrains the space of valid inputs to a program, in the form of a grammar or otherwise, is key to scaling input space exploration beyond the limits of bruteforce exhaustive search. Previous research using symbolic execution [10,24,33] demonstrates the benefit of using an input grammar for this purpose. In the application domains we target, suitable grammars are easily available, so we simply use them.…”
Section: Technique Overviewmentioning
confidence: 99%