[发明专利]一种跨项目软件缺陷预测方法有效
申请号: | 201910721866.4 | 申请日: | 2019-08-06 |
公开(公告)号: | CN110442523B | 公开(公告)日: | 2023-08-29 |
发明(设计)人: | 冯落落;李锐;于治楼 | 申请(专利权)人: | 山东浪潮科学研究院有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 250100 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 项目 软件 缺陷 预测 方法 | ||
1.一种跨项目软件缺陷预测方法,其特征在于,其包括训练阶段和预测阶段;
所述训练阶段包括:
Ⅰ)提取Java源文件的原始多维特征,并对每一个Java源文件进行标记;
Ⅱ)将Java源文件解析成抽象语法树,抽取抽象语法树的相关节点形成单词文件;
Ⅲ)训练Word2vec模型,利用Word2vec模型对单词进行向量化,形成词向量;
Ⅳ)已知Java源文件包含的语义信息,提取Java源文件所包含语义信息的特征,基于词向量和提取的特征训练TextCNN;
Ⅴ)组合包含Java源文件语义信息的特征和Java源文件的原始多维特征,形成新特征向量;
Ⅵ)利用Borderline-SMOTE算法对组合后的新特征向量进行不平衡处理;
Ⅶ)不平衡处理后的新特征向量和Java源文件具有的软件缺陷数量作为训练样本,利用训练样本训练逻辑回归分类器;
所述预测阶段包括:
Ⅰ)提取目标Java源文件的原始多维特征,并对每一个目标Java源文件进行标记;
Ⅱ)将目标Java源文件解析成抽象语法树,抽取抽象语法树的相关节点形成单词文件;
Ⅲ)利用Word2vec模型对单词进行向量化,形成词向量;
Ⅳ)利用TextCNN对词向量进行包含语义信息的特征提取;
Ⅴ)组合包含语义信息的特征和目标Java源文件的原始多维特征,形成新特征向量;
Ⅵ)利用Borderline-SMOTE算法对组合后的新特征向量进行不平衡处理;
Ⅶ)将不平衡处理后的新特征向量输入逻辑回归分类器,逻辑回归分类器输出预测目标Java源文件的软件缺陷数量。
2.根据权利要求1所述的一种跨项目软件缺陷预测方法,其特征在于,借助Ckjm、BugInfo工具提取Java源文件/目标Java源文件的多维特征,并对每一个Java源文件/目标Java源文件进行标记。
3.根据权利要求1所述的一种跨项目软件缺陷预测方法,其特征在于,利用Python中的Javalang工具包将Java源文件/目标Java源文件解析成抽象语法树,随后,抽取抽象语法树中相应的控制节点、函数调用节点、实例创建节点,进而形成一个以空格为分隔符的单词文件。
4.根据权利要求2所述的一种跨项目软件缺陷预测方法,其特征在于,利用gensim中的Word2vec模型对单词进行向量化,形成多维词向量,且多维词向量的维度大于所提取Java源文件的多维特征的维度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮科学研究院有限公司,未经山东浪潮科学研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910721866.4/1.html,转载请声明来源钻瓜专利网。