[发明专利]一种基于深度森林网络的软件缺陷预测方法在审
申请号: | 201711290710.2 | 申请日: | 2017-12-04 |
公开(公告)号: | CN107943704A | 公开(公告)日: | 2018-04-20 |
发明(设计)人: | 李斌;周天驰;孙小兵 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62;G06N99/00 |
代理公司: | 南京中新达专利代理有限公司32226 | 代理人: | 孙鸥,朱杰 |
地址: | 225009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 深度 森林 网络 软件 缺陷 预测 方法 | ||
技术领域
本发明属于软件分析与测试领域,特别涉及一种基于深度森林网络的软件缺陷预测方法。
背景技术
软件缺陷(software defect)产生于开发人员的编码过程中,需求理解不正确、软件开发过程不合理或开发人员的经验不足,均有可能产生软件缺陷.而含有缺陷的软件在运行时可能会产生意料之外的结果或行为,严重的时候会给企业造成巨大的经济损失,甚至会威胁到人们的生命安全.在软件项目的开发生命周期中,检测出内在缺陷的时间越晚,修复该缺陷的代价也越高.尤其在软件发布后,检测和修复缺陷的代价将大幅度增加.因此,项目主管借助软件测试或代码审查等软件质量保障手段,希望能够在软件部署前尽可能多地检测出内在缺陷.但是,若关注所有的程序模块会消耗大量的人力物力,因此,项目主管希望能够预先识别出可能含有缺陷的程序模块,并对其分配足够的测试资源。
在本发明作出之前,为了帮助软件开发人员尽可能地节省发现缺陷的成本,就需要尽可能地提高缺陷预测的精度,对于软件缺陷预测的研究主要集中在对于软件预测度量的构建和预测方法的设计。目前缺陷预测领域越来越多的利用机器学习的方法来构建分类器,但是由于目前数据集中存在的维数灾难问题和特征子集选择方法不够成熟,导致某些机器学习的分类器(如基于随机森林的缺陷预测分类器只能在大规模标记数据上取得较好的效果,而基于朴素贝叶斯的缺陷预测分类器只能在小规模数据上取得较好的效果)因此整体的缺陷预测精度不高,达不到工业级别所需要的精度要求。
发明内容
本发明的目的就是要克服上述缺陷,研发出一种基于深度森林网络的软件缺陷预测方法。
本发明技术方法是:
一种基于深度森林网络的代码缺陷预测方法,其主要技术特征在于如下步骤:
(1)挖掘代码历史仓库,抽取程序模块,对程序模块按照设定好的度量进行相关代码特征数据提取。
(2)将步骤(1)代码特征进行多粒度扫描,筛选出与缺陷相关度高的代码特征。
(3)利用步骤(2)中的缺陷特征构建多个随机森林和完全随机森林模型。
(4)将步骤(3)的多个随机森林级联成缺陷预测网络。
(5)对步骤(2)的缺陷特征向量按照设定比例进行随机切片,输入到步骤(4)中建立的缺陷预测网络进行训练,形成缺陷预测的分类器。
(6)将步骤(5)切片剩余的数据输入到缺陷预测分类器中,与真实标记的数据进行对比,验证训练效果,根据结果调整训练参数后得到最终的缺陷预测分类器。
本发明的优点和效果在于从深度森林网络的角度,结合多粒度扫描,级联森林等技术来构建缺陷预测分类器,提供有效的代码缺陷预测,帮助开发者合理使用测试资源,大大缩短了软件开发周期。具体说,主要有如下一些优点:
(1)目前软件预测方法只能在一些特定的数据集上取得一些精度较好的结果,但是其离工业应用还有一定的差距,本方法创新性地将机器学习方法深度森林应用到缺陷预测中,能够得到可靠的高精度分类器。
(2)本方法在已有的科学代码度量的前提下,利用多粒度扫描算法可以有效的筛选出适合缺陷预测的度量,从而减少训练集的采样,节省资源。
(3)本方法构建多层森林树的缺陷预测网络,可以在训练少量的数据集的情况下,获得良好的预测精度,大大节省了数据标记的成本。
附图说明
图1——本发明流程示意图。
图2——本发明中随机森林的示例图。
图3——本发明中预测模型的示例图。
图4——本发明中缺陷预测网络进行预测的示例图。
具体实施方式
本发明的技术思路是:
本发明主要帮助软件开发者和维护者更有效地检测软件的缺陷,从而提高软件的质量。首先选取真实的项目数据,按照设定好的度量进行数据提取,随后进行多粒度扫描筛选特征,之后构建多个机器学习分类器将并其级联组合形成新的分类器,输入切片的特征向量训练分类器,之后将待数据预测的数据输入到训练好的分类器,返回高精度的结果。高精度的预测结果可以极大地引导开发者进行代码缺陷的判断和维护,从而减少测试资源的投入,降低软件开发的成本。
下面具体说明本发明。
如图1所示,其步骤如下:
步骤1).对源代码按照设定好的度量进行特征数据提取。
部分数据处理如表一所示:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711290710.2/2.html,转载请声明来源钻瓜专利网。