【技术实现步骤摘要】
一种基于长短期记忆神经网络的跨项目软件缺陷预测方法
本专利技术涉及软件工程领域,特别涉及一种基于长短期记忆神经网络的跨项目软件缺陷预测方法。
技术介绍
随着移动互联网技术迅猛发展,智能手机功能不断创新,移动应用呈现爆炸式增长,其功能也越来越丰富,从社交娱乐到生活理财,各式各样的应用程序都涵盖了我们生活的每一个方面,而软件的体积以及复杂程度也在与日俱增。软件复杂度的增加不可避免地导致了软件缺陷的出现,而软件缺陷的出现严重影响了软件的质量及其可靠性:轻则出现错误或异常提示,重则导致闪退崩溃甚至造成数据丢失,极大地降低了用户体验,缩短了软件的生命期。为保障软件质量,软件测试是一种常规手段,但其成本高,过程繁琐复杂的特点也使得软件测试无法彻底涵盖软件开发的每一个模块。特别是在一些开发计划比较紧迫的项目中,进行全面的软件测试是不现实的,软件缺陷预测技术便应运而生。传统的软件缺陷预测技术主要基于机器学习算法,通过建立机器学习模型来学习项目源文件的静态手工特征与缺陷之间的关系,具体包括:1)从项目源文件中提取静态手工特征;2)利用 ...
【技术保护点】
1.一种基于长短期记忆神经网络的跨项目软件缺陷预测方法,其特征在于,包括以下步骤:/n1)分析项目的源代码文件,并从源代码中解析出对应的抽象语法树;/n2)对步骤1)所提取的所有抽象语法树的节点,按节点所包含信息的粗细粒度的不同,将所有节点转换为Token;/n3)使用词嵌入技术,将步骤2)转换后的所有抽象语法树的节点的Token映射至词向量空间,使之可以输入至神经网络当中;/n4)遍历步骤3)所得到的以词向量形式表示的抽象语法树,得到以词向量表示的抽象语法树节点序列;/n5)构建长短期记忆神经网络,并将步骤4)所得到词向量表示的抽象语法树节点序列按序输入至长短期记忆神经网 ...
【技术特征摘要】
1.一种基于长短期记忆神经网络的跨项目软件缺陷预测方法,其特征在于,包括以下步骤:
1)分析项目的源代码文件,并从源代码中解析出对应的抽象语法树;
2)对步骤1)所提取的所有抽象语法树的节点,按节点所包含信息的粗细粒度的不同,将所有节点转换为Token;
3)使用词嵌入技术,将步骤2)转换后的所有抽象语法树的节点的Token映射至词向量空间,使之可以输入至神经网络当中;
4)遍历步骤3)所得到的以词向量形式表示的抽象语法树,得到以词向量表示的抽象语法树节点序列;
5)构建长短期记忆神经网络,并将步骤4)所得到词向量表示的抽象语法树节点序列按序输入至长短期记忆神经网络当中,提取抽象语法树的语义特征;
6)将步骤5)提取的语义特征输入至逻辑回归分类器中,分析待检测的文件存在缺陷的概率。
2.根据权利要求1所述基于长短期记忆神经网络的跨项目软件缺陷预测方法,其特征在于,所述节点的类型包括:方法调用以及实例创建类节点、声明相关类节点、跳转控制类节点。
3.根据权利要求1所述基...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。