基于改进的支持向量机的软件缺陷优先级预测方法

文档序号:6360632阅读:307来源:国知局
专利名称:基于改进的支持向量机的软件缺陷优先级预测方法
技术领域
本发明涉及一种缺陷报告优先级预测的方法,主要采用一种改进的支持向量机模型为缺陷优先级的预测建模,对缺陷报告的处理优先级进行判断和预测,属于软件测试领域。
背景技术
我们已经处于数字时代。半个多世纪以来,计算机技术的高速发展使得信息技术已经渗透到人类活动的各个领域。数据库,数据仓库以及因特网技术的应用普及使得我们需要处理的数据规模越来越巨大。这些数据都是非常宝贵的资源。然而,在拥有海量数据的同时,我们对数据知识的提取很大程度上依旧停留在过去查询、简单检索的水平上、信息的载体是数据,但是数据本身不等于信息。激增的数据后面蕴涵着大量的“宝藏” [I]。近年来,软件开发商鼓励软件使用者通过Jira或Bugzilla积极地报告他们遇到的错误(bug),这样,开发人员在新的版本的研究就可以致力于解决这些问题[2]。错误报告是开发人员和使用者在软件开发和维护者提交的软件系统的错误,通常这些错误都存放在软件库当中。在测试工程师的日常工作中,最经常做的也是必须做的就是提交缺陷报告。在提交错误的时候,我们要给出这个错误解决的优先级,开发人员会根据错误的优先级来决定先修复哪个错误,后修复哪个错误,所以优先级的正确与否会影响到错误的解决时间进而可能会影响测试和开发的进度。传统上,预测错误优先级的方法是人工辨别,这种方法既耗时又费力还浪费资源[3],从而延误了关键错误的修复,造成大量的损失。因此,我们需要自动的方式能够预测出错误的优先级,使开发人员能分离出重要和不重要的错误,从而提高修复错误的效率,改善软件的质量。但是当前预测错误优先级的方法并不多,大多针对的是预测错误的数量和在代码中定位错误[4],还有一些是预测错误严重程度。但是,错误的优先级同样很重要,不容忽视,它直接决定这修复错误的先后顺序,延误了正要错误的修复,会产生不容小觑的损失。[I]刘英博王建民.面向缺陷分析的软件库挖掘方法综述,计算机科学2007,
(34).[2]Ahmed Lamkanfi, Serge Demeyer, Quinten David Soetens, Tim Verdonck.Comparing Mining Algorithms for Predicting the Severity of a Reported Bug.European Conference on Software Maintenance and Reengineering, 2011.[3]Jaweria Kanwal, Onaiza Maqbool. Managing Open Bug Repositoriesthrough Bug Report Prioritization Using SVMs.Proceedings of the 4thInternational Conference on Open-Source Systems and Technologies(IC0SST 2010),December,2010 :22-24.[4]Lian Yu,Wei-Tek Tsai,Wei Zhao,and Fang Wu.Predicting Defect PriorityBased on Neural Networks. ADMA 2010,Part 11, LNCS 6441,2010 :356-367.

