[发明专利]一种基于迁移学习的软件功能缺陷挖掘方法有效
申请号: | 201910783286.8 | 申请日: | 2019-08-23 |
公开(公告)号: | CN110489348B | 公开(公告)日: | 2023-08-25 |
发明(设计)人: | 冯落落;李锐;于治楼 | 申请(专利权)人: | 山东浪潮科学研究院有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F16/35 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 冯春连 |
地址: | 250100 山东省济*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 迁移 学习 软件 功能 缺陷 挖掘 方法 | ||
本发明公开一种基于迁移学习的软件功能缺陷挖掘方法,涉及数据处理技术领域,包括训练部分和挖掘部分。在训练部分,首先利用开源源代码和开源源代码的文档解释产生一个text‑enriched代码功能空间,随后构建辅助AM模型和CFRM模型,辅助AM模型学习text‑enriched代码功能空间并产生特征映射函数,用text‑enriched代码功能空间和辅助AM模型产生的特征映射函数训练CFRM模型,CFRM模型捕捉开源源代码文档解释的关键词,并输出开源源代码的功能表示,即可完成CFRM模型的训练;在挖掘阶段,将需要进行软件功能缺陷挖掘的源代码输入CFRM模型,CFRM模型输出所述源代码的功能表示后输入分类器进行软件功能缺陷的挖掘。本方法可以高效快速的对目标项目进行软件功能缺陷的挖掘。
技术领域
本发明涉及数据处理技术领域,具体的说是一种基于迁移学习的软件功能缺陷挖掘方法。
背景技术
软件质量保证(SQA)在软件工程中扮演非常重要的角色,其中一个最大的影响因子是软件缺陷或者软件Bugs。已经有很多方法发现软件bugs,例如执行软件测试。最近,软件缺陷挖掘利用数据挖掘技术去帮助辨别软件缺陷,在减少软件测试资源方面已经展现出独有的优势,因此吸引了很大的关注度。
软件功能缺陷挖掘在软件质量维护中扮演着一个非常重要的角色。软件功能缺陷挖掘就是预测该代码是否能完成一定的功能。许多深度学习框架已经被用于软件功能缺陷预测任务,并且产生了非常好的性能。这些深度模型通常要求大量的源代码数据进行训练才能获得好的。但是这种要求在实践中很难被满足。另一方面,大量的开源代码和相应的文本解释可以从开源软件仓库中获得,这个对于构建代码功能模型是非常有用的。
许多方法已经被提出用于缺陷挖掘任务,最常用的方法对某个明确的挖掘任务设计人工特征,例如序列特征,AST特征,PDG特征,软件度量特征和此词带特征等。最近深度神经网络已经被用于处理软件缺陷挖掘任务,例如CNN用于从bug报告和源代码中学习一个统一的特征。这些深度学习模型在不同的软件缺陷挖掘的任务中都表现出非常优秀的性能。为了实现更好的性能,深度模型需要更多的训练数据。然而在缺陷挖掘任务中,获取足够多的训练数据和相应的数据标签是非常困难的。例如一个软件系统发布之后,需要很长一段时间用户才能发现软件中潜在bug,因此能被用于软件缺陷预测的bug报告是非常少的。因此,这些深度模型在实践中,可能无法像他们本来执行的效率那么好。另一方面,在开源的软件仓库(Stack Overflow)和讨论、共享源代码的技术论坛中,存在大量的源代码和对应的文本注释。这些数据是可以被获得的,但是没有被搜集和预处理为某一种软件挖掘任务使用。一个问题诞生了,是否可以利用这些数据帮助去完成软件缺陷挖掘任务。直观上,如果源代码的功能被正确用于建模,它将明显的决定代码是否像期望的一样进行工作(即是否包含软件缺陷)。因此关键是有效对源代码的功能进行建模,这种特征能被用到许多软件缺陷挖掘任务中从而更好的帮助挖掘缺陷。然而对于软件维护工程师来说,仅仅基于代码本身去决定源代码的功能是非常困难的。因为相似的源代码功能可以通过不同的方式进行实现,比如,有的源代码表面上看起来相似,但是实现的功能却不同,也有的源代码表面上看起来不相似,但是实现的功能却相同。
基于上述陈述,提出一种基于迁移学习的软件功能缺陷挖掘方法,利用CFRM(codefunctional representation model)模型在大量的开源代码仓库中学习一个好的代码功能表示,然后使用这个模型迁移到目标项目进行软件功能缺陷的挖掘任务。
发明内容
本发明针对目前技术发展的需求和不足之处,提供一种基于迁移学习的软件功能缺陷挖掘方法。
本发明的一种基于迁移学习的软件功能缺陷挖掘方法,解决上述技术问题采用的技术方案如下:
一种基于迁移学习的软件功能缺陷挖掘方法,该方法包括训练部分和挖掘部分;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东浪潮科学研究院有限公司,未经山东浪潮科学研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910783286.8/2.html,转载请声明来源钻瓜专利网。