[发明专利]一种基于多粒度节点的软件缺陷预测方法在审
申请号: | 202111433635.7 | 申请日: | 2021-11-29 |
公开(公告)号: | CN114371989A | 公开(公告)日: | 2022-04-19 |
发明(设计)人: | 邱少健;林子濠;丰鑫 | 申请(专利权)人: | 诺维艾创(广州)科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 510800 广东省广州市花都*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 粒度 节点 软件 缺陷 预测 方法 | ||
本发明涉及G06F11/36领域,具体为一种基于多粒度节点的软件缺陷预测方法,包括代码解析步骤,向量转化步骤,提取特征步骤和缺陷预测步骤,通过分别采用DBN和CNN从代码当中提取DL‑Generated特征,构建模型并开展软件缺陷预测,通过对节点粒度的选择进行研究和讨论,得到一个合适的粒度选择,可进一步提高深度学习提取特征的有效性,进而比较它们的有效性并选择合适的节点粒度进行软件缺陷预测,为软件缺陷预测研究者们选择抽象语法树粒度时提供参考的同时,在软件开发过程中可有效辅助开发人员判断和识别出新版本软件项目中潜在的风险和软件缺陷,具有很高的实际应用价值。
技术领域
本发明涉及G06F11/36领域,具体为一种基于多粒度节点的软件缺陷预测方法。
背景技术
随着现代软件规模的不断增加,软件的复杂性愈加提升,因此在软件开发和维护的过程中,调试和测试的任务也更加的困难。近年来,相关研究人员开始探索软件缺陷预测方法,辅助和帮助开发者进行软件缺陷的查找和预测。软件缺陷预测技术基于机器学习方法,利用历史的缺陷数据建立模型,预测新的代码是否有缺陷倾向。出色的软件缺陷预测模型可有效地统计和预测软件系统中缺陷的数目和分布,以此帮助开发和测试团队了解软件质量状态,从而合理分配测试资源,节省软件的测试成本。
为了训练出预测准确度高的模型,从软件缺陷数据中提取的代码特征起着至关重要的作用。目前多数软件缺陷预测方法利用的特征是人为选择的Handcrafted特征,如基于运算符和操作数的Halstead特征、基于依赖特性的McCabe特征和基于面向对象概念的CK特征等。然而,此类Handcrafted特征通常不能全面包含代码的语义和结构信息,可能会导致软件缺陷预测模型的预测性能不佳,如果选择的节点粒度不适合软件缺陷预测任务,则预测模型的预测效果可能不准确。
因此,提供一种基于多粒度节点的软件缺陷预测方法,对节点粒度的选择进行研究和讨论,得到一个合适的粒度选择,可进一步提高深度学习提取特征的有效性,为软件缺陷预测研究者们选择抽象语法树粒度时提供参考,具有重要的现实研究和应用意义。
发明内容
为了解决上述问题,本发明提供了一种基于多粒度节点的软件缺陷预测方法,分别用DBN和CNN从代码当中提取DL-Generated特征,构建模型并开展软件缺陷预测,在其过程中选用不同的抽象语法树节点粒度,进而比较它们的有效性并选择合适的节点粒度进行软件缺陷预测,可有效辅助开发人员判断和识别出新版本软件项目中潜在的风险和软件缺陷。
所述基于多粒度节点的软件缺陷预测方法,包括以下步骤:
步骤1:代码解析;
步骤2:向量转换;
步骤3:特征提取;
步骤4:预测缺陷。
在诸如文本分类的自然语言处理任务中,单词被视为句子中的基本单位,而句子是多个单词的序列。但是,在编程语言中,用对待自然语言相同的方式来处理分析文件和代码往往效果不佳:首先,编程语言执行顺序不一定是顺序结构,文件头部编写的Method,可能在文件最末尾才被执行;其次,编程语言中的变量、方法和类的命名相对自由,名字是无限多的(例如,表示“最大值”变量可以命名为“max”或“maxValue”),相比之下,自然语言的单词数量通常是有限的。上述两点体现了编程语言和自然语言的差异,因此需要找到一种合理的代码表示方法用以编程语言中结构和语义特征的提炼。
抽象语法树(AST)被证明是较为可行的代码表示方法,将抽象语法树节点视为代码片段中的基本单位,从而开展代码的结构和语义分析。所述步骤1中代码解析具体为:运用Python的Javalang工具包解析Java文件生成相应的抽象语法树,Java代码片段中的每个结构元素都被表示为了抽象语法树的节点,通过遍历抽象语法树,将其转换为节点序列,并对节点类型进行归类。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于诺维艾创(广州)科技有限公司,未经诺维艾创(广州)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111433635.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:底数大于2的指数核酸扩增
- 下一篇:制备碳化中间相沥青的方法