kirancodes.me
To Proof Maintenance & Beyond!

A Synergistic Analysis Method for Explaining Failed Regression Tests

Qiuping Yi, Zijiang Yang, Jian Liu, Chen Zhao, Chao Wang

Abstract

We propose a new automated debugging method for regression testing based on a synergistic application of both dynamic and semantic analysis. Our method takes a failure- inducing test input, a buggy program, and an earlier correct version of the same program, and computes a minimal set of code changes responsible for the failure, as well as explaining how the code changes lead to the failure. Although this problem has been the subject of intensive research in recent years, existing methods are rarely adopted by developers in practice since they do not produce sufficiently accurate fault explanations for real applications. Our new method is significantly faster and more accurate than existing methods for explaining failed regression tests in real applications, due to its synergistic analysis framework that iteratively applies both dynamic analysis and a constraint solver based semantic analysis to leverage their complementary strengths. We have implemented our new method in a software tool based on the LLVMcompiler and the KLEE symbolic virtual machine. Our experiments on large real Linux applications show that the new method is both efficient and effective in practice.

BibTeX
@inproceedings{Yi-al:ICSE15,
  author    = {Qiuping Yi and
               Zijiang Yang and
               Jian Liu and
               Chen Zhao and
               Chao Wang},
  title     = {A Synergistic Analysis Method for Explaining Failed Regression Tests},
  booktitle = {ICSE (Part I)},
  pages     = {257--267},
  publisher = {{IEEE} Computer Society},
  year      = {2015},
}

Related papers