Fault localization based on information flow coverage

  • Authors:
  • Wes Masri

  • Affiliations:
  • Electrical and Computer Engineering Department, American University of Beirut, Beirut 1107 2020, Lebanon

  • Venue:
  • Software Testing, Verification & Reliability
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Failures triggered by hard to debug defects usually involve complex interactions between many program elements. This paper hypothesizes that information flows present a good model for such interactions and presents a new fault localization technique based on information flow coverage. Using a test suite, the technique ranks the statements in a program in terms of their likelihood of being faulty by comparing the information flows induced by the failing runs with the ones induced by the passing runs. The ranking of the statements associated with a given flow is primarily determined by contrasting the percentage of failing runs to the percentage of passing runs that induced it. Generally, a higher percentage of failing runs implies a higher rank. To show its potential, the technique was applied to several open-source Java programs and was compared, with respect to its fault localization effectiveness, with three other coverage techniques that use similar style metrics that are defined for statements, branches, and def–use pairs, respectively. The results revealed that information flow, branch, and def–use coverage performed consistently better than statement coverage. In addition, in a considerable number of cases information flow coverage performed better than branch and def–use coverage. Specifically, it was always safer but not always more precise. Copyright © 2009 John Wiley & Sons, Ltd. This paper presents a new fault localization technique based on information flow coverage. The technique was compared to three other coverage techniques that use similar style metrics that are defined for statements, branches and def-use pairs, respectively. The results revealed that information flow, branch, and def-use coverage performed consistently better than statement coverage, and in a considerable number of cases information flow coverage performed better than branch and def-use coverage. Specifically, it was always safer but not always more precise. Copyright © 2009 John Wiley & Sons, Ltd.