There has been a vast amount of research on automated software fault localization (AFL) [1]}, [2]}, [3]}, [4]}, which seeks to automate all or part of the process of locating the software faults that are responsible for observed software failures. Statistical fault localization (SFL) or spectrum-based fault localization [1]}, [2]}, [7]}, [4]} comprises a large body of AFL techniques that apply statistical measures of association — some computed with machine learning or data mining techniques — to execution data (execution profiles or spectra) and to failure data (e.g., pass/fail labels) in order to compute putative measures, called suspiciouness scores, of the likelihood that individual program statements or other program elements are responsible for observed failures. These scores are used to guide developers to faults, e.g., by using them to highlight suspicious statements in graphical displays of code [1]} or to rank statements for inspection [4]}. Statistical fault localization is also the first step in a number of automated program repair techniques [11]}, [12]}.
