Detecting Bug Inducing Commit (BIC) or Just in Time (JIT) defect prediction using Machine Learning (ML) based models requires tabulated feature values extracted from the source code or historical maintenance data of a software system. Existing studies have utilized meta-data from source code repositories (we named them GitHub Statistics or GS), n-gram-based source code text processing, and developer's information (e.g., the experience of a developer) as the feature values in ML-based bug detection models. However, these feature values do not represent the source code syntax styles or patterns that a developer might prefer over available valid alternatives provided by programming languages. This investigation proposed a method to extract features from its source code syntax patterns to represent software commits and investigate whether they are helpful in detecting bug proneness in software systems. We utilize six manually and two automatically labeled datasets from eight open-source software projects written in Java, C++, and Python programming languages. Our datasets contain 642 manually labeled and 4,014 automatically labeled buggy and non-buggy commits from six and two subject systems, respectively. The subject systems contain a diverse number of revisions, and they are from various application domains. Our investigation shows the inclusion of the proposed features increases the performance of detecting buggy and non-buggy software commits using five different machine learning classification models. Our proposed features also perform better in detecting buggy commits using the Deep Belief Network generated features and classification model. This investigation also implemented a state-of-the-art tool to compare the explainability of predicted buggy commits using our proposed and traditional features and found that our proposed features provide better reasoning about buggy.....
翻译:使用机器学习(ML)模型检测错误诱导器(BIC)或只是时间时(JIT)的错误预测,使用机器学习(ML)模型,这些特性值并不代表源代码合成样式或模式,而开发者可能更喜欢从软件系统源代码代码或历史维护数据中提取有效特性的制表特征值。现有研究使用了源代码存储器(我们称之为GitHub Statistic 或GS)的元数据、基于 ngggg的源代码文本处理以及开发者信息(例如开发者的经验)作为基于 ML 错误检测模型的特性值。然而,这些特性值并不代表源代码合成样式或模式,而开发者可能更喜欢从源代码代码代码代码或软件系统历史维护数据特性中提取有效特性的制表值。这项调查提议采用的方法是从其源代码错误编码税税模式中提取特征,以显示软件系统是否有助于发现软件系统中的漏洞。我们提议的系统(如Java、C++和Python编程程序语言)的8个开源源源源软件分类系统(如6个系统),我们提议的不易和不易变变的系统,我们提议的系统(我们提议的系统)将使用不同的解算算取的系统,我们的拟议的系统和不易变换的系统)。