Memoized Symbolic ExecutionThis paper introduces memoized symbolic execution (Memoise), a novel approach for more efficient application of forward symbolic execution, which is a well-studied technique for systematic exploration of program behaviors based on bounded execution paths. Our key insight is that application of symbolic execution often requires several successive runs of the technique on largely similar underlying problems, e.g., running it once to check a program to find a bug, fixing the bug, and running it again to check the modified program. Memoise introduces a trie-based data structure that stores the key elements of a run of symbolic execution. Maintenance of the trie during successive runs allows re-use of previously computed results of symbolic execution without the need for re-computing them as is traditionally done. Experiments using our prototype embodiment of Memoise show the benefits it holds in various standard scenarios of using symbolic execution, e.g., with iterative deepening of exploration depth, to perform regression analysis, or to enhance coverage.
Document ID
20120015907
Acquisition Source
Ames Research Center
Document Type
Conference Paper
Authors
Yang, Guowei (Texas Univ. Austin, TX, United States)
Pasareanu, Corina S. (Carnegie-Mellon Univ. Moffett Field, CA, United States)
Khurshid, Sarfraz (Texas Univ. Austin, TX, United States)
Date Acquired
August 26, 2013
Publication Date
June 2, 2012
Subject Category
Computer Programming And Software
Report/Patent Number
ARC-E-DAA-TN4358Report Number: ARC-E-DAA-TN4358
Meeting Information
Meeting: 34th International Conference on Software Engineering (ICSE 2012)
Location: Zurich
Country: Swaziland
Start Date: June 2, 2012
End Date: June 9, 2012
Sponsors: Institute of Electrical and Electronics Engineers