[发明专利]一种去除重复变更的软件变更级缺陷预测方法在审
申请号: | 202010917981.1 | 申请日: | 2020-09-03 |
公开(公告)号: | CN112148595A | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 许海涛;周成成;段瑞丰;林福宏;周贤伟 | 申请(专利权)人: | 北京科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市广友专利事务所有限责任公司 11237 | 代理人: | 张仲波 |
地址: | 100083*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 去除 重复 变更 软件 缺陷 预测 方法 | ||
本发明提供一种去除重复变更的软件变更级缺陷预测方法,属于软件缺陷预测技术领域。所述方法包括:提取项目仓库中所有分支的变更数据;对提取到的变更数据进行标注,标注信息包括:缺陷变更和非缺陷变更;去除提取到的变更数据中的重复变更;计算去除重复变更后的变更数据的变更级软件缺陷预测特征;根据计算得到的变更级软件缺陷预测特征及标注信息,训练缺陷预测模型,以便训练好的缺陷预测模型判断待预测的变更数据是否是缺陷变更。采用本发明,能够提升软件变更级缺陷预测模型的预测性能。
技术领域
本发明涉及软件缺陷预测技术领域,特别涉及是指一种去除重复变更的软件变更级缺陷预测方法。
背景技术
近年来,得益于计算机技术的飞速发展,软件产业的规模也越来越大,同时也给软件的高质量开发带来巨大的挑战。软件缺陷已经成为影响软件质量的首要因素,软件缺陷预测是保证软件质量的重要活动,也是软件维护的重要手段。与传统的软件缺陷预测技术相比,变更级缺陷预测技术具有细粒度、即时性、易追溯等优势。可以满足现代软件生产高度行为交互、大规模跨地域协同开发方式的要求。
变更级缺陷预测技术是指预测开发者每次提交的代码变更是否存在缺陷的技术。具体体现在这种预测技术可以在开发者提交一次代码变更后即对变更代码进行缺陷分析,预测其存在缺陷的可能性。软件项目历史变更数据是变更级缺陷预测技术的数据源。然而由于软件版本控制系统的分支特性,在软件项目仓库中会存在大量重复变更,重复变更指的是开发人员在某个分支上可以重新实现相似功能的变更。现有研究表明,重复变更会影响变更级缺陷预测特征的计算,导致软件缺陷预测模型性能下降。
发明内容
本发明实施例提供了去除重复变更的软件变更级缺陷预测方法,通过去除重复变更,能够提升软件变更级缺陷预测模型的预测性能。所述技术方案如下:
一方面,提供了一种去除重复变更的软件变更级缺陷预测方法,该方法应用于电子设备,该方法包括:
提取项目仓库中所有分支的变更数据;
对提取到的变更数据进行标注,标注信息包括:缺陷变更和非缺陷变更;
去除提取到的变更数据中的重复变更;
计算去除重复变更后的变更数据的变更级软件缺陷预测特征;
根据计算得到的变更级软件缺陷预测特征及标注信息,训练缺陷预测模型,以便训练好的缺陷预测模型判断待预测的变更数据是否是缺陷变更。
进一步地,所述提取项目仓库中所有分支的变更数据包括:
挖掘项目仓库,从中析取代码变更元信息,按照元信息中代码变更的时间顺序建立代码前后变更关系图,根据建立的代码前后变更关系图提取项目仓库中所有分支的变更数据。
进一步地,所述对提取到的变更数据进行标注包括:
扫描遍历所有存储在版本控制系统中的变更数据,根据变更日志进行关键词分析,搜索到所有修复缺陷代码的变更;
利用版本控制系统的diff命令识别所述修复缺陷代码的变更的代码行,去除噪音,识别到缺陷代码行;
利用版本控制系统的annotate命令回溯代码变更提交历史,识别出引入所述缺陷代码行的变更,将该变更标注为缺陷变更,并将缺陷变更以外的其余变更标注为非缺陷变更。
进一步地,所述去除提取到的变更数据中的重复变更包括:
对提取到的变更数据进行遍历与比较,若两个变更满足以下3个条件:
条件1,两个变更在不同的分支上;
条件2,两个变更修改了相同的文件;
条件3,两个变更修改了相同的代码;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京科技大学,未经北京科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010917981.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种高精密油管快速旋切机
- 下一篇:一种自动化包装箱制作上下料设备