Practical testing of a C99 compiler using output comparison
暂无分享,去创建一个
A simple technique is presented for testing a C99 compiler, by comparing its output with the output from pre-existing tools. The advantage to this approach is that new test cases can be added in bulk from existing sources, reducing the need for in-depth investigation of correctness issues and for creating new test code by hand. This technique was used in testing the PalmSource Palm OS® Cobalt ARM C/C++ cross-compiler for Palm-Powered® personal digital assistants, primarily for standards compliance and the correct execution of generated code. The technique described here found several hundred bugs, mostly in our in-house code, but also in longstanding high-quality front- and back-end code from Edison Design Group and Apogee Software. It also found 18 bugs in the GNU C compiler, as well as a bug specific to the Apple version of GCC, a bug specific to the Suse version of GCC, and a dozen bugs in versions of GCC for the ARM processor, several of which were critical. Copyright © 2007 John Wiley & Sons, Ltd.
[1] Christopher W. Fraser,et al. A retargetable compiler for ANSI C , 1991, SIGP.
[2] Jack W. Davidson,et al. Automatic Detection and Diagnosis of Faults in Generated Code for Procedure Calls , 2003, IEEE Trans. Software Eng..
[3] Boris Beizer,et al. Software System Testing and Quality Assurance , 1984 .
[4] Andreas Zeller,et al. Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.
[5] Bjarne Stroustrup,et al. C++ Programming Language , 1986, IEEE Softw..