DocumentCode
1496662
Title
Lazy symbolic execution for test data generation
Author
Lin, M.X. ; Chen, Y.L. ; Yu, Kaiyuan ; Wu, G.S.
Author_Institution
State Key Lab. of Software Dev. Environ., Beihang Univ., Beijing, China
Volume
5
Issue
2
fYear
2011
fDate
4/1/2011 12:00:00 AM
Firstpage
132
Lastpage
141
Abstract
In the context of test data generation, symbolic execution gets more attention as computing power increases continuously. Experiments show that test generation tools based on symbolic execution can get high coverage and find bugs on real applications. However, symbolic execution still has limitations in handling some complex program structures such as pointers, arrays and library functions. To address the problem, this study proposes a technique called lazy symbolic execution, which combines symbolic execution with a lazy evaluation strategy. The authors approach is motivated by the observation that some program structures can be reasoned about symbolically and the others have to be evaluated concretely. Traditional symbolic execution can cope with the former well, whereas lazy symbolic evaluation is used to handle the latter. However, lazy symbolic evaluation introduces intermediate variables into path constraints. To eliminate those variables, concrete values for some input variables are first obtained by constraint solving or searching processes. Then, the given path is executed again using inputs consisting of concrete and symbolic values. The procedure is repeated until all intermediate variables are wiped out. The authors have implemented a prototype tool and performed some experiments. The empirical results show the effectiveness of their approach.
Keywords
formal verification; program testing; complex program structure; lazy symbolic execution; test data generation;
fLanguage
English
Journal_Title
Software, IET
Publisher
iet
ISSN
1751-8806
Type
jour
DOI
10.1049/iet-sen.2010.0029
Filename
5751765
Link To Document