一句话:提出 FixLocator,用双任务深度学习定位同一修复中需协同变更的方法与语句级故障位置。
故障定位是大多数自动程序修复的前置步骤,传统方法通常只定位单个故障语句。论文提出 FixLocator,面向同一修复中需要一起修改的协同变更修复位置,支持检测一个或多个方法中需要相应修改的故障语句。方法将问题建模为双任务学习:方法级模型 MethFL 学习方法共同修复,语句级模型 StmtFL 学习语句共同修复;两者通过 cross-stitch 单元软共享参数,使一个模型的学习可以促进另一个模型。论文还引入“协同变更语句”这一新特征,并使用图卷积网络整合不同类型程序依赖。摘要未报告具体评估结果。
Fault Localization (FL) is a precursor step to most Automated Program Repair (APR) approaches, which fix the faulty statements identified by the FL tools. We present FixLocator, a Deep Learning (DL)-based fault localization approach supporting the detection of faulty statements in one or multiple methods that need to be modified accordingly in the same fix. Let us call them co-change (CC) fixing locations for a fault. We treat this FL problem as dual-task learning with two models. The method-level FL model, MethFL, learns the methods to be fixed together. The statement-level FL model, StmtFL, learns the statements to be co-fixed. Correct learning in one model can benefit the other and vice versa. Thus, we simultaneously train them with soft-sharing the models' parameters via cross-stitch units to enable the propagation of the impact of MethFL and StmtFL onto each other. Moreover, we explore a novel feature for FL: the co-changed statements. We also use Graph-based Convolution Network to integrate different types of program dependencies.