We present SYMTUNER, a novel technique to automatically tune external parameters of symbolic execution. Practical symbolic execution tools have important external parameters (e.g., symbolic arguments, seed input) that critically affect their performance. Due to the huge parameter space, however, manually customizing those parameters is notoriously difficult even for experts. As a consequence, symbolic execution tools have typically been used in a suboptimal manner that, for example, simply relies on the default parameter settings of the tools and loses the opportunity for better performance. In this paper, we aim to change this situation by automatically configuring symbolic execution parameters. With Symtuner that takes parameter spaces to be tuned, symbolic executors are run without manual parameter configurations; instead, appropriate parameter values are learned and adjusted during symbolic execution. To achieve this, we present a learning algorithm that observes the behavior of symbolic execution and accordingly updates the sampling probability of each parameter space. We evaluated Symtuner with KLEE on 12 open-source C programs. The results show that Symtuner increases branch coverage of KLEE by 56% on average and finds 8 more bugs than KLEE with its default parameters over the latest releases of the programs.
|Title of host publication||Proceedings - 2022 ACM/IEEE 44th International Conference on Software Engineering, ICSE 2022|
|Publisher||IEEE Computer Society|
|Number of pages||12|
|Publication status||Published - 2022|
|Event||44th ACM/IEEE International Conference on Software Engineering, ICSE 2022 - Pittsburgh, United States|
Duration: 2022 May 22 → 2022 May 27
|Name||Proceedings - International Conference on Software Engineering|
|Conference||44th ACM/IEEE International Conference on Software Engineering, ICSE 2022|
|Period||22/5/22 → 22/5/27|
Bibliographical noteFunding Information:
This work was supported by Samsung Research Funding & Incubation Center of Samsung Electronics under Project Number SRFC-IT1701-51. This work was partly supported by Institute of Information & communications Technology Planning & Evaluation (IITP) grant funded by the Korea government(MSIT) (No.2020-0-01337,(SW STAR LAB) Research on Highly-Practical Automated Software Repair) and the MSIT(Ministry of Science and ICT), Korea, under the ICT Creative Consilience program (IITP-2022-2020-0-01819) supervised by the IITP(Institute for Information & communications Technology Planning & Evaluation). This work was supported by the National Research Foundation of Korea (NRF) grant funded by the Korea government (MSIT) ( No.2021R1A5A1021944, No.NRF-2021R1C1C2006410).
© 2022 ACM.
- Software Testing
- Symbolic Execution
ASJC Scopus subject areas