Modified condition/decision coverage (MC/DC) oriented compiler optimization for symbolic execution

  • PDF / 1,406,700 Bytes
  • 18 Pages / 595.276 x 841.89 pts (A4) Page_size
  • 69 Downloads / 195 Views

DOWNLOAD

REPORT


1

Frontiers of Information Technology & Electronic Engineering www.jzus.zju.edu.cn; engineering.cae.cn; www.springerlink.com ISSN 2095-9184 (print); ISSN 2095-9230 (online) E-mail: [email protected]

Modified condition/decision coverage (MC/DC) oriented compiler optimization for symbolic execution∗ Wei-jiang HONG1,2 , Yi-jun LIU1 , Zhen-bang CHEN†‡1 , Wei DONG†1 , Ji WANG†1,2 1College 2State

of Computer, National University of Defense Technology, Changsha 410073, China

Key Laboratory of High Performance Computing, National University of Defense Technology, Changsha 410073, China † E-mail:

[email protected]; [email protected]; [email protected]

Received Apr. 26, 2019; Revision accepted Aug. 21, 2019; Crosschecked Mar. 16, 2020

Abstract: Symbolic execution is an effective way of systematically exploring the search space of a program, and is often used for automatic software testing and bug finding. The program to be analyzed is usually compiled into a binary or an intermediate representation, on which symbolic execution is carried out. During this process, compiler optimizations influence the effectiveness and efficiency of symbolic execution. However, to the best of our knowledge, there exists no work on compiler optimization recommendation for symbolic execution with respect to (w.r.t.) modified condition/decision coverage (MC/DC), which is an important testing coverage criterion widely used for mission-critical software. This study describes our use of a state-of-the-art symbolic execution tool to carry out extensive experiments to study the impact of compiler optimizations on symbolic execution w.r.t. MC/DC. The results indicate that instruction combining (IC) optimization is the important and dominant optimization for symbolic execution w.r.t. MC/DC. We designed and implemented a support vector machine based optimization recommendation method w.r.t. IC (denoted as auto). The experiments on two standard benchmarks (Coreutils and NECLA) showed that auto achieves the best MC/DC on 67.47% of Coreutils programs and 78.26% of NECLA programs. Key words: Compiler optimization; Modified condition/decision coverage (MC/DC); Optimization recommendation; Symbolic execution https://doi.org/10.1631/FITEE.1900213 CLC number: TP311.5

1 Introduction Testing is the mainstream method used in software development to improve the quality of software (Beizer, 2003). Software testing is a laborintensive and time-consuming process. Improving the efficiency and evaluating the effectiveness are challenging. Automatic testing aims to improve the ‡ *

Corresponding author

Project supported by the National Key R&D Program of China (No. 2017YFB1001802) and the National Natural Science Foundation of China (Nos. 61472440, 61632015, 61690203, and 61532007) ORCID: Wei-jiang HONG, https://orcid.org/0000-0002-70923658; Zhen-bang CHEN, https://orcid.org/0000-0003-0874-3231 c Zhejiang University and Springer-Verlag GmbH Germany, part  of Springer Nature 2020

efficiency of testing by different techniques, such as automatic test-case generation (Cadar et al.,