[发明专利]一种基于聚类分析的软件缺陷修复模板提取方法有效
申请号: | 201810637180.2 | 申请日: | 2018-06-20 |
公开(公告)号: | CN109165155B | 公开(公告)日: | 2021-06-22 |
发明(设计)人: | 孙小兵;朱轩锐;李斌 | 申请(专利权)人: | 扬州大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06F8/70 |
代理公司: | 南京理工大学专利中心 32203 | 代理人: | 马鲁晋 |
地址: | 226009 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 聚类分析 软件 缺陷 修复 模板 提取 方法 | ||
本发明公开了一种基于聚类分析的软件缺陷修复模板提取方法,属于软件维护领域,步骤如下:首先定义bug的细粒度修改模式,并识别出每个bug相关的细粒度修改模式;接着对每个bug相关的细粒度修改模式的程序元素进行捕获;之后获取每个bug的顶层修改模式多重集,然后进行层次聚类分析,获得聚类后的多个顶层修改模式多重集;之后获取每个顶层修改模式多重集对应的新的修改模式多重集;再根据程序元素之间的关系获取修改模式多重集图;然后对修改模式多重集图进行分割优化,获得修改模式聚类;最后根据修改模式聚类构建软件缺陷修复模板。本发明的方法获得的修复模板具有语义特征,其普适性和通用性更强,提高了缺陷修复的效率和精度。
技术领域
本发明属于软件维护领域,特别是一种基于聚类分析的软件缺陷修复模板提取方法。
背景技术
由于软件产品的规模和复杂性爆炸式增长,开发高质量软件变得越来越具有挑战性,所以软件系统中的错误不可避免。通过研究软件缺陷模式,测试人员可以在测试过程中更快地对缺陷进行修复;开发人员也可以在开发过程中考虑采用什么样的开发技术预防这些缺陷模式的再次出现,从而提高软件开发和测试团队的整体水平。因此,对软件缺陷修复模式的研究越来越重要。
目前针对软件缺陷修复模式有很多技术,包括补丁产生和动态程序状态恢复。一系列的技术均围绕“基于测试套件的修复”这个主题,其目的是产生一个补丁,使错误的测试集能通过并且其他的测试集也能满足测试。但在真实的项目中通过所有的测试并不一定意味着该程序是正确的,而且如果修复系统的精度较低,开发人员仍需手动审查补丁,而目前的基于测试的修复技术精度都不高。针对基于测试的修复技术精度低的问题,很多学者对此有大量的研究,发现修复系统很难从大量合理的补丁中识别出正确的程序补丁。而解决这一问题的方法是根据补丁的正确概率对补丁进行排序,并以最高的可能性返回可能的补丁,但是此方法的精度还不令人满意。基于细粒度的修复方式能够更准确、更高效率得完成软件修复,在实际的软件维护过程中,缺陷的类型及修复模式往往有很多,而目前提出的基于细粒度的修复模式技术只限于解决特定项目中的特定缺陷代码,普适性差,不能适用于任意软件缺陷修复的需求。
发明内容
本发明所解决的技术问题在于提供一种基于聚类分析的软件缺陷修复模板提取方法。
实现本发明目的的技术解决方案为:一种基于聚类分析的软件缺陷修复模板提取方法,包括以下步骤:
步骤1、定义bug的细粒度修改模式,之后对bug缺陷库中的bug进行文本分析处理,识别出每个bug相关的细粒度修改模式;
步骤2、利用代码分析技术对每个bug相关的细粒度修改模式的程序元素进行捕获;
步骤3、确定步骤2捕获的每个bug中程序元素之间的关系,然后将同一类型的顶层程序元素归为该bug的一个顶层修改模式多重集;之后对所有bug的顶层修改模式多重集进行层次聚类,获得聚类后的多个顶层修改模式多重集;
步骤4、根据顶层修改模式多重集对应的程序元素,获取每个顶层修改模式多重集对应的新的修改模式多重集;
步骤5、根据程序元素之间的关系,确定步骤4获得的多个新的修改模式多重集之间的关系,之后对新的修改模式多重集进行连接,获得修改模式多重集图;
步骤6、利用频繁模式挖掘技术对步骤5获得的修改模式多重集图进行分割优化,获得修改模式聚类;
步骤7、根据步骤6获得的修改模式聚类构建软件缺陷修复模板。
本发明与现有技术相比,其显著优点为:(1)本发明的方法依据bug的细粒度修改模式,通过语义、上下文及依赖关系对bug修改模式进行聚类分析,获得的修复模板具有语义特征,其普适性和通用性更强;(2)本发明的方法获得的修复模板更全面,对缺陷模式的研究以及缺陷分类具有指导意义,提高了缺陷修复的效率;(3)本发明的方法获得的修复模板,建立了bug之间的关系,提高了缺陷修复的精度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于扬州大学,未经扬州大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810637180.2/2.html,转载请声明来源钻瓜专利网。