中文

类型检查的力量:探究类型检查对动态类型语言神经缺陷检测的影响

软件工程 2025-01-17 v2 机器学习 编程语言

摘要

动机:在Python等动态类型语言中,自动化缺陷检测对于维护代码质量至关重要。缺乏强制类型注解可能导致传统静态分析工具难以早期识别的错误。深度神经网络的近期进展促进了神经缺陷检测器的使用增加。在静态类型语言中,类型检查器集成在编译器中,因此在为这些语言设计神经缺陷检测器时会考虑类型检查。问题:然而,先前的研究在训练和测试动态类型语言的神经缺陷检测器时忽略了这一方面。当使用可选的类型检查器时,在类型检查器容易检测的缺陷上评估现有神经缺陷检测器可能会影响其性能评估。此外,将这些缺陷包含在神经缺陷检测器的训练集中可能会使其检测焦点偏向错误的缺陷类型。贡献:我们探讨了类型检查对各种针对变量误用缺陷(神经缺陷检测器常见的目标类型)的神经缺陷检测器的影响。对现有的合成和真实世界数据集进行类型检查,以评估类型相关缺陷的普遍性。然后,我们研究了类型相关缺陷如何影响神经缺陷检测器的训练和测试。发现:我们的发现表明,现有的缺陷检测数据集包含大量类型相关缺陷。基于这一见解,我们发现将神经缺陷检测器与类型检查器集成可能是有益的,尤其是在代码带有类型注解时。进一步的研究表明,神经缺陷检测器在类型相关缺陷上的表现优于其他缺陷。此外,从训练数据中移除类型相关缺陷有助于提高神经缺陷检测器识别超出类型检查器范围缺陷的能力。

关键词

引用

@article{arxiv.2411.15368,
  title  = {The Power of Types: Exploring the Impact of Type Checking on Neural Bug Detection in Dynamically Typed Languages},
  author = {Boqi Chen and José Antonio Hernández López and Gunter Mussbacher and Dániel Varró},
  journal= {arXiv preprint arXiv:2411.15368},
  year   = {2025}
}

备注

Accepted by ICSE'25 Research Track