Towards Better Graph Neural Neural Network-based Fault Localization Through Enhanced Code Representation

2024年04月06日
  • 简介
    自动软件故障定位通过确定故障位置以便更轻松地进行调试,在软件质量保证中发挥着重要作用。广泛使用的基于覆盖率的故障定位技术利用覆盖率谱统计数据来根据可疑度分数排列代码。然而,统计方法的严格性需要学习为基础的技术。其中,基于图神经网络(GNN)的Grace技术由于能够将覆盖率谱(即测试到源代码的覆盖率关系)作为精确的抽象语法增强的图形表示来保留覆盖率谱,从而缓解了其他基于学习的技术的局限性,这使其成为最先进的技术之一。然而,随着软件和相关覆盖率谱和AST图的复杂性增加,这种表示方法在可扩展性方面存在困难。在本研究中,我们提出了一种新的图形表示DepGraph,通过将图形表示中的过程间调用图集成到代码的图形表示中,将图形表示的复杂性降低了70%。此外,我们将代码更改信息等附加功能作为属性集成到图中,以便模型可以利用丰富的历史项目数据。我们使用Defects4j 2.0.0评估了DepGraph,并且它在Top-1中定位了比Grace多20%的故障,并将Mean First Rank(MFR)和Mean Average Rank(MAR)提高了50%以上,同时将GPU内存使用量降低了44%,训练/推理时间缩短了85%。此外,在跨项目设置中,DepGraph超过了最先进的基线,Top-1准确性提高了42%,MFR和MAR分别提高了68%和65%。我们的研究表明,DepGraph具有鲁棒性,实现了最先进的准确性和可扩展性,可用于未来的扩展和采用。
  • 作者讲解
  • 图表
  • 解决问题
    提出一种新的图表示法DepGraph,以解决现有图表示法在软件故障定位中的可扩展性问题,并结合历史项目数据提高故障定位的准确性。
  • 关键思路
    DepGraph将函数调用图整合到代码的图表示中,同时将代码变更信息作为属性添加到图中,从而减少了图的复杂性并提高了准确性和可扩展性。
  • 其它亮点
    在Defects4j 2.0.0数据集上进行了实验,DepGraph在Top-1定位故障的准确率上比Grace高20%,MFR和MAR均提高了50%以上,同时减少了GPU内存使用量44%,训练/推理时间缩短了85%。在跨项目设置中,DepGraph的Top-1准确率比基线高42%,MFR和MAR分别提高了68%和65%。
  • 相关研究
    与本文相关的研究包括基于统计方法的覆盖率故障定位技术和其他基于学习的技术,如基于GNN的Grace方法。
许愿开讲
PDF
原文
点赞 收藏
向作者提问
NEW
分享到Link

提问交流

提交问题,平台邀请作者,轻松获得权威解答~

向作者提问