The invention discloses a software defect prediction method based on data imbalance, which includes: taking all kinds of error reports with software metrics as the original data set for prediction from the projects with known bug distribution; using rsmote imbalance processing strategy to imbalance the Chinese matrix of the original data set to get the balanced data set; using naive Bayes and polynomial simplicity Prime Bayes, k-nearest neighbor, support vector machine, classification tree, and adacost model the balanced data set to find the best classifier; extract the software measure value of the new project with unknown bug location, input the classifier, predict, output the prediction information of whether there is a bug in each program segment, and record and store it. In this method, rsmote imbalance processing strategy is used to deal with the imbalance of the text matrix in the original dataset, so generating a few kinds of samples is more flexible and can produce more extensive and reasonable samples.
【技术实现步骤摘要】
一种基于数据不平衡的软件缺陷预测方法
本专利技术涉及软件缺陷预测领域,尤其涉及一种基于数据不平衡的软件缺陷预测方法。
技术介绍
随着人们对软件需求的不断增加,软件开发也越来越重要,其中程序调试是软件开发过程中十分重要的一环,该过程主要包括故障检测、故障定位以及故障修复环节,其中故障定位是最为繁琐的环节。软件开发过程中,难免会出现一系列的故障,其中一部分可根据编译信息查找到并进行改正,但大部分程序故障是由逻辑错误所导致的,据统计修复软件中故障的成本占整个软件维护总成本的50%~80%,并且在修复过程中,需要有经验和对代码语义、结构等有了解的人员来完成。为了解决上述问题,研究人员提出了多种软件度量,提出的软件度量与结构和数据有关,如类内方法的数量、继承树的深度、直系继承类的数目、传出耦合和传入耦合类的个数、当该类的对象接收到消息时可以执行的不同方法的数量等等度量信息,结合这些软件度量值,通过分类器进行学习建模,将新项目与训练数据所建立模型进行比较,可以判断出某一代码段或函数段中是否存在错误,从而辅助开发人员快速找到程序故障所在,减轻程序人员手工排查错误的任务量,提高程序错误定位效率。然而在大部分工程中,故障程序段占总程序数目的少数,从而会产生类别不平衡现象,导致分类器的分类效果不好。因此许多学者针对此现象提出了多种不平衡处理方法,如基于数据层面的ROS、RUS、SMOTE方法以及基于算法层面的CSC方法,来对不平衡数据集进行处理,从而减小不平衡数据带来的影响但目前的不平衡处理方法显然是存在一些缺点的,如随机过采样 ...
【技术保护点】
1.一种基于数据不平衡的软件缺陷预测方法,其特征在于包括:/n将具有软件度量值的各类错误报告作为预测使用的原始数据集;/n采用RSMOTE不平衡处理策略对原数据集中文本矩阵进行不平衡处理、得到平衡数据集;/n使用朴素贝叶斯、多项式朴素贝叶斯、K近邻、支持向量机、分类树、和Adacost对平衡数据集进行建模找到预测效果最佳的分类器;/n将新错误报告输入至分类器内对语句块进行分类、找到出现错误的语句块实现对bug位置的预测。/n
【技术特征摘要】
1.一种基于数据不平衡的软件缺陷预测方法,其特征在于包括:
将具有软件度量值的各类错误报告作为预测使用的原始数据集;
采用RSMOTE不平衡处理策略对原数据集中文本矩阵进行不平衡处理、得到平衡数据集;
使用朴素贝叶斯、多项式朴素贝叶斯、K近邻、支持向量机、分类树、和Adacost对平衡数据集进行建模找到预测效果最佳的分类器;
将新错误报告输入至分类器内对语句块进行分类、找到出现错误的语句块实现对bug位置的预测。
2.根据权利要求1所述的方法,其特征还在于:所述对原数据集中文本矩阵进行不平衡处理具体采用采用如下方式:
S21:将原始数据集中少数类进行标记,进行不平衡倍率N的计算;
S22:选择一个少数类样本点X、并对该少数类...
【专利技术属性】
技术研发人员:郭世凯,董剑,陈荣,王佳慧,李辉,郭晨,唐文君,
申请(专利权)人:大连海事大学,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。