论文标题
IRJIT:一种简单的,在线的,信息检索方法,用于即时软件缺陷预测
IRJIT: A Simple, Online, Information Retrieval Approach for Just-In-Time Software Defect Prediction
论文作者
论文摘要
即将到来的软件缺陷预测(JIT-SDP)通过在提交入住时间识别识别它们来防止缺陷引入软件。当前的软件缺陷预测方法依赖于手动制作的功能,例如更改指标,并涉及培训机器学习或深度学习模型的昂贵。这些模型通常涉及广泛的培训过程,可能需要大量的计算资源和时间。这些特征在尝试实时更新模型时可能会构成挑战,因为新示例可用,可能会影响其对快速在线缺陷预测的适用性。此外,对复杂基础模型的依赖使这些方法通常较不可解释,这意味着开发人员无法理解模型预测背后的原因。由于开发人员对其结果缺乏信任,因此在现实生活中无法解释的方法可能无法采用。为了解决这些限制,我们提出了一种称为IRJIT的方法,该方法采用源代码的信息检索,并根据其与过去的货运或清洁提交相似,将新提交标记为货车或清洁。 IRJIT方法是在线和可以解释的,因为它可以在不昂贵的重新培训的情况下从新数据中学习,并且开发人员可以看到支持预测的文档,提供其他上下文。通过在项目设置内评估10个开源数据集,我们表明我们的方法的速度比最先进的ML和DL方法快112倍,在提交和线路级别提供了可解释性,并且具有可比性的性能。
Just-in-Time software defect prediction (JIT-SDP) prevents the introduction of defects into the software by identifying them at commit check-in time. Current software defect prediction approaches rely on manually crafted features such as change metrics and involve expensive to train machine learning or deep learning models. These models typically involve extensive training processes that may require significant computational resources and time. These characteristics can pose challenges when attempting to update the models in real-time as new examples become available, potentially impacting their suitability for fast online defect prediction. Furthermore, the reliance on a complex underlying model makes these approaches often less explainable, which means the developers cannot understand the reasons behind models' predictions. An approach that is not explainable might not be adopted in real-life development environments because of developers' lack of trust in its results. To address these limitations, we propose an approach called IRJIT that employs information retrieval on source code and labels new commits as buggy or clean based on their similarity to past buggy or clean commits. IRJIT approach is online and explainable as it can learn from new data without expensive retraining, and developers can see the documents that support a prediction, providing additional context. By evaluating 10 open-source datasets in a within project setting, we show that our approach is up to 112 times faster than the state-of-the-art ML and DL approaches, offers explainability at the commit and line level, and has comparable performance to the state-of-the-art.