Statistical Fault Localization

The idea here is that we assign scores to program statements based on their occurrences in passing and failing tests. Here, correlation relates to causation. If a statement is always executed during failed tests but not in passing tests, the statement is more likely to be related to a bug.

To produce these rankings:

  • Given a test suite T
  • = # of failing executions in which s occurs
  • = # of passing executions in which s occurs
  • = Total # of failing executions
  • = Total # of passing executions

See