학술논문

Evaluating the Effects of Compiler Optimizations on Mutation Testing at the Compiler IR Level
Document Type
Conference
Source
2016 IEEE 27th International Symposium on Software Reliability Engineering (ISSRE) Software Reliability Engineering (ISSRE), 2016 IEEE 27th International Symposium on. :105-115 Oct, 2016
Subject
Computing and Processing
Optimization
Testing
Program processors
Software reliability
Standards
Syntactics
Connectors
mutation testing
compiler optimizations
LLVM
Language
ISSN
2332-6549
Abstract
Software testing is one of the most widely used approaches for improving software reliability. The effectiveness of testing depends to a large extent on the quality of test suites. Researchers have developed various techniques to evaluate the quality of test suites. Of these techniques, mutation testing is generally considered to be the most advanced but also expensive. A key result of applying mutation testing to a given test suite is the mutation score representing the percentage of mutants killed by the test suite. Ideally the mutation score is computed ignoring the mutants that are semantically equivalent to the original code under test or to one another. In this paper, we investigate a new perspective on mutation testing: evaluating how standard compiler optimizations affect the cost and results of mutation testing performed at the compiler intermediate representation. Our study targets LLVM, a popular compiler infrastructure that supports multiple source and target languages. Our evaluation on 18 Coreutils programs discovers several interesting relations between the numbers of mutants (including the numbers on equivalent and duplicated mutants) and mutation scores on unoptimized and optimized programs.