Publication Type
Conference Proceeding Article
Version
publishedVersion
Publication Date
10-2022
Abstract
Program generators play a critical role in generating bug-revealing test programs for compiler testing. However, existing program generators have been tamed nowadays (i.e., compilers have been hardened against test programs generated by them), thus calling for new solutions to improve their capability in generating bug-revealing test programs. In this study, we propose a framework named Remgen, aiming to Remanufacture a random program Generator for this purpose. RemgEnaddresses the challenges of the synthesis of diverse code snippets at a low cost and the selection of the bug-revealing code snippets for constructing new test programs. More specifically, RemgEnfirst designs a grammar-aided synthesis mechanism to synthesize diverse code snippets. Then, a grammar coverage-guided strategy is used to select the most diverse code snippets that may be bug-revealing. As a case study to demonstrate the effectiveness of the Remgen framework, we have remanufactured an old C program generator CCG and named it REMCCG. Our evaluation results show that REMCCG can generate significantly more bug-revealing test programs than the original CCG; notably, Remccg has found 56 new bugs for two mature compilers (i.e., GCC and LLVM), of which 37 have already been fixed by their developers.
Keywords
Reliability, Software testing, Compiler testing, Automated testing, Random program generator, Compiler defect
Discipline
Computer Engineering
Research Areas
Software and Cyber-Physical Systems
Publication
Proceedings of the 33rd IEEE International Symposium on Software Reliability Engineering, Charlotte, USA, 2022 October 31 - November 3
First Page
529
Last Page
540
ISBN
9781665451321
Identifier
10.1109/ISSRE55969.2022.00057
Publisher
IEEE
City or Country
Charlotte, North Carolina, USA
Citation
TU, Haoxin; JIANG, He; LI, Xiaochen; ZHOU, Zhide; JIANG, Lingxiao; and JIANG, Lingxiao.
RemGen: remanufacturing a random program generator for compiler testing. (2022). Proceedings of the 33rd IEEE International Symposium on Software Reliability Engineering, Charlotte, USA, 2022 October 31 - November 3. 529-540.
Available at: https://ink.library.smu.edu.sg/sis_research/7711
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-No Derivative Works 4.0 International License.
Additional URL
https://doi.org/10.1109/ISSRE55969.2022.00057