基于代码语义结构特征自动学习的软件缺陷预测研究

基本信息
批准号:61902114
项目类别:青年科学基金项目
资助金额:23.00
负责人:何鹏
学科分类:
依托单位:湖北大学
批准年份:2019
结题年份:2022
起止时间:2020-01-01 - 2022-12-31
项目状态: 已结题
项目参与者:
关键词:
源代码分析深度学习代码语义结构特征软件缺陷预测表征学习
结项摘要

Software defect prediction is utilized to assist developers in finding defect-prone code and allocating their testing efforts. To build accurate prediction models, previous studies focus on manually designing features that encode the complexity characteristics of programs. However, these hand-crafted features often fail to capture the semantic and structure information of programs. Such information is important in modeling program functionality and can lead to more accurate defect prediction. To bridge the gap, this proposal intends to use the mainstream deep learning algorithms to automatically learn the semantic and structure features of source code from multi-granularity and multi-perspective, and analyze its impact and role in defect prediction, and clarify its utilization mechanism and potential application in software quality assurance.. The major contents are as follows. Firstly, through the abstract syntax tree and execution path graph of the programs, the static and dynamic semantic features are learned by deep learning algorithms. Secondly, according to various external dependencies among codes, we will construct software dependency network from a multi-granularity perspective (i.e., packages, files, methods), and then leverage network representation learning to acquire structure features automatically from source code. Finally, utilizing the features learned and their combinations, we further construct a batch of defect datasets to guide the within- and cross- project defect prediction. The results will be an important complement of existing software defect prediction, and make a contribution to improve the efficiency of software maintenance and the usage of resources.

软件缺陷预测有助于尽早发现潜在问题的代码,从而合理分配测试资源,改善软件开发过程。然而,已有预测模型使用的特征主要是一些人工设计的代码复杂性度量特征,还少有涉及对程序功能建模非常重要的语义和结构特征。为此,本项目将利用主流的深度学习算法,从多粒度多视角自动学习软件代码的语义结构特征,并分析其在缺陷预测中的影响及作用,阐明其在软件质量保证上的利用机制与应用潜力。具体主要包括:通过代码的抽象语法树和执行路径图,利用深度学习方法分别学习程序的静态和动态语义特征;考虑代码之间各种外部依赖关系,构建不同粒度(包、文件、方法)的软件依赖网络模型,并利用网络表征学习获取代码结构特征;最后,利用所学的各类特征及它们的组合,构建一批缺陷数据集并用于指导项目内的和跨项目的软件缺陷预测。研究成果有助于弥补现有软件缺陷预测方法的不足,提高软件维护效率与资源利用率。

项目摘要

软件缺陷预测有助于尽早发现潜在问题的代码,从而合理分配测试资源,改善软件开发过程。然而,已有预测模型使用的特征主要是一些人工设计的代码复杂性度量特征,还少有涉及对程序功能建模非常重要的语义和结构特征。为此,本项目将利用主流的深度学习算法,从多粒度多视角自动学习软件代码的语义结构特征,并分析其在缺陷预测中的影响及作用,阐明其在软件质量保证上的利用机制与应用潜力。具体包括:(1)考虑代码之间各种外部依赖关系,构建不同粒度(包、文件、方法)的软件依赖网络模型,并利用网络表征学习获取代码结构特征,分析了软件的演化特性;(2)利用图卷积神经网络对类依赖网络自动学习代码的结构特征,并与传统人工设计的特征融合,并使用SMOTETomek综合采样技术解决缺陷数据不平衡的问题,构建GCN2defect软件缺陷预测模型;(3)通过代码的抽象语法树和类依赖图,利用深度学习方法分别学习程序的语义和结构特征,提出一种结合代码语义和结构信息的软件缺陷预测方法CGCN;(4)综合考虑软件系统中类与类之间关系(外部图),以及每个类内部方法之间关系(内部图),将软件系统抽象成一个图中图网络,并提出一种基于图中图卷积神经网络的类交互关系预测方法;(5)基于图神经网络技术提出了一种有监督的关键类识别方法GKCI,实现软件系统中关键类的识别。(6)构建了一批缺陷数据集并用于指导项目内的和跨项目的软件缺陷预测。研究成果有助于弥补现有软件缺陷预测方法的不足,提高软件维护效率与资源利用率。

项目成果
{{index+1}}

{{i.achievement_title}}

{{i.achievement_title}}

DOI:{{i.doi}}
发表时间:{{i.publish_year}}

暂无此项成果

数据更新时间:2023-05-31

其他相关文献

1

演化经济地理学视角下的产业结构演替与分叉研究评述

演化经济地理学视角下的产业结构演替与分叉研究评述

DOI:10.15957/j.cnki.jjdl.2016.12.031
发表时间:2016
2

玉米叶向值的全基因组关联分析

玉米叶向值的全基因组关联分析

DOI:
发表时间:
3

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究

DOI:10.19713/j.cnki.43-1423/u.t20201185
发表时间:2021
4

硬件木马:关键问题研究进展及新动向

硬件木马:关键问题研究进展及新动向

DOI:
发表时间:2018
5

基于LASSO-SVMR模型城市生活需水量的预测

基于LASSO-SVMR模型城市生活需水量的预测

DOI:10.19679/j.cnki.cjjsjj.2019.0538
发表时间:2019

何鹏的其他基金

批准号:61401049
批准年份:2014
资助金额:26.00
项目类别:青年科学基金项目
批准号:51275135
批准年份:2012
资助金额:80.00
项目类别:面上项目
批准号:41603122
批准年份:2016
资助金额:19.00
项目类别:青年科学基金项目
批准号:51474081
批准年份:2014
资助金额:82.00
项目类别:面上项目
批准号:11901064
批准年份:2019
资助金额:21.00
项目类别:青年科学基金项目
批准号:50505008
批准年份:2005
资助金额:24.00
项目类别:青年科学基金项目
批准号:11602071
批准年份:2016
资助金额:20.00
项目类别:青年科学基金项目
批准号:21505082
批准年份:2015
资助金额:21.00
项目类别:青年科学基金项目
批准号:61901070
批准年份:2019
资助金额:24.00
项目类别:青年科学基金项目
批准号:50975062
批准年份:2009
资助金额:36.00
项目类别:面上项目

相似国自然基金

1

基于时序语义特征自动匹配的人体行为预测

批准号:61603080
批准年份:2016
负责人:王浩然
学科分类:F0604
资助金额:20.00
项目类别:青年科学基金项目
2

基于代码结构化特征的自动化软件可追踪技术研究

批准号:61802173
批准年份:2018
负责人:匡宏宇
学科分类:F0202
资助金额:25.00
项目类别:青年科学基金项目
3

基于集成和迁移学习的跨项目软件缺陷预测方法研究

批准号:61902228
批准年份:2019
负责人:李志强
学科分类:F0203
资助金额:26.00
项目类别:青年科学基金项目
4

基于主动迁移学习的软件缺陷预测模型与方法研究

批准号:61502404
批准年份:2015
负责人:马樱
学科分类:F0203
资助金额:20.00
项目类别:青年科学基金项目