Used to establish confidence in the correctness of evolving software, regression testing is an important, yet costly, task. Test case prioritization enables the rapid detection of faults during regression testing by reordering the test suite so that effective tests are run as early as is possible. However, a distinct lack of information about the regression faults found in complex real-world software forced prior experimental studies of these methods to use artificial faults called mutants. Using the Defects4J database of real faults, this paper presents the results of experiments evaluating the effectiveness of four representative test prioritization techniques. Since this paper’s results show that prioritization is susceptible to high amounts of variance when only one fault is present, our experiments also control the number of real faults and mutants in the program subject to regression testing. Our overall findings are that, in comparison to mutants, real faults are harder for reordered test suites to quickly detect, suggesting that mutants are not a surrogate for real faults.
Paterson, D., Kapfhammer, G. M., Fraser, G., & McMinn, P. (2018). Using controlled numbers of real faults and mutants to empirically evaluate coverage-based test case prioritization. In Proceedings of the 13th International Workshop on Automation of Software Test.
Want to cite this paper? Look in the BiBTeX file of gkapfham/research-bibliography for the key "Paterson2018".