➤
基于双向图神经网络的缺陷检测工具——
BGNN4VD
工具简介
BGNN4VD工具主要借助基于机器学习(深度学习)的方法,通过构造双向图神经网络来自动化地学习同类型缺陷间的共性特征,从而检测代码中可能存在的缺陷。
BGNN4VD包括两个主要步骤:代码图表征和双向图神经网络学习。代码图表征主要通过构建代码的抽象语法树AST、数据流图DFG和控制流图CFG,提取代码的语法语义特征,用于后续图神经网络的特征学习。双向图神经网络学习主要从缺陷代码的紧密耦合的属性出发,将缺陷代码的上下文信息都纳入代码的固有特征学习中,从而双向传递缺陷特征信息,解决了传统图神经网络在处理代码时会丢失部分语义信息的劣势。训练得到缺陷检测模型可结合多分类分类器进行多类别的自动化缺陷检测。
该工具在刚举行的CCF中国软件大会“命题型”原型系统竞赛——缺陷检测类工具竞赛中获得二等奖。
比赛现场 01曹思聪讲述工具的实现背景及原理02
来自华为公司的工程师进行结果验收,并与曹思聪就检测结果及方法上的细节进行进一步沟通,提出了一些改进建议。
比赛颁奖本次比赛主席南京大学潘敏学老师上台为曹思聪颁奖。
编辑:曹思聪 朱盼盼
审核:薄莉莉