利用源代码图的结构特性进行即时缺陷预测
软件工程
2022-01-26 v1 机器学习
摘要
数据可视化最常见的用途是降低复杂性以便于正确理解。图是理解关系数据最常用的表示形式之一。它生成数据的简化表示,如果以文本格式保存,则难以理解。在本研究中,我们提出了一种方法,利用源代码的关系属性以图的形式来识别软件系统在软件演化和维护的不同修订版本中的即时(JIT)缺陷预测。我们提出了一种将提交补丁的源代码转换为等效图表示的方法,并将其命名为源代码图(SCG)。为了理解和比较多个源代码图,我们提取了这些图的若干结构属性,例如密度、循环数、节点数、边数等。然后,我们利用这些SCG的属性值来可视化和检测有缺陷的软件提交。我们在本次调查中处理了来自12个主题系统的超过246K个软件提交。我们对这12个用C++和Java编程语言编写的开源软件项目的研究表明,如果将SCG的特征与类似研究中使用的传统特征相结合,我们将获得基于机器学习(ML)的有缺陷提交检测模型性能的提升。我们还发现,使用威尔科克森符号秩检验,预测有缺陷和无缺陷提交的F1分数提升在统计上是显著的。由于基于SCG的特征值代表了软件系统中源代码更新或变更的风格或结构属性,这表明了谨慎维护源代码风格或结构对于保持软件系统无缺陷的重要性。
引用
@article{arxiv.2201.10137,
title = {Leveraging Structural Properties of Source Code Graphs for Just-In-Time Bug Prediction},
author = {Md Nadim and Debajyoti Mondal and Chanchal K. Roy},
journal= {arXiv preprint arXiv:2201.10137},
year = {2022}
}
备注
Has been accepted for publication Automated Software Engineering (AUSE), an International Journal published by Springer