一种基于三支决策的两阶段软件缺陷预测方法技术

技术编号:12170616 阅读:103 留言:0更新日期:2015-10-08 04:02
本发明专利技术公开了一种基于三支决策的两阶段软件缺陷预测方法,属于软件测试技术领域。该方法分为两个阶段:第一阶段:依据决策阈值对和软件模块的条件概率,将软件模块划分到三个不同的区域中,对于正域和负域的软件模块,将其直接判定为有缺陷模块和无缺陷模块,而对于边界域中的软件模块,则放到第二阶段去解决;第二阶段:针对边界域中的软件模块,提出了一种基于边界域的多分类器建模模型,通过集成学习机制对边界域软件模块做出有缺陷和无缺陷的确定性决策。本发明专利技术具有较高的软件缺陷预测的分类精度和较低的决策风险代价。

【技术实现步骤摘要】

本专利技术设及一种基于=支决策的两阶段软件缺陷预测方法,属于软件测试技术领 域。
技术介绍
随着软件规模的日益增长和复杂性的增加,如何保证软件产品的质量已经成为 软件产业面临的一个重要问题。软件缺陷预测技术是提高软件质量的一个重要手段,通 过使用早期软件版本的度量数据和测试阶段收集的历史故障数据,预测软件模块的故障趋 势。软件缺陷预测技术在软件开发过程中发挥着=点作用;1)帮助挑选重构代码候选对象; 2)通过合理安排测试资源提高软件测试效率;3)提高软件系统的可靠性。因此软件缺陷预 测技术得到了广泛的关注。现有研究通常将软件缺陷预测看成是一个传统的二支分类问题,将软件模块分类 为有缺陷趋势模块和无缺陷趋势模块。针对该分类任务,可W直接采用机器学习中的分类 模型,如决策树、贝叶斯网络、人工神经网络、支持向量机等。更进一步的,软件缺陷预测是 一类典型的代价敏感学习问题,不同分类错误带来的代价不同。目前用于软件缺陷预测的 代价敏感分类模型有提升神经网络算法(boostedneuralnetwork)、代价敏感提升算法 (cost-sensitiveboosting)等。在现有的采用分类模型进行软件缺陷预测或者代价敏感软件缺陷预测研究中,分 类模型都是采用二支决策的方法,即软件模块要么为有缺陷趋势模块,要么为无缺陷趋势 模块。二支决策方法属于立即决策方式,能够简单快速的给出分类结果,但是存在着误分类 率较高的问题。如对于一给定软件模块,假定其通过分类模型计算得出属于缺陷趋势模块 的条件概率为51%,则属于无缺陷趋势模块的条件概率为49%,简单二支决策方法会依据多 数原则将其判定为有缺陷趋势模块,对于该一类处于中间模糊地带不易划分的软件模块, 立即决策方式误分率较高,由此带来的误分类代价也会增加。
技术实现思路
本专利技术提出了一种基于=支决策的两阶段软件缺陷预测方法,第一阶段考虑到软 件缺陷预测的代价敏感问题,对软件模块进行分类采用=支决策方法,依据不同错误分类 带来的损失代价不同,设置相应的代价函数,计算=支决策所需的阔值对,将误分率高的软 件模块划分到边界域中,交由专家进行缺陷诊断,降低缺陷预测的误分率,减少代价损失。 第二阶段,针对边界域的决策问题,提出一种没有专家参与情况下的自动分类方法,即基于 边界域的多分类器建模模型。本专利技术为解决其技术问题采用如下技术方案: 一种基于=支决策的两阶段软件缺陷预测方法,将软件缺陷预测方法分为两个阶段: 第一阶段;依据决策阔值对和软件模块的条件概率,将软件模块划分到=个不同的区域中, 对于正域和负域的软件模块,将其直接判定为有缺陷模块和无缺陷模块,而对于边界域中 的软件模块,则放到第二阶段去解决;第二阶段;针对边界域中的软件模块,提出了一种 基于边界域的多分类器建模模型,通过集成学习机制对边界域软件模块做出有缺陷和无缺 陷的确定性决策。 所述第一阶段前,首先计算决策阔值对和软件模块的条件概率。 所述计算决策阔值对,将软件缺陷预测方法看作是一个代价敏感学习问题,需要 专家提供损失函数矩阵,包括6个损失函数,分别是,其中 表示将属于缺陷的软件模块标记为有缺陷所带来的损失;表示将属于缺陷的软件模块 划分到边界域所带来的损失;表示将属于缺陷的软件模块划分标记为无缺陷所带来的 损失;為>%表示将属于无缺陷的软件模块标记为有缺陷所带来的损失;為。、/表示将属于无 缺陷的软件模块划分到边界域所带来的损失;為W表示将属于无缺陷的软件模块标记为无 缺陷所带来的损失;要求满足W下条件: 第一阶段中对所有的软件模块采用=支决策的分类方式。 所述软件模块通过有缺陷模块的条件概率换^1々和决策阔值对批,巧之间关系分 类判定,如果>a,则将软件模块X预测为有缺陷模块;如果.0(尤1々 <声,则将软件模 块^预测为无缺陷模块;如果^^曰/切^|句^?,则将软件模块1划分到边界域中在第二阶段 分类进行处理。 所述第二阶段通过集成学习机制对边界域软件模块进行投票给出具体分类结果。 本专利技术的有益效果如下; 1、本专利技术提出一种软件缺陷预测方法,首先采用=支决策的方法通过引入延迟决策,W贝叶斯最小风险决策理论为准则,将易被错分的软件模块划为延迟决策。然后,通过引入 更多的分类器对第一阶段产生的延迟决策软件模块进行投票形式集成分类,从而确定延迟 决策软件模块是否属于缺陷一类。 2、本专利技术基于决策粗趟集的=支决策软件缺陷预测两阶段分类方法,具有较高的 软件缺陷预测的分类精度和较低的决策风险代价。 3、本专利技术提出的两阶段分类方法,使其分类精度更高、误分类代价更低。【附图说明】 图1为本专利技术一个实施例提供的一种软件缺陷预测方法流程图。【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚,下面结合附图对本专利技术实施方法 作进一步的详细描述。本专利技术的技术构思,主要是针对二支决策带来的误分类代价太高,提出基于=支 决策的软件缺陷预测模型。[001引建立软件缺陷预测模型需要W下步骤,结合图1详细说明: 步骤1)基于=支决策的软件模块缺陷预测方法。,已确定是否有缺陷的模块作为训练数 据集,并做好缺陷标签; 步骤S101)应用McC油e和化Istead度量方法对软件模块进行度量,得到我们需要的 特征,构造一个训练集掉?]。 步骤S102)设;C;待预测软件模块; :两种状态,X为有缺陷趋势,_扩为无缺陷趋势; A={。,,如如}己种决策行为,。f为判定软件模块X属于有缺陷趋势模块:化域), 为判定软件模块为可能有缺陷趋势模块;re逆证)(巧(边界域),Ar为判定软件模块不是 有缺陷趋势模块;^€^^巧巧(负域); .ppnr);待预测软件模块为缺陷趋势模块的条件概率; ;待预测软件模块为无缺陷趋势模块的条件概率,^(X|r) +p(JT|r)=i. :其中〇=&5或&^,软件模块1实际状态为有缺陷趋势^时分别采取^种决策<3^, ,%r的代价。[002。 我取1护);其中0 = 或&当前第1页1 2 本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104965787.html" title="一种基于三支决策的两阶段软件缺陷预测方法原文来自X技术">基于三支决策的两阶段软件缺陷预测方法</a>

【技术保护点】
一种基于三支决策的两阶段软件缺陷预测方法,其特征在于将软件缺陷预测方法分为两个阶段: 第一阶段:依据决策阈值对和软件模块的条件概率,将软件模块划分到三个不同的区域中,对于正域和负域的软件模块,将其直接判定为有缺陷模块和无缺陷模块,而对于边界域中的软件模块,则放到第二阶段去解决; 第二阶段:针对边界域中的软件模块,提出了一种基于边界域的多分类器建模模型,通过集成学习机制对边界域软件模块做出有缺陷和无缺陷的确定性决策。

【技术特征摘要】

【专利技术属性】
技术研发人员:李伟湋黄志球谢健马薇薇刘林武
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1