当前位置:主页 > 科技论文 > 软件论文 >

跨项目软件缺陷预测方法研究综述

发布时间:2018-05-28 03:38

  本文选题:经验软件工程 + 软件缺陷预测 ; 参考:《计算机学报》2018年01期


【摘要】:软件缺陷预测首先通过挖掘与分析软件历史仓库,从中抽取程序模块并进行类型标记.随后通过分析软件代码的内在复杂度或开发过程特征,设计出与软件缺陷存在强相关性的度量元,并对这些程序模块进行度量.最后借助特定的机器学习方法基于上述数据构建出缺陷预测模型.因此该方法可以在项目开发的早期阶段,通过预先识别出项目内的可疑缺陷模块,达到优化测试资源分配的目的.但在实际软件开发场景中,需要进行缺陷预测的项目可能是一个新启动项目,或这个项目的历史训练数据比较稀缺.一种简单的解决方案是利用其他项目已经搜集的训练数据来构建缺陷预测模型.但不同项目之间因所处的应用领域、采用的开发流程、使用的编程语言、开发人员经验等并不相同,因此对应数据集间会存在较大的分布差异性并造成该方案的实际性能并不理想,因此如何通过有效迁移源项目的相关知识来为目标项目构建预测模型,吸引了国内外研究人员的关注,并将该问题称为跨项目软件缺陷预测问题.论文针对该问题进行了系统综述.根据预测场景的不同,将已有方法分为3类:基于有监督学习的方法、基于无监督学习的方法和基于半监督学习的方法.其中基于有监督学习的方法主要基于候选源项目集的程序模块来构建模型.这类方法根据源项目与目标项目采用的度量元是否相同又可以细分为同构跨项目缺陷预测方法和异构跨项目缺陷预测方法.针对前者,研究人员主要从度量元取值转换、实例选择和权重设置、特征映射和特征选择、集成学习、类不平衡学习等角度展开研究.而后者更具研究挑战性,研究人员主要基于特征映射和典型相关分析等方法展开研究.基于无监督学习的方法直接尝试对目标项目中的程序模块进行预测.这类方法假设在软件缺陷预测问题中,有缺陷模块的度量元取值存在高于无缺陷模块的度量元取值的倾向.因此研究人员主要基于聚类方法展开研究.而基于半监督学习的方法则会综合使用候选源项目集的程序模块和目标项目中的少量已标记模块来构建模型.这类方法通过尝试从目标项目中选出少量模块进行标记,以提高跨项目缺陷预测的性能.研究人员主要借助集成学习和TrAdaBoost方法展开研究.论文依次对每一类方法的已有研究成果进行了系统梳理和点评.随后论文进一步总结了跨项目缺陷预测研究中经常使用的性能评测指标和评测数据集,其统计结果可以辅助研究人员针对该问题进行合理的实验设计.最后总结全文,并分别从数据集搜集、数据集预处理、模型构建和评估、模型应用这4个维度对未来值得关注的研究方向进行了展望.
[Abstract]:Firstly, software defect prediction is done by mining and analyzing the software history warehouse, extracting the program module from it and marking the software type. Then, by analyzing the inherent complexity of software code or the characteristics of the development process, a measure element with strong correlation with software defects is designed, and these program modules are measured. Finally, a defect prediction model based on the above data is constructed with the help of specific machine learning methods. Therefore, this method can be used to optimize the allocation of test resources in the early stage of project development by pre-identifying the suspicious defect modules in the project. However, in the actual software development scenario, the project requiring defect prediction may be a newly started project, or the historical training data of the project may be scarce. A simple solution is to build defect prediction models using training data already collected by other projects. However, because of the application field, the development process, the programming language used, the experience of the developer and so on, the different projects are not the same. Therefore, there is a large distribution difference between the corresponding data sets and the actual performance of the scheme is not ideal. Therefore, how to build a prediction model for the target project by effectively migrating the relevant knowledge of the source project. It has attracted the attention of researchers at home and abroad and called this problem a cross-project software defect prediction problem. A systematic review of the problem is given in this paper. According to the different prediction scenarios, the existing methods are divided into three categories: one based on supervised learning, another based on unsupervised learning and one based on semi-supervised learning. The method based on supervised learning is mainly based on the program module of candidate source itemset to construct the model. This kind of method can be subdivided into isomorphic cross-project defect prediction method and heterogeneous cross-project defect prediction method according to whether the measure elements used in source project and target project are the same or not. For the former, the researchers mainly focus on the measurement element conversion, case selection and weight setting, feature mapping and feature selection, integrated learning, class imbalance learning and so on. The latter is more challenging, and the research is mainly based on feature mapping and canonical correlation analysis. Based on the unsupervised learning method, we try to predict the program module in the target project directly. This method assumes that in the software defect prediction problem, the metric element of the defective module tends to be higher than that of the non-defect module. So the research is mainly based on clustering method. The method based on semi-supervised learning combines the program modules of candidate source itemsets and a small number of tagged modules in target projects to construct the model. This method can improve the performance of cross-project defect prediction by selecting a small number of modules from the target project to mark. The researchers mainly use integrated learning and TrAdaBoost method to carry out the research. In this paper, the existing research results of each kind of methods are systematically combed and reviewed in turn. Then the paper summarizes the performance evaluation indexes and data sets which are often used in the research of cross-project defect prediction. The statistical results can be used to assist the researchers to carry out reasonable experimental design for this problem. Finally, this paper summarizes the whole paper, and looks forward to the future research direction from the four dimensions of data collection, data set preprocessing, model construction and evaluation, and model application.
【作者单位】: 南通大学计算机科学与技术学院;南京大学计算机软件新技术国家重点实验室;天津大学软件学院;
【基金】:国家自然科学基金(61202006,61202030,61373012,61402244,61602267) 南京大学计算机软件新技术国家重点实验室开放课题(KFKT2016B18) 江苏省高校自然科学研究项目(15KJB520030,16KJB520038)资助~~
【分类号】:TP311.53

