[发明专利]一种基于三支决策的两阶段软件缺陷预测方法有效
申请号: | 201510389995.X | 申请日: | 2015-07-06 |
公开(公告)号: | CN104965787B | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 李伟湋;黄志球;谢健;马薇薇;刘林武 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京经纬专利商标代理有限公司32200 | 代理人: | 许方 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 决策 阶段 软件 缺陷 预测 方法 | ||
技术领域
本发明涉及一种基于三支决策的两阶段软件缺陷预测方法,属于软件测试技术领域。
背景技术
随着软件规模的日益增长和复杂性的增加,如何保证软件产品的质量已经成为软件产业面临的一个重要问题。软件缺陷预测技术是提高软件质量的一个重要手段,通过使用早期软件版本的度量数据和测试阶段收集的历史故障数据,预测软件模块的故障趋势。软件缺陷预测技术在软件开发过程中发挥着三点作用:1)帮助挑选重构代码候选对象;2)通过合理安排测试资源提高软件测试效率;3)提高软件系统的可靠性。因此软件缺陷预测技术得到了广泛的关注。
现有研究通常将软件缺陷预测看成是一个传统的二支分类问题,将软件模块分类为有缺陷趋势模块和无缺陷趋势模块。针对该分类任务,可以直接采用机器学习中的分类模型,如决策树、贝叶斯网络、人工神经网络、支持向量机等。更进一步的,软件缺陷预测是一类典型的代价敏感学习问题,不同分类错误带来的代价不同。目前用于软件缺陷预测的代价敏感分类模型有提升神经网络算法(boosted neural network)、代价敏感提升算法(cost-sensitive boosting)等。
在现有的采用分类模型进行软件缺陷预测或者代价敏感软件缺陷预测研究中,分类模型都是采用二支决策的方法,即软件模块要么为有缺陷趋势模块,要么为无缺陷趋势模块。二支决策方法属于立即决策方式,能够简单快速的给出分类结果,但是存在着误分类率较高的问题。如对于一给定软件模块,假定其通过分类模型计算得出属于缺陷趋势模块的条件概率为51%,则属于无缺陷趋势模块的条件概率为49%,简单二支决策方法会依据多数原则将其判定为有缺陷趋势模块,对于这一类处于中间模糊地带不易划分的软件模块,立即决策方式误分率较高,由此带来的误分类代价也会增加。
发明内容
本发明提出了一种基于三支决策的两阶段软件缺陷预测方法,第一阶段考虑到软件缺陷预测的代价敏感问题,对软件模块进行分类采用三支决策方法,依据不同错误分类带来的损失代价不同,设置相应的代价函数,计算三支决策所需的阈值对,将误分率高的软件模块划分到边界域中,交由专家进行缺陷诊断,降低缺陷预测的误分率,减少代价损失。第二阶段,针对边界域的决策问题,提出一种没有专家参与情况下的自动分类方法,即基于边界域的多分类器建模模型。
本发明为解决其技术问题采用如下技术方案:
一种基于三支决策的两阶段软件缺陷预测方法,将软件缺陷预测方法分为两个阶段: 第一阶段:依据决策阈值对和软件模块的条件概率,将软件模块划分到三个不同的区域中,对于正域和负域的软件模块,将其直接判定为有缺陷模块和无缺陷模块,而对于边界域中的软件模块,则放到第二阶段去解决; 第二阶段:针对边界域中的软件模块,提出了一种基于边界域的多分类器建模模型,通过集成学习机制对边界域软件模块做出有缺陷和无缺陷的确定性决策。
所述第一阶段前,首先计算决策阈值对和软件模块的条件概率。
所述计算决策阈值对,将软件缺陷预测方法看作是一个代价敏感学习问题,需要专家提供损失函数矩阵,包括6个损失函数,分别是,,,,,,其中表示将属于缺陷的软件模块标记为有缺陷所带来的损失;表示将属于缺陷的软件模块划分到边界域所带来的损失;表示将属于缺陷的软件模块划分标记为无缺陷所带来的损失;表示将属于无缺陷的软件模块标记为有缺陷所带来的损失;表示将属于无缺陷的软件模块划分到边界域所带来的损失;表示将属于无缺陷的软件模块标记为无缺陷所带来的损失;要求满足以下条件:,。
第一阶段中对所有的软件模块采用三支决策的分类方式。
所述软件模块通过有缺陷模块的条件概率和决策阈值对之间关系分类判定,如果,则将软件模块预测为有缺陷模块;如果,则将软件模块预测为无缺陷模块;如果,则将软件模块划分到边界域中在第二阶段分类进行处理。
所述第二阶段通过集成学习机制对边界域软件模块进行投票给出具体分类结果。
本发明的有益效果如下:
1、本发明提出一种软件缺陷预测方法,首先采用三支决策的方法通过引入延迟决策,以贝叶斯最小风险决策理论为准则,将易被错分的软件模块划为延迟决策。然后,通过引入更多的分类器对第一阶段产生的延迟决策软件模块进行投票形式集成分类,从而确定延迟决策软件模块是否属于缺陷一类。
2、本发明基于决策粗糙集的三支决策软件缺陷预测两阶段分类方法,具有较高的软件缺陷预测的分类精度和较低的决策风险代价。
3、本发明提出的两阶段分类方法,使其分类精度更高、误分类代价更低。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510389995.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种数据缓存装置及方法
- 下一篇:游戏测试方法及装置