当前位置: X-MOL 学术Inf. Softw. Technol. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
ALBFL: A novel neural ranking model for software fault localization via combining static and dynamic features
Information and Software Technology ( IF 3.9 ) Pub Date : 2021-06-10 , DOI: 10.1016/j.infsof.2021.106653
Xi Xiao , Yuqing Pan , Bin Zhang , Guangwu Hu , Qing Li , Runiu Lu

Context

Automatic software fault localization serves as a significant purpose in helping developers solve bugs efficiently. Existing approaches for software fault localization can be categorized into static methods and dynamic ones, which have improved the fault locating ability greatly by analyzing static features from the source code or tracking dynamic behaviors during the runtime respectively. However, the accuracy of fault localization is still unsatisfactory.

Objective

To enhance the capability of detecting software faults with the statement granularity, this paper puts forward ALBFL, a novel neural ranking model that combines the static and dynamic features, which obtains excellent fault localization accuracy. Firstly, ALBFL learns the semantic features of the source code by a transformer encoder. Then, it exploits a self-attention layer to integrate those static features and dynamic features. Finally, those integrated features are fed into a LambdaRank model, which can list the suspicious statements in descending order by their ranked scores.

Method

The experiments are conducted on an authoritative dataset (i.e., Defect4J), which includes 5 open-source projects, 357 faulty programs in total. We evaluate the effectiveness of ALBFL, effectiveness of combining features, effectiveness of model components and aggregation on method level.

Result

The results reflect that ALBFL identifies triple more faulty statements than 11 traditional SBFL methods and outperforms 2 state-of-the-art approaches by on average 14% on ranking faults in the first position.

Conclusions

To improve the precision of automatic software fault localization, ALBFL combines neural network ranking model equipped with the self-attention layer and the transformer encoder, which can take full use of various techniques to judge whether a code statement is fault-inducing or not. Moreover, the joint architecture of ALBFL is capable of training the integration of these features under various strategies so as to improve accuracy further. In the future, we plan to exploit more features so as to improve our method's efficiency and accuracy.



中文翻译:

ALBFL:一种通过结合静态和动态特征进行软件故障定位的新型神经排序模型

语境

自动软件故障定位是帮助开发人员有效解决错误的重要目的。现有的软件故障定位方法可以分为静态方法和动态方法,它们分别通过分析源代码的静态特征或跟踪运行时的动态行为,大大提高了故障定位能力。然而,故障定位的准确性仍然不尽如人意。

客观的

为了提高语句粒度的软件故障检测能力,本文提出了一种新的结合静态和动态特征的神经排序模型ALBFL,获得了优异的故障定位精度。首先,ALBFL 通过转换器编码器学习源代码的语义特征。然后,它利用自注意力层来集成这些静态特征和动态特征。最后,这些集成的特征被输入到一个 LambdaRank 模型中,该模型可以按照排名分数降序列出可疑语句。

方法

实验在权威数据集(即Defect4J)上进行,其中包括5个开源项目,共357个错误程序。我们评估 ALBFL 的有效性、组合特征的有效性、模型组件的有效性和方法级别的聚合。

结果

结果表明,ALBFL 识别出的错误语句比 11 种传统 SBFL 方法多出三倍,并且在排名第一的错误上比 2 种最先进的方法平均高出 14%。

结论

为了提高自动软件故障定位的精度,ALBFL结合了配备self-attention层的神经网络排序模型和transformer编码器,可以充分利用各种技术来判断一个代码语句是否引起故障。此外,ALBFL 的联合架构能够在各种策略下训练这些特征的集成,从而进一步提高准确性。未来,我们计划利用更多的特征来提高我们方法的效率和准确性。

更新日期:2021-06-18
down
wechat
bug