- Title
- History-guided configuration diversification for compiler test-program generation
- Creator
- Chen, Junjie; Wang, Guancheng; Hao, Dan; Xiong, Yingfei; Zhang, Hongyu; Zhang, Lu
- Relation
- 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE). Proceedings of 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE) (San Diego, CA 11-15 November, 2019) p. 305-316
- Publisher Link
- http://dx.doi.org/10.1109/ASE.2019.00037
- Publisher
- Institute of Electrical and Electronics Engineers (IEEE)
- Resource Type
- conference paper
- Date
- 2019
- Description
- Compilers, like other software systems, contain bugs, and compiler testing is the most widely-used way to assure compiler quality. A critical task of compiler testing is to generate test programs that could effectively and efficiently discover bugs. Though we can configure test generators such as Csmith to control the features of the generated programs, it is not clear what test configuration is effective. In particular, an effective test configuration needs to generate test programs that are bug-revealing, i.e., likely to trigger bugs, and diverse, i.e., able to discover different types of bugs. It is not easy to satisfy both properties. In this paper, we propose a novel test-program generation approach, called HiCOND, which utilizes historical data for configuration diversification to solve this challenge. HiCOND first infers the range for each option in a test configuration where bug-revealing test programs are more likely to be generated based on historical data. Then, it identifies a set of test configurations that can lead to diverse test programs through a search method (particle swarm optimization). Finally, based on the set of test configurations for compiler testing, HiCOND generates test programs, which are likely to be bug-revealing and diverse. We have conducted experiments on two popular compilers GCC and LLVM, and the results confirm the effectiveness of our approach. For example, HiCOND detects 75.00%, 133.33%, and 145.00% more bugs than the three existing approaches, respectively. Moreover, HiCOND has been successfully applied to actual compiler testing in a global IT company and detected 11 bugs during the practical evaluation.
- Subject
- compiler testing; configuration; history; search
- Identifier
- http://hdl.handle.net/1959.13/1460324
- Identifier
- uon:45930
- Identifier
- ISBN:9781728125084
- Language
- eng
- Reviewed
- Hits: 990
- Visitors: 990
- Downloads: 0