Context: Existing fault-localization techniques combine various program features and similarity coefficients with the aim of precisely assessing the similarities among the dynamic spectra of these program features to predict the locations of faults. Many such techniques estimate the probability of a particular program feature causing the observed failures. They often ignore the noise introduced by other features on the same set of executions that may lead to the observed failures. It is unclear to what extent such noise can be alleviated. Objective: This paper aims to develop a framework that reduces the noise in fault-failure correlation measurements. We develop a fault-localization framework that uses chains of key basic blocks as program features and a noise-reduction methodology to improve on the similarity coefficients of fault-localization techniques. We evaluate our framework on five base techniques using five real-life medium-scaled programs in different application domains. We also conduct a case study on subjects with multiple faults. Results: The experimental result shows that the synthesized techniques are more effective than their base techniques by almost 10%. Moreover, their runtime overhead factors to collect the required feature values are practical. The case study also shows that the synthesized techniques work well on subjects with multiple faults. We conclude that the proposed framework has a significant and positive effect on improving the effectiveness of the corresponding base techniques.
Xu et al. REF develop a noise-reduction framework for localizing faults.
A General Noise-Reduction Framework for Fault Localization of Java Programs
INFORMATION AND SOFTWARE TECHNOLOGY
Computer Science