当前位置:主页 > 科技论文 > 软件论文 >

基于深度学习的细粒度软件缺陷预测研究

发布时间:2021-10-16 02:08
  传统的缺陷预测技术主要集中在对软件项目中的文件、模块、包等粗粒度对象进行预测,然而相关技术在实际中却难以应用,例如当缺陷预测模型预测一个较大的文件存在缺陷时,审查所需的时间与精力对于开发者来说难以接受,且当一个文件被多个开发者修改时,更难以确定合适的开发者对预测文件进行审查。而现有的细粒度缺陷预测方法,包括代码行级与变更级预测,对于软件仓库语料、变更数据有一定的数量要求,软件开发初期难以进行有效的缺陷预测。在细粒度的预测要求前提下,本文对于软件项目初期,提出了一种基于API使用规范的跨项目可迁移的代码行级缺陷预测模型,实现了对软件项目早期的有效缺陷预测;对于软件项目后期,本文提出了一种利用变更信息语义特征与变更度量的变更级缺陷预测模型,提升了现有变更级预测模型的能力。本文主要工作与创新点如下:(1)代码行级缺陷预测。本文提出了一种基于类API使用规范的代码行级缺陷预测模型。本文首先提出了一种基于抽象语法树的类API调用序列提取方法,从源代码文件中提取指定类的实例的API调用序列,并基于API调用序列构建语言模型,预测API序列中的API误用缺陷,将代码缺陷定位至使用API的代码行处;(... 

【文章来源】:浙江大学浙江省 211工程院校 985工程院校 教育部直属院校

【文章页数】:87 页

【学位级别】:硕士

【文章目录】:
摘要
Abstract
第1章 绪论
    1.1 引言
    1.2 软件缺陷预测与研究现状
        1.2.1 软件缺陷预测基本内容
        1.2.2 软件缺陷预测研究简史
    1.3 本文研究内容
        1.3.1 研究目的
        1.3.2 本文创新点
    1.4 本文组织结构
第2章 相关技术分析
    2.1 代码行级缺陷预测相关技术
        2.1.1 N-grams语言模型
        2.1.2 基于N-grams的代码行级缺陷预测方法
    2.2 变更级缺陷预测相关技术
        2.2.1 变更级度量
        2.2.2 变更标签标注
        2.2.3 变更级缺陷预测常用机器学习算法
    2.3 词嵌入技术
    2.4 循环卷积神经网络
        2.4.1 循环神经网络
        2.4.2 循环卷积神经网络
    2.5 抽象语法树及其解析
    2.6 本章小结
第3章 基于API使用规范的代码行级缺陷预测
    3.1 代码行级缺陷预测技术存在的问题
    3.2 基于API使用规范的代码行缺陷预测模型
        3.2.1 模型总体框架
        3.2.2 模型结构
    3.3 基于AST的 API调用序列提取
        3.3.1 Java文件获取
        3.3.2 API调用序列图构建
        3.3.3 API调用序列提取
    3.4 实验与结果分析
        3.4.1 数据集与实验设置
        3.4.2 实验结果与分析
        3.4.3 API缺陷实例展示
    3.5 本章小结
第4章 基于变更语义与度量的变更级缺陷预测
    4.1 变更级缺陷预测存在的问题
    4.2 基于变更语义与度量的变更级缺陷预测模型
        4.2.1 模型总体框架
        4.2.2 模型结构
    4.3 数据预处理
        4.3.1 度量数据预处理
        4.3.2 变更信息获取与预处理
    4.4 实验与结果分析
        4.4.1 数据集与实验设置
        4.4.2 实验结果与分析
    4.5 本章小结
第5章 总结与展望
    5.1 本文总结
    5.2 未来展望
参考文献
读硕士学位期间主要的研究成果
致谢



本文编号:3438943

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/3438943.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户35474***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com