一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

软件源代码缺陷检测方法、系统、电子设备及储存介质与流程

2021-11-15 18:35:00 来源:中国专利 TAG:

技术特征:
1.一种软件源代码缺陷检测方法,其特征在于,包括:步骤一:构建源代码缺陷数据集,基于开源项目的缺陷信息构建用于深度学习模型训练的数据集,包括对所述开源项目存在的缺陷条目进行自动对齐与抽取;步骤二:构建基于代码切片的深度学习源代码缺陷检测模型,包括使用多模态的语义表示对代码片段进行表示与分类;步骤三:将源代码缺陷检测结果汇总并显示。2.根据权利要求1所述软件源代码缺陷检测方法,其特征在于,步骤一中,进一步包括:根据所述源代码缺陷数据集,检索目标开源项目关键词,得到所述开源项目对应缺陷代码出处与其缺陷类型的匹配,定位所述缺陷代码具体位置行,对所述缺陷代码进行切片操作,以所述具体位置行为起点,通过控制流图回溯缺陷路径,得到真实缺陷对应的<代码切片,缺陷>对,修改所述缺陷代码,对修正后的代码使用所述切片操作并标注是否更改正确,得到真实缺陷源代码数据集。3.根据权利要求1所述软件源代码缺陷检测方法,其特征在于,步骤二中,进一步包括:对所述缺陷代码路径进行切片,根据切片中的缺陷发生位置和传播路径,将所述缺陷代码路径扩展为包含更丰富上下文的代码切片,所述代码切片包含多种模态的信息;解析所述代码切片各种元素的结构关系,生成代码知识图谱,用trans系列方法对知识图谱的节点进行表示学习,得到代码元素的结构语义。4.根据权利要求3所述软件源代码缺陷检测方法,其特征在于,所述trans方法包括:根据所述知识图谱,用transe、transh和transr对节点进行学习,得到所述结构语义,完成所述结构语义信息解析。5.根据权利要求3所述软件源代码缺陷检测方法,其特征在于,根据不同种类的建模方式对所述结构语义进行建模:基于序列代码语义建模,利用多种网络结构来捕获代码的信息,使用sbt神经网络表达代码序列信息,所述代码序列信息为代码本身的自然序列,通过层次注意力网络进行建模;基于树的代码语义建模,切片的抽象语法树使用基于树的卷积神经网络tbcnn和基于树的长短期记忆网络tree

based lstm进行建模;基于图的代码语义建模,代码切片的图结构,使用图注意力网络gat建模。6.根据权利要求5所述软件源代码缺陷检测方法,其特征在于,所述层次注意力网络第一层为双向循环神经网络构成的语句编码器,包含字符级注意力机制;所述层次注意力网络第二层为双向循环神经网络构成的切片编码器,包含语句级的注意力机制。7.根据权利要求3所述软件源代码缺陷检测方法,其特征在于,分别为二分类和多分类模型引入图像分类中的focal loss和排序问题中的ranking loss作为额外的损失函数。8.一种软件源代码缺陷检测系统,其特征在于,包括:源代码缺陷数据集构建模块,构建源代码缺陷数据集,基于开源项目缺陷信息构建用于深度学习模型训练的大规模数据集,包括对开源项目存在的缺陷条目进行自动对齐与抽取;源代码缺陷检测模型构建模块,构建基于代码切片的深度学习源代码缺陷检测模型,包括使用多模态的语义表示对代码片段进行表示与分类;缺陷检测结果集成显示模块,将源代码缺陷检测结果汇总并显示。
9.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,计算机程序被所述处理器执行时实现如权利要求1至7中任一项所述的软件源代码缺陷检测方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的软件源代码缺陷检测方法。

技术总结
发明实施例涉及软件测试领域,公开了一种软件源代码缺陷检测方法、系统、电子设备及计算机可读存储介质,其中方法包括步骤:构建源代码缺陷数据集,基于开源项目缺陷信息构建用于训练的大规模数据集,包括对开源项目存在的缺陷条目进行自动对齐与抽取以及对所述开源项目源代码缺陷进行上下文增广;构建基于代码切片的深度学习源代码缺陷检测模型,包括使用多模态的语义表示对代码片段进行表示与分类;对基于人工智能的源代码缺陷检测结果集成显示;开发者可以使用本发明所述的方法自动构建来源于真实项目的缺陷数据集并借助模型进行自动判断,而不必花费大量的时间与精力人工遍历代码。历代码。历代码。


技术研发人员:张世琨 叶蔚 邓枭 高庆 张君福
受保护的技术使用者:北京北大软件工程股份有限公司
技术研发日:2021.08.20
技术公布日:2021/11/14
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献