Compiler Testing Approach based on Generalized Equivalent Substitution

The importance of the compiler is unquestionable. In order to better guarantee the correctness of the compiler, this paper presents a compiler testing approach based on generalized equivalent substitution. This approach tests the compiler by building a large number of equivalent assemblies. It can produce more test cases with fewer original test cases and effectively avoid a test oracle. We use the way implanting variants in SNL compilers to verify the validity of the compiler test approach based on generalized equivalence substitution. The experiment results show that our approach is effective and can detect errors in the compiler.

[1]  Lu Zhang,et al.  An Empirical Comparison of Compiler Testing Techniques , 2016, 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE).

[2]  Mark Harman,et al.  The Oracle Problem in Software Testing: A Survey , 2015, IEEE Transactions on Software Engineering.

[3]  Takahide Yoshikawa,et al.  Random program generator for Java JIT compiler test system , 2003, Third International Conference on Quality Software, 2003. Proceedings..

[4]  Xuejun Yang,et al.  Finding and understanding bugs in C compilers , 2011, PLDI '11.

[5]  Wei Wu,et al.  An Automatic Testing Approach for Compiler Based on Metamorphic Testing Technique , 2010, 2010 Asia Pacific Software Engineering Conference.

[6]  Tsong Yueh Chen,et al.  Metamorphic testing and beyond , 2003, Eleventh Annual International Workshop on Software Technology and Engineering Practice.

[7]  Carlos Urias Munoz,et al.  Automatic Generation of Random Self-Checking Test Cases , 1983, IBM Syst. J..

[8]  Flash Sheridan Practical testing of a C99 compiler using output comparison , 2007 .