[发明专利]一种文本代码相结合的缺陷原因自动分类方法有效
申请号: | 201811346186.0 | 申请日: | 2018-11-13 |
公开(公告)号: | CN109492106B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 周澄;李斌;孙小兵;陈定山 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F16/35 | 分类号: | G06F16/35;G06F16/33 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
地址: | 226009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 文本 代码 相结合 缺陷 原因 自动 分类 方法 | ||
本发明公开了一种文本代码相结合的缺陷原因自动分类方法,包括以下步骤:首先提取缺陷报告中的文本内容及附录中的patch文件,之后进行数据清洗形成缺陷数据集;选取状态为VERIFIED FIXED且附有patch文件的缺陷,构建待分类缺陷集;抽取待分类缺陷集中缺陷的文本内容并进行自然语言处理,之后对其进行类别标注,构建缺陷原因分类集;从patch文件中抽取缺陷修复前、后的diff代码,获取缺陷修复中修改的diff代码对应的缺陷修改结构类别;利用深度学习方法对缺陷原因分类集进行训练,获取缺陷原因自动分类器。本发明通过深度学习模型挖掘缺陷报告的语义信息和diff结构特征,能准确预测缺陷的原因类别,明确发生缺陷的可疑代码结构,从而更准确的引导后续的缺陷定位和缺陷修复。
技术领域
本发明属于软件工程缺陷检测领域,特别是一种文本代码相结合的缺陷原因自动分类方法。
背景技术
软件缺陷在软件开发维护过程中不可避免,缺陷修复也是软件工程领域研究的经典问题之一。开源软件社区,例如:源代码,缺陷报包和问答文档中均包含大量复杂,语义丰富的缺陷信息和知识,可以帮助开发人员理解错误、定位缺陷和修复缺陷。识别缺陷发生原因是制定合理修复方案的前提,但是随着软件规模扩增和复杂性提高,缺陷数据量不断膨胀,现有的缺陷搜索引擎无法帮助开发者在短时间准确查找到必要的历史缺陷信息,也无从推理缺陷发生的原因。但是目前主要的缺陷跟踪系统没有配备自动分类功能,多数都要依靠人工分类,耗时费力。而相关的理论研究工作都是孤立地从缺陷修复提交的commit数据中提取代码修改结构对缺陷进行分类,或者孤立地从缺陷报告中提取文本信息对缺陷进行分类,没有全面地分析缺陷,更忽视了文本和代码之间的关联关系。
国内外学者提出了一些有影响力的软件缺陷分类方法,如Putnam等人在“Mea-sures for Excellence:Reliable Software on Time,with in Budget”一文中为了分析软件开发周期不同阶段软件缺陷的特征,收集了174个软件缺陷,并将其分为6种原因类别,分类比较简单。Tharey等人在“Software Engineering,The Development Process”一文中按照软件测试中填写和反馈的缺陷报告将软件缺陷分为16个类别,虽然分类非常详细,但是实际操作过程十分复杂耗时,且在分类的过程中并没有考虑缺陷产生的原因。刘等人在《基于抽象语法树的软件缺陷自动分类》论文中提出了基于抽象语法树的软件缺陷自动分类方法,项目代码版本控制系统SVN和缺陷追踪系统中收集Tomcat6、Mapreduce和Solr这三个开源项目的软件缺陷相关信息,改进SZZ算法,对1174个缺陷提取diff片段的AST,识别代码变更类别为特征,分为4类。易等人在《面向自动修复的缺陷分类方法研究》论文中面向缺陷自动修复,根据代码的三种具体修复操作:缺失、错误、多余,对IBM正交缺陷分类进行更详细的划分,提出了面向软件自动修复的缺陷分类方法。类似以上刘和易两种分类均基于已知修复代码的前提,此外还有大量的基于缺陷报告的缺陷分析技术,但是缺陷原因的相关信息同时存在于缺陷报告评论和修复代码,以上分类方法只片面的分析了一部分信息,导致原因分类的准确性不是很高。此外,当前对缺陷分类模型的选择,大多采用传统的机器学习和浅层神经网络分类模型,往往需要结合对不同软件的理解来人工定义特征,不能很好地挖掘文本内容中的语义信息。
发明内容
本发明所解决的技术问题在于提供一种文本代码相结合的缺陷原因自动分类方法。
实现本发明目的的技术解决方案为:一种文本代码相结合的缺陷原因自动分类方法,包括以下步骤:
步骤1、提取缺陷报告中的文本内容以及附录中的patch文件,之后进行数据清洗形成缺陷数据集;
步骤2、从所述缺陷数据集中选取状态为VERIFIED FIXED且附有patch文件的缺陷,构建待分类缺陷集;
步骤3、抽取待分类缺陷集中缺陷的文本内容,并对其进行自然语言处理,之后根据缺陷原因分类标准对待分类缺陷集进行类别标注,构建缺陷原因分类集;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811346186.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种基于多特征集成学习的文本情感分类方法
- 下一篇:一种导诊的方法及装置