当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Understanding machine learning software defect predictions
Automated Software Engineering ( IF 2.0 ) Pub Date : 2020-10-12 , DOI: 10.1007/s10515-020-00277-4
Geanderson Esteves , Eduardo Figueiredo , Adriano Veloso , Markos Viggiato , Nivio Ziviani

Software defects are well-known in software development and might cause several problems for users and developers aside. As a result, researches employed distinct techniques to mitigate the impacts of these defects in the source code. One of the most notable techniques focuses on defect prediction using machine learning methods, which could support developers in handling these defects before they are introduced in the production environment. These studies provide alternative approaches to predict the likelihood of defects. However, most of these works concentrate on predicting defects from a vast set of software features. Another key issue with the current literature is the lack of a satisfactory explanation of the reasons that drive the software to a defective state. Specifically, we use a tree boosting algorithm (XGBoost) that receives as input a training set comprising records of easy-to-compute characteristics of each module and outputs whether the corresponding module is defect-prone. To exploit the link between predictive power and model explainability, we propose a simple model sampling approach that finds accurate models with the minimum set of features. Our principal idea is that features not contributing to increasing the predictive power should not be included in the model. Interestingly, the reduced set of features helps to increase model explainability, which is important to provide information to developers on features related to each module of the code which is more defect-prone. We evaluate our models on diverse projects within Jureczko datasets, and we show that (i) features that contribute most for finding best models may vary depending on the project and (ii) it is possible to find effective models that use few features leading to better understandability. We believe our results are useful to developers as we provide the specific software features that influence the defectiveness of selected projects.

中文翻译:

了解机器学习软件缺陷预测

软件缺陷在软件开发中是众所周知的,除了可能会给用户和开发人员带来一些问题。因此,研究采用了不同的技术来减轻源代码中这些缺陷的影响。最著名的技术之一是使用机器学习方法进行缺陷预测,这可以支持开发人员在将这些缺陷引入生产环境之前对其进行处理。这些研究提供了预测缺陷可能性的替代方法。然而,这些工作中的大多数都集中在从大量软件功能中预测缺陷。当前文献的另一个关键问题是缺乏对导致软件进入缺陷状态的原因的令人满意的解释。具体来说,我们使用树提升算法 (XGBoost),该算法接收训练集作为输入,该训练集包含每个模块易于计算的特征记录,并输出相应模块是否容易出现缺陷。为了利用预测能力和模型可解释性之间的联系,我们提出了一种简单的模型采样方法,该方法可以找到具有最少特征集的准确模型。我们的主要想法是,模型中不应包含对提高预测能力没有贡献的特征。有趣的是,减少的特征集有助于提高模型的可解释性,这对于向开发人员提供与代码的每个模块相关的特征的信息很重要,这些模块更容易出现缺陷。我们在 Jureczko 数据集中的不同项目上评估我们的模型,并且我们表明 (i) 对寻找最佳模型贡献最大的特征可能因项目而异,以及 (ii) 有可能找到使用很少特征的有效模型,从而获得更好的可理解性。我们相信我们的结果对开发人员有用,因为我们提供了影响所选项目缺陷的特定软件功能。
更新日期:2020-10-12
down
wechat
bug