[发明专利]一种基于数据欠采样和集成学习的软件缺陷数目预测方法有效
| 申请号: | 201710548391.4 | 申请日: | 2017-07-06 |
| 公开(公告)号: | CN107391452B | 公开(公告)日: | 2020-01-07 |
| 发明(设计)人: | 余啸;周培培;刘进;崔晓晖;伍蔓;井溢洋 | 申请(专利权)人: | 武汉大学 |
| 主分类号: | G06F17/18 | 分类号: | G06F17/18 |
| 代理公司: | 42222 武汉科皓知识产权代理事务所(特殊普通合伙) | 代理人: | 鲁力 |
| 地址: | 430072 湖*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 数据 采样 集成 学习 软件 缺陷 数目 预测 方法 | ||
本发明针对软件缺陷数据集中数据极度不平衡会降低软件缺陷数目预测模型的性能的问题,提出了一种基于数据欠采样和集成学习的软件缺陷数目预测方法。本发明设计了合理的不平衡数据处理策略,首先利用随机欠采样技术通过删除缺陷数据集中缺陷数目为零的软件模块得到相对平衡的新数据集,然后利用相对平衡的缺陷数据集训练出若干个弱的软件缺陷数目预测模型,最后集成这些弱的软件缺陷数目预测模型来预测待预测的软件模块的缺陷数目。本发明的技术方案既能够解决缺陷数据集中数据不平衡的问题,又能够结合多个弱的预测模型来提高软件缺陷数目预测模型的性能。
技术领域
本发明属于软件缺陷预测领域,特别是涉及一种基于数据欠采样和集成学习的软件缺陷数目预测方法。
背景技术
(1)软件缺陷预测技术:软件缺陷是计算机软件或程序中存在的某个破坏正常运行能力的问题、错误以及隐藏的功能缺陷。随着软件系统在工程应用中的不断扩大,软件缺陷导致的经济损失日益增加。据美国国家标准与技术所的一项研究表明,软件缺陷给美国每年造成的损失高达几百亿元,而其中超过三分之一的损失,如果提前稍加测试,即可避免。除了经济领域,还有一些软件是飞行控制系统软件和医疗设备软件,这些和人命相关的软件,一旦出现软件缺陷问题,就会给人民生命财产安全带来无端灾难,因此软件缺陷预测技术意义重大。软件缺陷预测技术是软件质量保证中的一项重要技术。软件缺陷预测通过分析软件历史数据,建立缺陷预测模型,对新的软件模块进行缺陷预测。对预测出潜在缺陷的新的软件模块分配更多的测试资源,可以达到合理分配测试和维护资源的目的。目前为止,已有很多高效的软件缺陷方法被提出。
但这些预测通常只给出有缺陷或无缺陷的二分类结果。现有技术表明,如果只按照有无缺陷来分配有限的测试资源,可能会造成资源分配的浪费。如果我们能够准确的预测出缺陷数目,使软件测试人员主要关注那些拥有更多缺陷的软件模块,就可使软件测试工作更为有效。因此,预测软件缺陷数目相比于单纯的预测软件模块是否有缺陷更利于优化软件测试资源的分配。软件缺陷数目预测过程分为四个阶段:(a)挖掘软件历史数据,从中抽取出有用的程序模块。程序模块粒度可根据实际应用场景,可设置为文件、包、类或函数。(b)提取出与软件缺陷有关的特征,并构建出软件缺陷数据集。(c)借助特定的建模方法在软件缺陷数据集上构建出软件缺陷数目预测模型。不同于单纯的预测新的软件模块是否存在缺陷时采用的是分类模型,软件缺陷数目建模方法采用的是回归模型。(d)在对新的软件模块提取出特征后,利用步骤(b)中训练出的软件缺陷数目预测模型,预测该模块存在多少个缺陷。构建软件缺陷数目预测模型时最常用的是线性回归模型。线性回归模型是一种用于对因变量与一个或多个独立变量之间的线性关系进行建模的统计方法。一个线性回归模型如下式所示:
Y=b0+b1x1+b2x2+…+bnxn
其中Y是因变量,对应于软件缺陷数目预测时即为软件模块的缺陷数目,x1,x2,...,xn是独立变量,对应于软件缺陷数目预测时即为软件模块的特征,b1,b2,...,bn是独立变量的回归系数,b0是误差项。
在缺陷数据集中,大多数软件模块的缺陷数目为零,只有少数软件模块有缺陷。当在这样的数据集上建立缺陷数目预测模型后,预测模型极易预测新的软件模块的缺陷数目为零。因此,数据不平衡会对缺陷预测结果产生一定的影响,同时对缺陷数目预测模型的有效性也提出了新的挑战。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉大学,未经武汉大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710548391.4/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





