Transfer Learning Code Vectorizer based Machine Learning Models for Software Defect Prediction

Rituraj Singh, Jasmeet Singh, M. S. Gill, R. Malhotra, Garima
{"title":"Transfer Learning Code Vectorizer based Machine Learning Models for Software Defect Prediction","authors":"Rituraj Singh, Jasmeet Singh, M. S. Gill, R. Malhotra, Garima","doi":"10.1109/ComPE49325.2020.9200076","DOIUrl":null,"url":null,"abstract":"Software development life cycle comprises of planning, design, implementation, testing and eventually, deployment. Software defect prediction can be used in the initial stages of the development life cycle for identifying defective modules. Researchers have devised various methods that can be used for effective software defect prediction. The prediction of the presence of defects or bugs in a software module can facilitate the testing process as it would enable developers and testers to allocate their time and resources on modules that are prone to defects. Transfer learning can be used for transferring knowledge obtained from one domain into the other. In this paper, we propose Transfer Learning Code Vectorizer, a novel method that derives features from the text of the software source code itself and uses those features for defect prediction. We focus on the software code and convert it into vectors using a pre-trained deep learning language model. These code vectors are subsequently passed through machine and deep learning models. Further, we compare the results of using deep learning on the text of the software code versus the usage of software metrics for prediction of defects. In terms of weighted F1 scores, the experiments show that applying the proposed TLCV method outperforms the other machine learning techniques by 9.052%.","PeriodicalId":6804,"journal":{"name":"2020 International Conference on Computational Performance Evaluation (ComPE)","volume":"74 1","pages":"497-502"},"PeriodicalIF":0.0000,"publicationDate":"2020-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2020 International Conference on Computational Performance Evaluation (ComPE)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ComPE49325.2020.9200076","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 6

Abstract

Software development life cycle comprises of planning, design, implementation, testing and eventually, deployment. Software defect prediction can be used in the initial stages of the development life cycle for identifying defective modules. Researchers have devised various methods that can be used for effective software defect prediction. The prediction of the presence of defects or bugs in a software module can facilitate the testing process as it would enable developers and testers to allocate their time and resources on modules that are prone to defects. Transfer learning can be used for transferring knowledge obtained from one domain into the other. In this paper, we propose Transfer Learning Code Vectorizer, a novel method that derives features from the text of the software source code itself and uses those features for defect prediction. We focus on the software code and convert it into vectors using a pre-trained deep learning language model. These code vectors are subsequently passed through machine and deep learning models. Further, we compare the results of using deep learning on the text of the software code versus the usage of software metrics for prediction of defects. In terms of weighted F1 scores, the experiments show that applying the proposed TLCV method outperforms the other machine learning techniques by 9.052%.
基于迁移学习代码矢量器的软件缺陷预测机器学习模型
软件开发生命周期包括计划、设计、实现、测试和最终的部署。软件缺陷预测可以在开发生命周期的初始阶段用于识别有缺陷的模块。研究人员已经设计了各种方法,可以用于有效的软件缺陷预测。对软件模块中存在的缺陷或错误的预测可以促进测试过程,因为它将使开发人员和测试人员能够将他们的时间和资源分配到容易出现缺陷的模块上。迁移学习可以用于将从一个领域获得的知识转移到另一个领域。在本文中,我们提出了一种从软件源代码本身的文本中提取特征并使用这些特征进行缺陷预测的新方法——迁移学习代码矢量器。我们专注于软件代码,并使用预训练的深度学习语言模型将其转换为向量。这些代码向量随后通过机器和深度学习模型传递。此外,我们比较了在软件代码文本上使用深度学习的结果与使用软件度量来预测缺陷的结果。在加权F1分数方面,实验表明,应用所提出的TLCV方法优于其他机器学习技术9.052%。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信