kirancodes.me
To Proof Maintenance & Beyond!

Automated documentation inference to explain failed tests

Sai Zhang, Cheng Zhang, Michael D. Ernst

Abstract

A failed test reveals a potential bug in the tested code. Developers need to understand which parts of the test are relevant to the failure before they start bug-fixing. This paper presents a fully-automated technique (and its tool implementation, called FailureDoc) to explain a failed test. FailureDoc augments the failed test with explanatory documentation in the form of code comments. The comments indicate changes to the test that would cause it to pass, helping programmers understand why the test fails. We evaluated FailureDoc on five real-world programs. FailureDoc generated meaningful comments for most of the failed tests. The inferred comments were concise and revealed important debugging clues. We further conducted a user study. The results showed that FailureDoc is useful in bug diagnosis.

BibTeX
@inproceedings{Zhang-al:ASE11,
  author    = {Sai Zhang and
               Cheng Zhang and
               Michael D. Ernst},
  title     = {Automated documentation inference to explain failed tests},
  booktitle = {ASE},
  pages     = {63--72},
  publisher = {{IEEE} Computer Society},
  year      = {2011},
}

Related papers