The invention discloses a method to predict the number of software defect data of over sampling and ensemble learning based on the first use of over sampling technology by increasing the number of defects on defect data is greater than zero software module to get the new data of relative balance set, and then use the defect data relatively balanced training set out a number of software defect prediction of number of weak the number of defect model, finally these weak software defect prediction model to predict the number of integrated software modules to be predicted by. The technical scheme of the invention can not only solve the problem of imbalanced data in the defect data set, but also combine multiple weak prediction models to improve the performance of the software defect number prediction model.
【技术实现步骤摘要】
一种基于数据过采样和集成学习的软件缺陷数目预测方法
本专利技术属于软件缺陷预测
,涉及一种软件缺陷数目预测方法,特别是涉及一种基于数据过采样和集成学习的软件缺陷数目预测方法。
技术介绍
软件缺陷是计算机软件或程序中存在的某个破坏正常运行能力的问题、错误以及隐藏的功能缺陷。随着软件系统在工程应用中的不断扩大,软件缺陷导致的经济损失日益增加。据美国国家标准与技术所的一项研究表明,软件缺陷给美国每年造成的损失高达几百亿元,而其中超过三分之一的损失,如果提前稍加测试,即可避免。除了经济领域,还有一些软件是飞行控制系统软件和医疗设备软件,这些和人命相关的软件,一旦出现软件缺陷问题,就会给人民生命财产安全带来无端灾难,因此软件缺陷预测技术意义重大。软件缺陷预测技术是软件质量保证中的一项重要技术。软件缺陷预测通过分析软件历史数据,建立缺陷预测模型,对新的软件模块进行缺陷预测。对预测出潜在缺陷的新的软件模块分配更多的测试资源,可以达到合理分配测试和维护资源的目的。目前为止,已有很多高效的软件缺陷方法被提出。但这些预测通常只给出有缺陷或无缺陷的二分类结果。文献[1-2]表明, ...
【技术保护点】
一种基于数据过采样和集成学习的软件缺陷数目预测方法,其特征在于,包括以下步骤:步骤1:挖掘软件历史数据,从中抽取出n个软件模块;然后标记这些软件模块的缺陷数目;步骤2:提取软件模块中与软件缺陷有关的l个特征,获得包含有n个软件模块数据的软件缺陷数据集S;其中,软件模块Xi的软件模块数据由一个l维的特征向量和软件模块Xi的缺陷数目yi组成;步骤3:对软件缺陷数据集S中的软件模块数据进行过采样,形成新的分布平衡的软件缺陷数据集S’;步骤4:利用集成学习的思想,进行T次迭代,在第t次迭代时,对步骤3中形成的新的软件缺陷数据集S’进行有放回的随机抽样形成训练集St’,然后基于训练集 ...
【技术特征摘要】
1.一种基于数据过采样和集成学习的软件缺陷数目预测方法,其特征在于,包括以下步骤:步骤1:挖掘软件历史数据,从中抽取出n个软件模块;然后标记这些软件模块的缺陷数目;步骤2:提取软件模块中与软件缺陷有关的l个特征,获得包含有n个软件模块数据的软件缺陷数据集S;其中,软件模块Xi的软件模块数据由一个l维的特征向量和软件模块Xi的缺陷数目yi组成;步骤3:对软件缺陷数据集S中的软件模块数据进行过采样,形成新的分布平衡的软件缺陷数据集S’;步骤4:利用集成学习的思想,进行T次迭代,在第t次迭代时,对步骤3中形成的新的软件缺陷数据集S’进行有放回的随机抽样形成训练集St’,然后基于训练集St’训练出一个弱回归模型,最后集成T次迭代产生的T个弱回归模型形成一个强回归模型F(x);步骤5:利用步骤4中训练出的强回归模型F(x),预测待预测的软件模块的缺陷数目。2.根据权利要求1所述的基于数据过采样和集成学习的软件缺陷数目预测方法,其特征在于:步骤1中,软件模块粒度根据实际应用场景,设置为文件、包、类或函数。3.根据权利要求1所述的基于数据过采样和集成学习的软件缺陷数目预测方法,其特征在于:步骤2中,软件模块中与软件缺陷有关的特征包括加权方法数wmc、继承树深度dit、孩子数noc、对象类之间的耦合度cbo、类的响应rfc、内聚缺乏度lcom、传入耦合ca、传出耦合ce、公开方法数npm、代码行数loc、数据访问度量dam、聚合度量moa、功能抽象度量mfa、方法间的内聚度cam、继承耦合ic、方法间耦合cbm、平均方法复杂度amc、最大McCabe环形复杂度max_cc、平均McCabe环形复杂度avg_cc、最小McCabe环形复杂度min_cc。其中,McCabe是一种度量内部程序的复杂性的方法。4.根据权利要求1所述的基于数据过采样和集成学习的软件缺陷数目预测方法,其特征在于,步骤3的具体实现...
【专利技术属性】
技术研发人员:余啸,刘进,周培培,崔晓晖,伍蔓,井溢洋,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。