【相似文献】

相关期刊论文 前10条

1 ;软件缺陷词典正在制定[J];软件世界;2007年06期

2 王德胜;宫云战;;论软件缺陷[J];计算机应用研究;2008年12期

3 聂剑平;韩柯;陈光;曹旭;;软件缺陷增长过程的混沌分析[J];计算机工程与应用;2008年11期

4 刘海;郝克刚;;软件缺陷数据的分析方法及其实现[J];计算机科学;2008年08期

5 熊斐;李建忠;徐中望;;软件缺陷管理与防范[J];科技创新导报;2009年04期

6 石剑飞;杨欣;秦玮;闫怀志;;一种软件缺陷预测改进模型的研究[J];北京理工大学学报;2010年09期

7 缪林松;;基于代价敏感神经网络算法的软件缺陷预测[J];电子科技;2012年06期

8 朱小燕;曲俊燕;;浅析软件缺陷的问题[J];无线互联科技;2013年04期

9 田华;蒲天银;;基于迁移学习的软件缺陷预测方法研究[J];西南师范大学学报(自然科学版);2014年03期

10 宫云战;论软件缺陷[J];装甲兵工程学院学报;2003年01期

相关会议论文 前8条

1 赵修湘;石勇;刘莹;张玲玲;;文本分类在软件缺陷管理中的应用[A];第四届(2009)中国管理学年会——管理科学与工程分会场论文集[C];2009年

2 李立清;;软件缺陷数据的分析和预测[A];第三届中国测试学术会议论文集[C];2004年

3 李立清;;用软件缺陷数据进行缺陷预测[A];中国工程物理研究院科技年报(2005)[C];2005年

4 赵亮;侯金宝;;文件和包层次的软件缺陷预测研究[A];第十四届全国容错计算学术会议(CFTC'2011)论文集[C];2011年

5 于秀山;王广俭;;软件缺陷管理[A];中国电子学会可靠性分会第十三届学术年会论文选[C];2006年

6 寇纲;彭怡;石勇;;基于数据挖掘的软件缺陷度量评估管理及研究现状综述[A];第三届(2008)中国管理学年会——信息管理分会场论文集[C];2008年

7 高通;焦彦平;龚波;;基于曲线拟合的软件缺陷排除成本预测[A];2010年全国通信安全学术会议论文集[C];2010年

8 涂亚明;毛军鹏;余静;尹磊;;系统测试阶段的软件缺陷预测模型分析[A];第六届中国测试学术会议论文集[C];2010年

相关重要报纸文章 前1条

1 谢敏、戴金龙;追踪每一个软件缺陷[N];计算机世界;2005年

相关博士学位论文 前9条

1 Gabriel Kofi Armah;[D];电子科技大学;2015年

2 王伟光;动态软件缺陷测试关键技术研究[D];南京大学;2016年

3 陈琳;基于机器学习的软件缺陷预测研究[D];重庆大学;2016年

4 于巧;基于机器学习的软件缺陷预测方法研究[D];中国矿业大学;2017年

5 陈媛;基于数据挖掘的软件缺陷预测技术研究[D];中国科学院研究生院(长春光学精密机械与物理研究所);2012年

6 马樱;基于机器学习的软件缺陷预测技术研究[D];电子科技大学;2012年

7 单纯;软件缺陷分布预测技术及应用研究[D];北京理工大学;2015年

8 张凯;软件缺陷混沌分形描述与软件质量进化度量的研究[D];武汉理工大学;2005年

9 杨晓杏;基于度量元的软件缺陷预测技术[D];中国科学技术大学;2014年

相关硕士学位论文 前10条

1 赵长凯;软件缺陷管理与预测系统的设计[D];复旦大学;2013年

2 张亮;基于改进BP算法的软件缺陷预测模型研究[D];北京理工大学;2015年

3 王男帅;基于遗传优化支持向量机的软件缺陷预测模型研究[D];北京理工大学;2015年

4 陈艳;软件缺陷管理技术研究与实现[D];电子科技大学;2014年

5 李碧雯;基于迁移学习的跨项目软件缺陷预测[D];上海交通大学;2015年

6 梁天超;一种基于人工免疫朴素贝叶斯方法的软件缺陷预测模型[D];南京邮电大学;2015年

7 陈家强;软件缺陷预测中数据预处理技术研究[D];南京大学;2014年

8 江晓苏;鱼群优化的多核支持向量机在软件缺陷预测中的应用[D];重庆师范大学;2016年

9 权衡;基于Web的软件缺陷管理系统的设计与实现[D];华中科技大学;2014年

10 刘庆山;基于复杂网络的动态软件缺陷预测算法研究[D];燕山大学;2016年



本文编号:1945117

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/1945117.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户7267c***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com