一句话:提出深度学习方法 DeepFL,自动学习多维度故障诊断特征,显著提升故障定位精度。
基于学习的故障定位已有大量研究,传统 Learning-to-Rank 方法可利用可疑度值等多种故障诊断特征精确定位故障。然而随着先进故障定位技术所考虑特征维度的增加,传统排序学习算法难以自动识别有效特征及潜在特征。本文提出 DeepFL,一种深度学习方法,用于自动学习对精确定位最有效的已有特征与潜在特征。该方法具有通用性,具体实现中从故障定位、缺陷预测和信息检索领域分别收集基于可疑度值、故障倾向性和文本相似性的多类特征。作者在 Defects4J 基准的 395 个真实缺陷上评估 DeepFL,结果显示其显著优于当时最优的 TraPT/FLUCCS,例如在 Top-1 内多定位 50 余个故障。论文还分析了深度模型配置(如损失函数、训练轮数)和特征的影响,并发现 DeepFL 在跨项目预测中同样出人意料地有效。
Learning-based fault localization has been intensively studied recently. Prior studies have shown that traditional Learning-to-Rank techniques can help precisely diagnose fault locations using various dimensions of fault-diagnosis features, such as suspiciousness values computed by various off-the-shelf fault localization techniques. However, with the increasing dimensions of features considered by advanced fault localization techniques, it can be quite challenging for the traditional Learning-to-Rank algorithms to automatically identify effective existing/latent features. In this work, we propose DeepFL, a deep learning approach to automatically learn the most effective existing/latent features for precise fault localization. Although the approach is general, in this work, we collect various suspiciousness-value-based, fault-proneness-based and textual-similarity-based features from the fault localization, defect prediction and information retrieval areas, respectively. DeepFL has been studied on 395 real bugs from the widely used Defects4J benchmark. The experimental results show DeepFL can significantly outperform state-of-the-art TraPT/FLUCCS (e.g., localizing 50+ more faults within Top-1). We also investigate the impacts of deep model configurations (e.g., loss functions and epoch settings) and features. Furthermore, DeepFL is also surprisingly effective for cross-project prediction.