[发明专利]一种基于多目标优化算法NSGA-Ⅱ推荐跨项目关联缺陷报告的方法在审
申请号: | 201710932159.0 | 申请日: | 2017-09-30 |
公开(公告)号: | CN109597747A | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | 陈林;任浩;马皖王莹 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F17/27 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210023 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 缺陷报告 多目标优化算法 关联度 主题相似性 关联缺陷 关联 查询 关联度计算 源代码文件 主题相似度 有效定位 源文件 排序 修复 | ||
本发明提供一种基于多目标优化算法NSGA‑II推荐跨项目关联缺陷报告的方法,主要包含以下步骤:1)获取与查询缺陷报告所在项目关联的其他项目,主要基于缺陷所在项目的信息以及项目参与人的信息;2)计算项目之间的关联度:主题相似度、项目重要程度、项目之间的距离,对项目的关联度排序;3)对于关联度较大的项目,计算其中的缺陷与查询缺陷报告之间的主题相似性以及将要修改的源代码文件之间的距离;4)根据缺陷报告的主题相似性、源文件距离、项目的关联度计算适应值函数;5)利用多目标优化算法NSGA‑II产生相关联程度最大的跨项目缺陷报告。本发明主要解决目前缺乏对查询缺陷报告推荐相关联的跨缺陷报告问题,能够有效定位、修复跨项目缺陷,提高处理跨项目缺陷报告的效率。
技术领域
本发明属于计算机技术领域,涉及到软件缺陷报告的收集以及分析、项目之间相关联程度的分析、缺陷报告之间相似度的计算,是一种基于多目标优化算法NSGA-II推荐跨项目关联缺陷报告的方法。
背景技术
软件缺陷是计算机程序或系统中存在的、会破坏软件正常运行能力的问题或错误,是系统所需要实现的某种功能的失效或违背。在软件开发和维护过程中,由于各种因素的影响,软件缺陷很难避免,而且会经常出现。
在软件系统开发中,开发者往往需要调用项目内的其它模块甚至其它项目已实现的功能模块。在这个场景中,我们称调用其它项目模块的项目为下游项目,被调用的项目为上游项目。随着软件规模的不断增长,跨项目的模块调用越来越常见。这种跨项目的模块调用也给软件质量保证,特别是缺陷的定位和修复带来了新的问题。
上游项目和下游项目的缺陷可能不是独立存在的,它们之间存在某些联系。例如,上游项目的缺陷可能会影响多个下游模块的正常使用,下游项目缺陷的修复可能依赖于上游项目缺陷的修复。在复杂软件系统的开发中,上游和下游项目都可能有多个,其中的缺陷可能与多个项目的多个缺陷相关联。我们称这些项目之间存在依赖关系,相应的缺陷称为跨项目关联缺陷。跨项目关联缺陷间既可能有直接关系(例如一个缺陷是造成另一个缺陷的根源),也可能因其他缺陷相关而产生间接联系。
当软件开发者或使用者遇到一个缺陷时,通常会撰写一份缺陷报告来描述所遇到的问题以及相关信息,并反馈给项目开发人员。通常,开发者会根据缺陷报告在项目内进行定位,找到缺陷并修复缺陷。然而,在跨项目关联缺陷的场景下,这样的流程也发生了巨大变化。
本发明关注著名的代码托管平台GitHub上的跨项目关联缺陷的定位与修复过程。在GitHub上,缺陷报告被称为Issue。例如先考虑一个例子,一个开发者在pip项目中提出一个Issue(id为#1488,记作pip#1488,下同)。在该Issue的讨论过程中有开发者发现它与requests项目中的requests#749以及urllib3中的urllib3#257相关。进一步的,requests的开发者又发现requests#749与urllib3项目的urllib3#89、urllib3#128、urllib3#156、urllib3#140相关,其他项目的开发者也发现有更多的Issue(例如github3.py#142)与requests#749相关。多个不同项目的开发者对关联的多个报告进行了讨论,最后共同修复了这几个缺陷。这个例子表明,关联的缺陷报告有助于开发者定位问题,有助于他们协作修复缺陷。本发明正是基于这样的事实,提出了一种跨项目关联缺陷报告的推荐方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710932159.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:故障分析方法及装置
- 下一篇:代码缺陷预警方法及装置