[发明专利]基于深度神经网络和概率决策森林的软件缺陷预测模型在审
申请号: | 201811282618.6 | 申请日: | 2018-10-31 |
公开(公告)号: | CN109446090A | 公开(公告)日: | 2019-03-08 |
发明(设计)人: | 邱宇;徐思涵;刘奥;朱静雯;许静 | 申请(专利权)人: | 南开大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 天津耀达律师事务所 12223 | 代理人: | 侯力 |
地址: | 300071*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 森林 概率 决策 代码修改 缺陷预测 软件缺陷 特征学习 预测模型 端到端 参数优化 传统特征 分类结果 集成学习 模型集成 模型使用 使用概率 输出节点 随机森林 自动学习 分类器 决策树 分裂 准确率 高维 映射 分类 全局 改进 网络 | ||
本发明公开了一种基于深度神经网络和概率决策森林的静态软件缺陷预测模型。该模型使用概率决策森林为分类器,将深度神经网络的特征学习和概率决策森林相结合进行端到端训练,并提出一套完整、全局的端到端参数优化方法。该模型首先从软件的代码修改中提取传统特征并使用深度神经网络进行高维映射,然后改进了随机森林,提出概率决策森林,并使用概率决策森林进行分类。将概率决策森林中决策树的分裂节点与深度神经网络的输出节点直接相连,使分裂节点由深度神经网络自动学习得到,因此可以使网络的特征学习过程受分类结果所约束。最后,使用集成学习将上述模型集成,并进行缺陷预测。使用该模型可以有效的提高对代码修改进行缺陷预测的准确率。
技术领域
本发明属于静态软件缺陷预测的技术领域,具体涉及一种基于深度神经网络和概率决策森林的软件缺陷预测模型。
背景技术
软件缺陷是指开发人员在进行软件开发过程中,由于开发经验不足、编程失误或者开发过程不合理等原因,而造成的软件中包含许多没有被开发人员发现的缺陷。软件缺陷严重影响了软件质量,包含缺陷的软件在运行过程中可能会产生未知的错误而影响软件的使用,严重时可能会导致软件崩溃或用户信息泄露等问题,从而给企业和用户造成重大的损失。由于软件缺陷的种种危害,进行必要的软件缺陷修复工作迫在眉睫。然而,繁琐的代码审查和调试工作会浪费大量的人力和物力,进而导致软件成本增加、开发周期延长等问题。因此尽早的识别出软件中可能包含的种种缺陷来保证软件质量,在软件开发和维护过程中扮演着重要角色。
软件缺陷预测是进行缺陷识别的一个重要的手段。缺陷预测方法主要有静态缺陷预测和动态缺陷预测,其中,静态缺陷预测具有高效性和及时性等优点,是目前常用的一种手段。静态软件缺陷预测主要是指利用软件开发过程中的历史数据以及现已发现的缺陷,借助机器学习等方法预测软件中是否包含缺陷、缺陷数量或缺陷类型等。静态软件缺陷预测在软件工程领域具有重要意义,有助于产生高质量软件并帮助开发人员节省代码审查时间。
传统的静态缺陷预测模型是基于程序模块的,即预测程序中一个文件、包、类或函数中是否包含缺陷,并根据预测结果将该程序模块标记为有缺陷或无缺陷。这种静态缺陷预测存在许多不足。首先,它无法细粒度的定位缺陷,当预测模型预测出某一程序模块中包含缺陷时,开发人员仍然需要花费大量时间和精力去审查和调试该模块以发现缺陷在模块中的具体位置。其次,一个大型的软件系统往往是由很多开发人员经过多次修改共同完成的,当发现某一程序模块含有缺陷时,无法准确的识别出引入该缺陷的开发人员,从而使代码修复工作变得更加困难。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南开大学,未经南开大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811282618.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于区块链技术的软件测试平台
- 下一篇:业务实体对象测试方法及装置