[发明专利]一种软件缺陷预测方法、装置、电子设备及计算机存储介质在审
申请号: | 202010222414.4 | 申请日: | 2020-03-26 |
公开(公告)号: | CN111522736A | 公开(公告)日: | 2020-08-11 |
发明(设计)人: | 张叶迪;李祖德 | 申请(专利权)人: | 中南大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 肖云 |
地址: | 410083 湖南*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 软件 缺陷 预测 方法 装置 电子设备 计算机 存储 介质 | ||
本发明提供了一种软件缺陷预测方法、装置、电子设备及计算机存储介质,该方法先获得原始缺陷数据集,再获得类分布平衡的缺陷数据集,最后构建软件缺陷预测模型,能够获得比单一学习器更好的泛化性能。
技术领域
本发明属于软件缺陷预测技术领域,具体涉及一种软件缺陷预测方法、装置、电子设备及计算机存储介质。
背景技术
在软件项目的开发和维护过程中,软件缺陷的发生是无法避免的,而软件缺陷会致使软件质量下降,导致软件出现失效现象,无法正常运行,甚至威胁人们的财产和生命。影响软件质量的因素有很多,其中的首要因素正是软件缺陷。软件测试可以发现软件中存在的缺陷,是软件开发过程中保证软件质量最重要的方法之一。而软件缺陷预测技术可以有效地对对软件测试进行补充,帮助测试人员提前识别出软件中潜在的缺陷模块,从而对有限的资源进行合理分配,优先将资源用于对高风险的模块进行测试,在发现更多缺陷的同时节约大量的测试成本,从而提高软件质量。
具体来说,软件缺陷预测是根据软件的历史信息,收集整理与软件缺陷有关的数据,构建出可以用于训练模型的缺陷数据集,然后基于特定的方法构建软件缺陷预测模型,最后使用该模型进行软件缺陷预测,预测目标可以是软件模块内是否含有缺陷、含有的缺陷数或缺陷密度等。目前,软件缺陷预测模型的建立主要是基于机器学习或深度学习的方法,这些方法具有较好的可扩展性和通用性,在预测准确率方面也有不错的表现,但大部分模型在实际使用中仍然存在很多问题,其中类不平衡问题是最常见的问题。经研究发现,软件中百分之八十的缺陷存在于百分之二十的软件模块中,即软件中通常只有少量模块包含缺陷,无缺陷样本(少多数类)数远多于有缺陷样本(少数类)数,导致缺陷数据集中的多数类样本和少数类样本分布不平衡,这会干扰软件缺陷预测模型的训练,对少数类样本学习不足,导致预测结果偏向于多数类,无法建立起有效的软件缺陷预测模型。
目前对类不平衡问题已有不少研究,针对类不平衡问题的解决方法主要分为算法级别和数据级别。算法级别的方法是设计出适用于类不平衡数据的缺陷预测算法以提高对少数类样本的检出率,主要包括代价敏感学习、集成学习等。代价敏感学习方法通过增加对少数类误分类的代价,使得分类器在训练时可以加强对少数类的学习,这种方法虽然可以提高少有类的识别率,但无法准确地对不同类别的错误代价进行估计,这会影响代价敏感的结果。集成学习方法是通过构建多个个体学习器,然后合并这些学习器来完成学习任务,这种方法的泛化性能比单一学习器更好。数据级别的方法包括欠采样、过采样或混合采样方法,通过增加少数类样本、减少多数类样本或在增加少数类样本的同时减少多数类样本以改变原有的数据分布,使缺陷数据集达到类平衡。采样方法的思想简单并且容易实现,但是会导致产生噪声数据、过拟合、丢失信息过多等问题。
综上,目前尚无有效办法解决类不平衡问题。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种软件缺陷预测方法、装置、电子设备及计算机存储介质。
根据本发明第一方面实施例的软件缺陷预测方法,所述软件缺陷预测方法包括以下步骤:
S1:获得原始缺陷数据集;
S2:获得类分布平衡的缺陷数据集,所述类分布平衡的缺陷数据集,通过过采样所述原始缺陷数据集中的少数类样本后得到;
S3:构建软件缺陷预测模型。
根据本发明实施方式的软件缺陷预测方法,至少具有如下技术效果:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学,未经中南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010222414.4/2.html,转载请声明来源钻瓜专利网。