Font Size: a A A

Research On Compiler Testing Technology Based On Compiler's Self-coverage

Posted on:2022-02-08Degree:MasterType:Thesis
Country:ChinaCandidate:J C WuFull Text:PDF
GTID:2518306572497124Subject:Computer technology
Abstract/Summary:PDF Full Text Request
Compiler testing is an important means to ensure the quality of compiler.In the process of testing,the existing compiler testing technology ignores the problem that the test program with long execution time takes up a lot of test resources.Here,a test program that takes too long to execute is called a timeout program.The execution time of the timeout program is hundreds of times of that of the normal test program,which will seriously affect the test efficiency of the compiler.At the same time,in a large number of test programs,only a small number of test programs can trigger compiler bugs,which is called bug-revealing test program.Executing a large number of test programs that cannot trigger compiler bugs will also lead to low efficiency of compiler testing.When a compiler compiles a test program,different structural and semantic characteristics of the test program may cause different compiler behaviors,and the coverage information of the compiler itself is also different.The coverage information of the compiler itself can reflect the language,structural and operational characteristics of the test program to a certain extent,these features are closely related to the execution of the program(such as the execution time of the test program,whether the test program triggers compiler bugs).In order to improve the efficiency of compiler testing,a test program selection method is proposed to train the prediction model of timeout program with machine learning and the prediction model of bug-revealing program based on the self coverage information of the compiler.Combined with the prediction results,the test program is selected to avoid the execution of timeout test program and a large number of test programs that cannot trigger bugs,so as to improve the testing efficiency of the compiler.The method of selecting test program based on compiler's self-coverage information is applied to the test process of different optimization levels(DOL)testing,and the DOL testing without using test program selection strategy is taken as a benchmark.The experimental results show that under the same test period,the number of timeout test programs selected by using the test program selection strategy only accounts for 38.1% of the number of timeout programs in the benchmark,which saves 61.9% of the execution time of timeout programs at most,and can find 25% more bugs than the benchmark.In the case of finding the same bugs,the time consumed is reduced by 28.9% compared with the benchmark,which shows the effectiveness of this method for accelerating the compiler testing process.
Keywords/Search Tags:Compiler Testing, Coverage Information, Machine Learning, Test Program Selection
PDF Full Text Request
Related items