欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 201910368699X
申请人: 重庆大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-08-21
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.基于深度神经网络的软件缺陷定位方法,其特征在于,包括如下步骤:S1:收集待测软件的相关数据

访问缺陷跟踪系统获取软件的缺陷报告,使用GIT工具获取软件的代码文件及API文档;

S2:数据预处理

对S1中收集的缺陷报告进行预处理得到如下数据:缺陷报告集合 每个缺陷报告 xi代表缺陷报告中的一个单词,缺陷报告集合B的个数记为db;

缺陷报告修复时间向量 tl表示缺陷报告 修复的时间;

缺陷报告提交时间向量 tsl表示缺陷报告bl提交的时间;

对S1中获得的代码文件进行预处理得到如下数据:代码文件集合 每个代码文件 yi代表代码文件中的一个单词,代码文件集合S的个数记为ds;

代码文件的名称向量 单词snm表示代码文件 的名称;

对S1中获取的API文档进行预处理得到如下数据:API文档集合 zk代表API文档的一个单词;

API文档的名称向量 dan表示API文档 的名称;

每个缺陷报告 对应一组标签 tagi表示缺陷报告所对应的代码文件的名称;

其中l、m、n,i、j和k均为正整数;

S3:为每个代码文件添加对应的API描述遍历代码文件集合S,对于每一个 遍历向量 若j=n时,yj=dan,则构成集合其中S4:提取如下五个特征

S41:文本相似度

分别构造缺陷报告向量空间 和和代码文件的向量空间 用于记录单词和单词出现的次数, 和 初始化为空集;

遍历缺陷报告集合B,对于每一个向量 都将其添加到向量空间 中;

遍历集合S′,对于每一个向量 都将其添加到向量空间 中;

对于 和 保留单词出现次数较多的单词,舍去其余记录的单词,得到新的向量空间V′B和V′S;

将 和 收尾相连形成新的词汇向量 将相同的单词仅保留一个,并将单词出现的次数合并;

记di是缺陷报告集合B中包含单词xi的向量的数量,单词xi对应的逆文档频率遍历缺陷报告集合B,对于每一个向量 设向量 为 在向量空间 上的映射,大小为nbs,若xi属于向量空间 单词xi在向量 中出现的次数记为 则单词xi在向量 中出现的词频 单词xi对应的权重大小记dj是集合S′中包含单词yj的向量的数量,单词yj对应的逆文档频率 遍历集合S′,对于每一个向量 设向量 为 在向量空间 上的映射,大小为nst,若yj属于向量空间 单词yj在向量 中出现的次数记为fj,则单词yj在向量 中出现的词频 单词yj对应的权重大小遍历缺陷报告集合B和集合S′,对于每个向量组 令Nterm为向量 的长度,缺陷报告 和代码文件 的文本相似度S42:基于协同过滤算法的缺陷报告相似度遍历代码文件集合S,对每一个代码文件 建立逆标签集合Cm,并初始化Cm为空集;

遍历缺陷报告集合B,对于每一个缺陷报告 对应的标签 将 与 进行对比,若 便把向量 添加至集合Cm中;

遍历缺陷报告集合B和代码文件集合S,对于每个向量组 遍历集合Cm,若计算 与 的余弦相似度,得相似度向量 其中simn表示 与 的余弦相似度;

将向量 按从大到小的顺序排列,得到 其中每个元素已做正则化处理

计算缺陷报告 和代码文件 的基于协同过滤算法的缺陷报告相似度这里n≤3;

S43:基于缺陷修复历史的相似度新建代码文件修复事件集合 表示代码文件 被修复的历程,初始化为空向量;

遍历缺陷报告集合B,对于每一个缺陷报告 都有其对应的tl和 若 则在向量 中添加元素tl;

遍历集合F,对于每一个向量 将元素从晚到早顺序排列,得遍历向量 和集合F,对于每个缺陷报告 和代码文件 若 对应的提交时间为tsl,对应的修复事件向量为 将 中大于tsl的元素删除,得计算缺陷报告 和代码文件 的基于缺陷修复历史的相似度p为正整数,上述K值根据软件缺陷报告提交的频率决定;

S44:类名相似度

遍历缺陷报告集合B和向量 对于每一个缺陷报告 和代码文件名称snm,若 记缺陷报告 和代码文件 的类名相似度 反之,记 将类名相似度 归一化;

S45:结构信息相似度

将缺陷报告集合B拆分为集合Summary和集合Description,其中Summary是缺陷报告中的summary,记 Description是缺陷报告中的description,记 则将代码文件集合S拆分成四个集合Class、Method、Var和Comment,Class是缺陷报告中的class,Method是缺陷报告中的method,Var是缺陷报告中var,Comment是缺陷报告中的comment,记则

遍历缺陷报告集合B和代码文件集合S,对于缺陷报告 和代码文件 使用简单共有词方法计算如下文本相似度:计算缺陷报告 和代码文件 的结构信息相似度S5:CNN非线性组合

S51:使用步骤S4中的五个特征构造训练数据集,对于每一个缺陷报告 有5×ds个特征值,构造特征值矩阵缺陷报告 对应的标签为

S52:构建卷积神经网络

权重初始化采用标准正态分布;

C1:卷积层共有12个卷积核和12个偏移量,其中

5×1的卷积核3个,分别为 得矩阵 大小为1×ds;

4×1的卷积核3个,分别为 得矩阵 大小为2×ds;

3×1的卷积核3个,分别为 得矩阵 大小为3×ds;

2×1的卷积核3个,分别为 得矩阵 大小为4×ds;

C2:池化层采用单列最大池化策略;

C3:采用矩阵拼接的形式构建新矩阵,共得到如下4个矩阵是由 拼接而成,大小为4×ds;

是由 拼接而成,大小为4×ds;

是由 拼接而成,大小为4×ds;

是由 拼接而成,大小为4×ds;

C4:卷积层共有3个卷积核 和3个偏移量,卷积核大小为3×1,得12个矩阵,大小都为2×ds;

C5:卷积层共有3个卷积核 和3个偏移量,卷积核大小为2×1,得36个矩阵,大小都为1×ds;

C6:全连接层,权重矩阵为 偏移向量B6,C7:分类,将C6展开得 得缺陷报告 的预测值向量Yl满足其中,

误差函数:

采用梯度下降法更新参数;

S6:对于新的缺陷报告 通过S4计算5个特征值,构建特征矩阵,利用S5已训练好的CNN模型,得出对应预测值向量对 到 进行大小排序,得可能具有缺陷的代码文件列表,排名越靠前可能性越大。

2.根据权利要求1所述的基于深度神经网络的软件缺陷定位方法,其特征在于,所述缺陷报告、代码文件以及API文档通过文本分词、去停用词和提取词干的操作进行预处理得到缺陷报告集合B,代码文件集合S以及API文档集合D。