摘要
软件缺陷预测技术通过挖掘和分析软件库训练出软件缺陷预测模型,随后利用该模型来预测出被测软件项目内的缺陷程序模块,因此可以有效地优化测试资源的分配.在基于代价感知的评测指标下,有监督学习方法与无监督学习方法之间的预测性能比较是最近的一个热门研究话题.其中在基于文件粒度的缺陷预测问题中,Yan等人最近对Yang等人考虑的无监督学习方法和有监督学习方法展开了大规模实证研究,结果表明存在一些无监督学习方法,其性能要优于有监督方法.基于来自开源社区的10个项目展开了实证研究.结果表明:在同项目缺陷预测场景中,若基于ACC评测指标,MULTI方法与最好的无监督方法和有监督方法相比,其预测性能平均有105.81%和123.84%的提高;若基于POPT评测指标,MULTI方法与最好的无监督方法和有监督方法相比,其预测性能平均有35.61%和38.70%的提高.在跨项目缺陷预测场景中,若基于ACC评测指标,MULTI方法与最好的无监督方法和有监督方法相比,其预测性能平均有22.42%和34.95%的提高.若基于POPT评测指标,MULTI方法与最好的无监督方法和有监督方法相比,其预测性能平均有11.45%和17.92%的提高.同时,基于Huang等人提出的PMI和IFA评测指标,MULTI方法的表现与代价感知的指标相比存在一定的折衷问题,但仍好于在ACC和POPT评测指标下表现最好的两种无监督学习方法.除此之外,将MULTI方法与最新提出的OneWay和CBS方法进行了比较,结果表明,MULTI方法在性能上仍然可以显著优于这两种方法.同时,基于F1评测指标的结果也验证了MULTI方法在预测性能上的显著优越性.最后,通过分析模型构建的时间开销,表明MULTI方法的模型构建开销对开发人员来说处于可接受的范围之内.
By mining software repositories,software defect prediction can construct models to predict potential defective modules of projects under testing in advance and then optimize the allocation of test resources.When considering effort-aware performance measures,the performance comparison between supervised methods and unsupervised methods has been a recent hot topic.In the recent study for file-level defect prediction problem,Yan et al.conducted empirical studies by using unsupervised and supervised methods considered by Yang et al.and obtained the conclusion that some unsupervised methods can outperform the supervised methods.The empirical studies based on 10 projects from the open source community were conducted.Final results show that under the within-project defect prediction scenario,MULTI method can improve 105.81%and 123.84%respectively on average when compared to the best unsupervised method and the best supervised method based on ACC performance measure.While MULTI method can improve 35.61%and 38.70%respectively on average when compared to the best unsupervised method and the best supervised method based on POPT performance measure.Under the cross-project defect prediction scenario,MULTI method can improve 22.42%and 34.95%respectively on average when compared to the best unsupervised method and the best supervised method based on ACC performance measure.While MULTI method can improve 11.45%and 17.92%respectively on average when compared to the best unsupervised method and the best supervised method based on POPT performance measure.Based on PMI and IFA performance measures proposed by Huang et al.,it is found that MULTI method has the issue of trade-off,but it is still better than the best two unsupervised methods when considering ACC and POPT performance measures.Besides,MULTI method is compared with the recently proposed OneWay and CBS methods.The results show that MULTI performs significantly better than these two methods.Based on F1 performance measure,MULTI method also shows the superiority.Finally,the
作者
陈翔
赵英全
顾庆
倪超
王赞
CHEN Xiang;ZHAO Ying-Quan;GU Qing;NI Chao;WANG Zan(School of Information Science and Technology,Nantong University,Nantong 226019,China;State Key Laboratory for Novel Software Technology(Nanjing University),Nanjing 210023,China;Guangxi Key Laboratory of Trusted Software(Guilin University of Electronic Technology),Guilin 541004,China;School of Computer Software,Tianjin University,Tianjin 300072,China)
出处
《软件学报》
EI
CSCD
北大核心
2019年第12期3694-3713,共20页
Journal of Software
基金
国家自然科学基金(61702041,61602267,61202006)
南京大学计算机软件新技术国家重点实验室开放课题(KFKT2019B14)
广西可信软件重点实验室研究课题(kx201610)
南通市应用研究计划(JC2018134)
江苏省政府留学奖学金~~
关键词
软件质量保障
软件缺陷预测
有监督学习
无监督学习
多目标优化
software quality assurance
software defect prediction
supervised learning
unsupervised learning
multi-objective optimization