[发明专利]一种基于数据不平衡的软件缺陷预测方法在审
申请号: | 201910775361.6 | 申请日: | 2019-08-21 |
公开(公告)号: | CN110471856A | 公开(公告)日: | 2019-11-19 |
发明(设计)人: | 郭世凯;董剑;陈荣;王佳慧;李辉;郭晨;唐文君 | 申请(专利权)人: | 大连海事大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 21212 大连东方专利代理有限责任公司 | 代理人: | 姜玉蓉;李洪福<国际申请>=<国际公布> |
地址: | 116026 辽*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 预测 处理策略 平衡数据 文本矩阵 贝叶斯 原数据 输入分类器 原始数据集 支持向量机 错误报告 记录存储 软件缺陷 预测信息 程序段 分类器 分类树 新项目 建模 输出 灵活 | ||
本发明公开了一种基于数据不平衡的软件缺陷预测方法,包括:从已知bug分布的项目中,将具有软件度量值的各类错误报告作为预测使用的原始数据集;采用RSMOTE不平衡处理策略对原数据集中文本矩阵进行不平衡处理、得到平衡数据集;使用朴素贝叶斯、多项式朴素贝叶斯、K近邻、支持向量机、分类树、和Adacost对平衡数据集进行建模找到预测效果最佳的分类器;提取未知bug位置的新项目的软件度量值,输入分类器,进行预测,输出每个程序段是否有bug的预测信息,并进行记录存储。本方法采用了RSMOTE不平衡处理策略对原数据集中文本矩阵进行不平衡处理,因此生成少数类样例更加灵活,能够产生更加广泛合理的样例。
技术领域
本发明涉及软件缺陷预测领域,尤其涉及一种基于数据不平衡的软件缺陷预测方法。
背景技术
随着人们对软件需求的不断增加,软件开发也越来越重要,其中程序调试是软件开发过程中十分重要的一环,该过程主要包括故障检测、故障定位以及故障修复环节,其中故障定位是最为繁琐的环节。软件开发过程中,难免会出现一系列的故障,其中一部分可根据编译信息查找到并进行改正,但大部分程序故障是由逻辑错误所导致的,据统计修复软件中故障的成本占整个软件维护总成本的50%~80%,并且在修复过程中,需要有经验和对代码语义、结构等有了解的人员来完成。为了解决上述问题,研究人员提出了多种软件度量,提出的软件度量与结构和数据有关,如类内方法的数量、继承树的深度、直系继承类的数目、传出耦合和传入耦合类的个数、当该类的对象接收到消息时可以执行的不同方法的数量等等度量信息,结合这些软件度量值,通过分类器进行学习建模,将新项目与训练数据所建立模型进行比较,可以判断出某一代码段或函数段中是否存在错误,从而辅助开发人员快速找到程序故障所在,减轻程序人员手工排查错误的任务量,提高程序错误定位效率。然而在大部分工程中,故障程序段占总程序数目的少数,从而会产生类别不平衡现象,导致分类器的分类效果不好。因此许多学者针对此现象提出了多种不平衡处理方法,如基于数据层面的ROS、RUS、SMOTE方法以及基于算法层面的CSC方法,来对不平衡数据集进行处理,从而减小不平衡数据带来的影响
但目前的不平衡处理方法显然是存在一些缺点的,如随机过采样采取简单复制样本的策略来增加少数类样本,这样容易产生模型过拟合的问题,即使得模型学习到的信息过于特别(Specific)而不够泛化(General)。随机欠采样则是由于采样的样本集合要少于原来的样本集合,因此会造成一些信息缺失,即将多数类样本删除有可能会导致分类器丢失有关多数类的重要信息。而按照SMOTE算法进行线性插值合成新的样例后,得到的新的少数类只能分布在原少数类实例之间的线段中,严格的限制了新生成的少数类实例的分布范围,算法层面的CSC也存在着一些局限性,如当正类过少的时候,即使将正类错分到负类的代价很大,它也仍然更倾向与将正类分到负类。
发明内容
根据现有技术存在的问题,本发明公开了一种基于数据不平衡的软件缺陷预测方法,具体包括如下步骤:
将具有软件度量值的各类错误报告作为预测使用的原始数据集;即提取已知bug分布的项目的软件度量值作为属性,是否存在bug作为标签,形成用于训练分类器的原始数据集。
采用RSMOTE不平衡处理策略对原数据集中文本矩阵进行不平衡处理、得到平衡数据集;
使用朴素贝叶斯、多项式朴素贝叶斯、K近邻、支持向量机、分类树、和Adacost对平衡数据集进行建模找到预测效果最佳的分类器;
提取未知bug位置的新项目的软件度量值,并输入到分类器,进行预测,输出是否存在bug的信息,并进行存储,以实现对bug位置的预测。
进一步的,所述对原数据集中文本矩阵进行不平衡处理具体采用如下方式:
S21:将原始数据集中少数类进行标记,进行不平衡倍率N的计算;
S22:选择一个少数类样本点X、并对该少数类样本点的k个少数类近邻进行记录;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连海事大学,未经大连海事大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910775361.6/2.html,转载请声明来源钻瓜专利网。