Learning to Accelerate Symbolic Execution via Code Transformation Junjie Chen Key Laboratory of High Confidence Software Technologies (Peking University), MoE Institute of Software, EECS, Peking University, Beijing, 100871, China
[email protected] Wenxiang Hu Key Laboratory of High Confidence Software Technologies (Peking University), MoE Institute of Software, EECS, Peking University, Beijing, 100871, China
[email protected] Lingming Zhang Department of Computer Science, University of Texas at Dallas, 75080, USA
[email protected] Dan Hao1 Key Laboratory of High Confidence Software Technologies (Peking University), MoE Institute of Software, EECS, Peking University, Beijing, 100871, China
[email protected] Sarfraz Khurshid Department of Electrical and Computer Engineering, University of Texas at Austin, 78712, USA
[email protected] Lu Zhang Key Laboratory of High Confidence Software Technologies (Peking University), MoE Institute of Software, EECS, Peking University, Beijing, 100871, China
[email protected] Abstract Symbolic execution is an effective but expensive technique for automated test generation. Over the years, a large number of refined symbolic execution techniques have been proposed to improve its efficiency. However, the symbolic execution efficiency problem remains, and largely limits the application of symbolic execution in practice. Orthogonal to refined symbolic execution, in this paper we propose to accelerate symbolic execution through semantic-preserving code transform- ation on the target programs. During the initial stage of this direction, we adopt a particular code transformation, compiler optimization, which is initially proposed to accelerate program concrete execution by transforming the source program into another semantic-preserving tar- get program with increased efficiency (e.g., faster or smaller).