RemGen: remanufacturing a random program generator for compiler testing

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 capabili...

Full description

Saved in:
Bibliographic Details
Main Authors: TU, Haoxin, JIANG, He, LI, Xiaochen, ZHOU, Zhide, JIANG, Lingxiao
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2022
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/7711
https://ink.library.smu.edu.sg/context/sis_research/article/8714/viewcontent/issre22RemGen.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-8714
record_format dspace
spelling sg-smu-ink.sis_research-87142023-01-10T03:02:18Z RemGen: remanufacturing a random program generator for compiler testing TU, Haoxin JIANG, He LI, Xiaochen ZHOU, Zhide JIANG, Lingxiao JIANG, Lingxiao 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. 2022-10-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/7711 info:doi/10.1109/ISSRE55969.2022.00057 https://ink.library.smu.edu.sg/context/sis_research/article/8714/viewcontent/issre22RemGen.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Reliability Software testing Compiler testing Automated testing Random program generator Compiler defect Computer Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Reliability
Software testing
Compiler testing
Automated testing
Random program generator
Compiler defect
Computer Engineering
spellingShingle Reliability
Software testing
Compiler testing
Automated testing
Random program generator
Compiler defect
Computer Engineering
TU, Haoxin
JIANG, He
LI, Xiaochen
ZHOU, Zhide
JIANG, Lingxiao
JIANG, Lingxiao
RemGen: remanufacturing a random program generator for compiler testing
description 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.
format text
author TU, Haoxin
JIANG, He
LI, Xiaochen
ZHOU, Zhide
JIANG, Lingxiao
JIANG, Lingxiao
author_facet TU, Haoxin
JIANG, He
LI, Xiaochen
ZHOU, Zhide
JIANG, Lingxiao
JIANG, Lingxiao
author_sort TU, Haoxin
title RemGen: remanufacturing a random program generator for compiler testing
title_short RemGen: remanufacturing a random program generator for compiler testing
title_full RemGen: remanufacturing a random program generator for compiler testing
title_fullStr RemGen: remanufacturing a random program generator for compiler testing
title_full_unstemmed RemGen: remanufacturing a random program generator for compiler testing
title_sort remgen: remanufacturing a random program generator for compiler testing
publisher Institutional Knowledge at Singapore Management University
publishDate 2022
url https://ink.library.smu.edu.sg/sis_research/7711
https://ink.library.smu.edu.sg/context/sis_research/article/8714/viewcontent/issre22RemGen.pdf
_version_ 1770576419486695424