[发明专利]一种针对跨版本软件缺陷预测的数据噪声处理方法有效

专利信息
申请号: 202010155026.9 申请日: 2020-03-05
公开(公告)号: CN111367808B 公开(公告)日: 2023-05-02
发明(设计)人: 郑子彬;张桔;吴嘉婧 申请(专利权)人: 中山大学
主分类号: G06F11/36 分类号: G06F11/36;G06F18/22;G06F18/214;G06F18/241;G06N20/00
代理公司: 广州粤高专利商标代理有限公司 44102 代理人: 林丽明
地址: 510275 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 针对 版本 软件 缺陷 预测 数据 噪声 处理 方法
【说明书】:

发明公开一种针对跨版本软件缺陷预测的数据噪声处理方法,包括通过余弦相似度计算数据集中样本件的相似性;基于样本件的相似性归类数据集中簇集合C;从簇集合C中对每簇判断其内部样本标签是否一致;若不一致,则提取簇集合C的样本容量;根据簇集合C的样本容量情况分别确定簇的本簇标签;采用本簇标签对样本的噪声重标记。本发明有效地解决软件缺陷预测中的数据降噪问题。

技术领域

本发明涉及软件工程领域,特别涉及一种针对跨版本软件缺陷预测的数据噪声处理方法。

背景技术

软件缺陷是指计算机软件程序中存在的某种破坏系统正常运行能力,或导致系统预期属性发生偏离的问题、错误,通常又被称为BUG。软件缺陷不仅会给用户带来使用上的不便,甚至会导致重大的财产损失和安全事故。因此及时检测出软件程序中存在的缺陷,并进行有效的处理具有极大的重要性。在如今的软件行业中,软件测试、代码评审等方法被广泛用于排查软件代码中的缺陷,但随着软件系统日益复杂化、大型化,这些方法在时间和人力有限的情况下往往显得十分低效。

软件缺陷预测技术是软件工程领域近年来的一大研究热点,它通过挖掘软件历史数据,结合机器学习分类(或回归)方法,预测出软件代码中最可能存在缺陷的代码模块,从而使得测试人员重点关注可能存在缺陷的代码模块,以达到提高软件测试效率,保证软件安全性的目的。具体来讲,如图一所示,软件缺陷预测技术的基本流程分为以下几个步骤,如图2:

1、数据的收集与标注。软件缺陷预测中,通常是以代码模块(文件、函数或软件包)为单位,来预测每个单位中是否有缺陷。首先,应该将每个代码模块通过提取特征和人工标注来转化为一个样本,以构成数据集。特征提取是从各个角度提取代码模块的属性,如代码行数、圈复杂度等,通过特征提取可用一个数值向量来表示一个代码模块。而人工标注则是通过版本控制系统(如Git)或缺陷追踪系统(如Bugzilla)中的缺陷信息,将代码模块标注为有缺陷(Buggy)或无缺陷(Clean)两个类别。经过此步骤得到的数据集可用一个矩阵来表示,其中每一行代表一个软件模块对应的样本,而每一列代码一个特征,最后一列代表样本的标签。

2、数据处理。得到的原始数据集往往需要进行一些数据处理才能用以训练模型。如软件中等的缺陷往往是少量的,这使得第一步得到的数据集中大部分样本标签都为clean,只有少部分为buggy。故数据集中往往是类别不均衡的。在此步骤中可采用一些采样方法来进行解决。在软件缺陷预测的数据集收集过程中,常见的数据标注方式是通过对版本控制系统中数据的挖掘来得到缺陷信息。如,开发人员修复缺陷后,在向版本控制系统中提交代码时会留下类似“fix bug…”的备注信息。故可通过搜索“fix”或“bug”等关键字的方法来得到修复缺陷的代码改动,在将对应修改前的代码模块标记为有缺陷。此类方法虽然大体上可行,但存在很大的不精确性。一方面开发人员可能很有可能在修复缺陷后未留下相关信息,使得部分有缺陷代码未得到标注。另一方面开发人员可能在修复缺陷的同时也可能进行了其他功能性改动,使得一些无缺陷代码被错误标记为有缺陷。因此缺陷预测中的数据集中往往存在一定错误标注带来的噪声,这对训练得到模型的预测效果有较大影响。特别地,在跨版本缺陷预测场景下,数据集往往由多个版本的数据构成。而噪声的存在使得同一代码模块在不同版本中被标注上不同的标签,但他们之间的代码差异往往很小、特征极为相似,因此进一步导致数据集中存在许多样本特征相似或相同,但标签相反的情况,即类别重叠的问题。这使得跨版本缺陷预测下预测模型受噪声影响更加明显。但在现有软件缺陷预测方法中,还未有针对跨版本缺陷预测的数据噪声处理方法被提出。

3、模型训练。此步骤在处理后的数据集上,利用机器学习算法(如逻辑回归、支持向量机、朴素贝叶斯等)进行模型训练。机器学习算法在训练过程中会不断挖掘数据中的规律,利用数学模型对真实数据进行表达。训练得到的模型可用于预测未标注的样本的标签。

4、使用模型预测。当有新开发完成的代码模块时(即测试数据集),可以提取其特征得到对应样本,再使用上一步骤中得到的模型对其标签进行预测。对于预测结果为有缺陷的代码模块,应推荐软件测试人员重点测试,以达到保证软件质量、提高测试效率的目的。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010155026.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top