一句话:统一建模 SBFL 与统计调试并系统实证比较,据此提出 PREDFL 提升故障定位效果。
自动故障定位可减轻人工调试负担,其中基于频谱的故障定位(SBFL)与统计调试(SD)均利用运行时统计信息定位故障,思路相近却长期独立发展,二者组合缺乏系统探索。本文首先建立 SBFL 与 SD 的统一模型,系统考察四类变体:谓词种类、风险评价公式、数据收集粒度、可疑度分数组合方式。实证发现:组合方法的效果主要来自分支条件这类简单谓词;SBFL 的风险评价公式显著优于 SD;细粒度数据收集以少量额外开销显著更优;SBFL 与 SD 谓词的线性组合优于两者单独使用。基于此提出 PREDFL(基于谓词的故障定位),为各维度选取最优配置,并将其与当前最优故障定位框架集成;结果显示 PREDFL 具备互补性,Top-1 成功定位的故障数最高提升 20.8%。
Program debugging is a time-consuming task, and researchers have proposed different kinds of automatic fault localization techniques to mitigate the burden of manual debugging. Among these techniques, two popular families are spectrum-based fault localization (SBFL) and statistical debugging (SD), both localizing faults by collecting statistical information at runtime. Though the ideas are similar, the two families have been developed independently and their combinations have not been systematically explored. In this paper we perform a systematical empirical study on the combination of SBFL and SD. We first build a unified model of the two techniques, and systematically explore four types of variations, different predicates, different risk evaluation formulas, different granularities of data collection, and different methods of combining suspicious scores. Our study leads to several findings. First, most of the effectiveness of the combined approach contributed by a simple type of predicates: branch conditions. Second, the risk evaluation formulas of SBFL significantly outperform that of SD. Third, fine-grained data collection significantly outperforms coarse-grained data collection with a little extra execution overhead. Fourth, a linear combination of SBFL and SD predicates outperforms both individual approaches. According to our empirical study, we propose a new fault localization approach, PREDFL (Predicate-based Fault Localization), with the best configuration for each dimension under the unified model. Then, we explore its complementarity to existing techniques by integrating PREDFL with a state-of-the-art fault localization framework. The experimental results show that PREDFL can further improve the effectiveness of state-of-the-art fault localization techniques. More concretely, integrating PREDFL results in an up to 20.8% improvement w.r.t the faults successfully located at Top-1, which reveals that PREDFL complements existing techniques.
DOI 原文 ·
@inproceedings{paperbot5332,
title = {Combining Spectrum-Based Fault Localization and Statistical Debugging: An Empirical Study},
author = {Jiajun Jiang and Ran Wang and Yingfei Xiong and Xiangping Chen and Lu Zhang},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00054}
}