Accurately Choosing Execution Runs for Software Fault Localization

  • Guo L
  • Roychoudhury A
  • Wang T
  • 18

    Readers

    Mendeley users who have this article in their library.
  • 23

    Citations

    Citations of this article.

Abstract

Software fault localization involves locating the exact cause of error for a "failing" execution run - a run which exhibits an unexpected behavior. Given such a failing run, fault localization often proceeds by comparing the failing run with a "successful" run, that is, a run which does not exhibit the unexpected behavior. One important issue here is the choice of the successful run for such a comparison. In this paper, we propose a control flow based difference Metric for this purpose. The difference metric takes into account the sequence of statement instances (and not just the set of these instances) executed in the two runs, by locating branch instances with similar contexts but different outcomes in the failing and the successful runs. Given a failing run pi(f) and a pool of successful runs S, we choose the successful run pi(s) from S whose execution trace is closest to pi(f) in terms of the difference metric. A bug report is then generated by returning the difference between pi(f) and pi(s). We conduct detailed experiments to compare our approach with previously proposed difference metrics. In particular, we evaluate our approach in terms of (a) effectiveness of bug report for locating the bug, (b) size of bug report and (c) size of successful run pool required to make a decent choice of successful run.

Get free article suggestions today

Mendeley saves you time finding and organizing research

Sign up here
Already have an account ?Sign in

Find this document

Authors

  • Liang Guo

  • Abhik Roychoudhury

  • Tao Wang

Cite this document

Choose a citation style from the tabs below

Save time finding and organizing research with Mendeley

Sign up for free