发明内容
技术问题本发明的目的是提供一种基于改进的支持向量机的软件缺陷优先级预测方法,用一种机器学习的方法建立一种错误解决的优先级的预测模型,使其能自动的对新到错误报告库的错误分配一个适当的优先级。传统上,预测错误优先级的方法是人工辨另IJ,这种方法既耗时又费力还浪费资源,从而延误了关键错误的修复,造成大量的损失。Jaweria Kanwal等在2010年提出的利用支持向量机预测缺陷优先级的推荐器。支持向量机一直以来都是研究人员热衷的分类算法之一,在这之前已经用于文本分类和软件库分类了,并显示有不错的前景。但是第三等级并非最重要的等级,第一等级的错误才是最重要,最需要优先修复的,而此方法,第一等级的准确度和召回率却不是最高的。本发明是把支持向量机模型结合了自适应强度算法,使其精确度和召回率更高。技术方案本发明需要选取合适的错误报告数据作为训练数据,而且,该训练数据要求其属性是已解决的,已关闭的,已确认的。因为这样的错误报告是分类人员或开发人员修复之后确定的优先级,这样的优先级更为准确,训练出来的分类器准确性也很高。本发明结合了自适应强度算法(Adaboost)和支持向量机算法(SVM),由支持向量机做弱学习机,对错误报告的优先级进行机器训练学习,得到弱学习机,再利用自适应强度算法得到强学习机。基于改进的支持向量机的软件缺陷优先级预测方法分为两大部分一、数据分析步骤11)收集错误报告数据集;步骤12)对错误报告进行分析,提取其中的产品,组件,版本,平台,操作系统,缺陷状态,错误解决状况,优先级,严重程度,主题,详细描述的信息;步骤13)把主题和详细描述中的停用词这样无意义的单词去掉,把所有单词转换成其基本形式;步骤14)对每个样本标记上优先级,在这里,优先级分为五个等级P1,P2,P3,P4,P5,其中Pl的优先级最高,依次递减;二、变换支持向量机的参数,针对同一训练集 训练出不同的分类器,然后把这些分类器集合起来,步骤21)先对所有样本赋以一个抽样权重,一般开始的时候权重都一样即认为均匀分布,也就是训练集如果有N个样本,每个样本的分布概率为1/N ;步骤22)调整高斯宽度O,采用径向基函数(简称RBF)内核,其中最常用的径向
基函数是高斯函数,形式为&(|x_x =,其中X。为核函数中心,O为函数的宽度参
数,共同控制了函数的径向作用范围。在训练过程中通过适当地调整可以获得适当精确的支持向量机分类器;步骤23)如果O大于已设定的高斯宽度值,就使用支持向量机训练弱学习机,否则,转到步骤7);步骤24)计算弱学习机的错误率,如公式2,如果错误率大于50%,降低o,再转到步骤3);
权利要求
1.一种基于改进的支持向量机的软件缺陷优先级预测方法,其特征在于该方法分为两大部分一、数据分析步骤11)收集错误报告数据集;步骤12)对错误报告进行分析,提取其中的产品,组件,版本,平台,操作系统,缺陷状态,错误解决状况,优先级,严重程度,主题,详细描述的信息;步骤13)把主题和详细描述中的停用词这样无意义的单词去掉,把所有单词转换成其基本形式;步骤14)对每个样本标记上优先级,在这里,优先级分为五个等级P1,P2,P3,P4,P5,其中Pl的优先级最闻,依次递减;二、变换支持向量机的参数,针对同一训练集训练出不同的分类器,然后把这些分类器集合起来,步骤21)先对所有样本赋以一个抽样权重,一般开始的时候权重都一样即认为均匀分布,也就是训练集如果有N个样本,每个样本的分布概率为1/N ;步骤22)调整高斯宽度σ,采用径向基函数RBF内核,其中最常用的径向基函数是高斯函数,形式为
全文摘要
基于改进的支持向量机的软件缺陷优先级预测方法主要采用一种改进的支持向量机模型为缺陷优先级的预测建模,对缺陷报告的处理优先级进行判断和预测,步骤1)选取状态为已解决的,已关闭的,已确定的错误报告做为训练数据;步骤2)提取出我们需要的特征;步骤3)对所有样本赋以一个抽样权重在此样本上用支持向量机训练一个分类器对样本分类,步骤4)用得到的错误率去更新分布权值向量对错误分类的样本分配更大的权值,正确分类的样本赋予更小的权值。步骤5)就这样依次迭代,最后我们得到的强分类器就是多个弱分类器的加权和。本发明用机器学习的发法训练出分类器,从而使缺陷优先级的确定自动化,减少人员和成本的消耗。
文档编号G06F11/36GK102637143SQ201210057888
公开日2012年8月15日 申请日期2012年3月7日 优先权日2012年3月7日
发明者周国富, 周国强, 常成成, 张卫丰, 张迎周, 王慕妮, 许碧欢, 陆柳敏, 顾赛赛 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1