跨版本软件缺陷预测技术研究
发布时间:2020-03-30 05:35
【摘要】:软件缺陷预测技术可以预先识别出软件模块中潜藏的缺陷信息,指导测试资源分配和管理决策。在跨版本的软件缺陷预测中,新版本软件常因没有足够的标记样本而使用前序版本数据进行训练学习,但前序版本的特征信息通常具有“滞后性”——相似特征属性的模块完成缺陷修复后仍被预测为存在缺陷。本文针对跨版本缺陷预测中存在“高维小样本”的问题,提出了相应的解决思路:针对无关特征和冗余特征的挖掘问题,提出了一种基于聚类分析结果进行特征子集选择的方法;针对新版本软件中“小样本”的问题,引入基于实例迁移的思想,利用前序版本数据进行更为有效的缺陷预测。主要工作如下:(1)针对软件缺陷预测时样本特征维度高、特征相互之间有冗余造成的搜索空间大、预测精度低等问题,提出了一种结合聚类分析和子集选择的特征选择算法:首先对样本数据集进行聚类分析,得到聚类结果,然后基于样本聚类的结果,进行包装式特征子集选择,得到最优特征子集。通过聚类方法解决了子集搜索时搜索空间大的问题,包装式子集选择则进一步降低了特征间的冗余度。在NASA公开数据集上的实验表明本文方法能有效降低特征子集的冗余率,并能有效提高预测模型的性能。(2)针对新版本软件预测时训练数据少的问题,引入基于实例迁移的思想,提出了改进Boosting方法:在模型训练过程中,加入改进的误分类代价,动态调整前序版本中样本的权重,选择对目标版本预测有利的样本,降低误分类样本对模型的干扰。同时结合软件版本演化过程中与缺陷相关的变更度量元,对目标版本进行缺陷预测。通过在公开数据集上对预测模型进行验证,结果证实该方法有效地改进了预测模型的性能。(3)实现了一个跨版本软件缺陷预测系统,通过集成不同的数据预处理方法、特征选择方法以及分类学习算法,组成100条学习规则,可以针对不同的数据集选择最佳的组合算法,达到最优的预测效果。
【图文】:
南京航空航天大学全日制专业学位硕士学位论文潜在的缺陷。现阶段软件缺陷预测方法基本可以分为两大类:静态缺陷预测和动态缺陷预测。静态缺陷预测是根据在软件中提取到的缺陷相关数据,对模块样本的缺陷倾向性或缺陷数目进行预测;相对而言动态缺陷预测方法关注的是软件缺陷随时间的动态变化,它根据软件生命周期中缺陷的发生时间来预测缺陷随时间变化如何分布。动态缺陷预测通常需要经过一段时间的测试,根据测试出的软件缺陷及其分布进行预测,相对来说预测结果较为准确,,但对项目人员来说有些滞后,很多决策不能及时落实。静态缺陷预测只需对软件规模、复杂度等静态信息进行度量便可进行预测,能够给项目管理者提供更好的决策支持。(1)静态软件缺陷预测技术静态缺陷预测技术[19]是挖掘软件历史仓库,提取与软件缺陷相关的度量信息,建立起分类模型并对模块的缺陷倾向性或缺陷数目进行分析预测。图 2.1 是静态软件缺陷预测的流程,主要有两个步骤:(一)度量元的设计与选择过程:根据软件源代码以及相关历史数据信息划分软件模块,并对这些模块进行度量和缺陷标记,有缺陷倾向性的模块我们标记为 1,无缺陷倾向性的模块标记为 0。(二)分类预测模型的构建过程:借助机器学习的方法对上述标记数据进行学习,建立分类模型,对无标记的模块进行预测。
跨版本软件缺陷预测技术研究 特征选择方法征选择算法一般包含四个步聚:生成特征子集、评价特征子集、算法停止准则、有。其中特征子集的搜索策略和评价标准是最重要的两个阶段,图 2.2 为特征选择的。由特征全集生成特征子集时,可以采用前向搜索、反向搜索、双向搜索和启发式按照子集评价方法的不同,特征选择方法大概包括三类:过滤式(Filter)、包装pper)和嵌入式。
【学位授予单位】:南京航空航天大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.5
本文编号:2607119
【图文】:
南京航空航天大学全日制专业学位硕士学位论文潜在的缺陷。现阶段软件缺陷预测方法基本可以分为两大类:静态缺陷预测和动态缺陷预测。静态缺陷预测是根据在软件中提取到的缺陷相关数据,对模块样本的缺陷倾向性或缺陷数目进行预测;相对而言动态缺陷预测方法关注的是软件缺陷随时间的动态变化,它根据软件生命周期中缺陷的发生时间来预测缺陷随时间变化如何分布。动态缺陷预测通常需要经过一段时间的测试,根据测试出的软件缺陷及其分布进行预测,相对来说预测结果较为准确,,但对项目人员来说有些滞后,很多决策不能及时落实。静态缺陷预测只需对软件规模、复杂度等静态信息进行度量便可进行预测,能够给项目管理者提供更好的决策支持。(1)静态软件缺陷预测技术静态缺陷预测技术[19]是挖掘软件历史仓库,提取与软件缺陷相关的度量信息,建立起分类模型并对模块的缺陷倾向性或缺陷数目进行分析预测。图 2.1 是静态软件缺陷预测的流程,主要有两个步骤:(一)度量元的设计与选择过程:根据软件源代码以及相关历史数据信息划分软件模块,并对这些模块进行度量和缺陷标记,有缺陷倾向性的模块我们标记为 1,无缺陷倾向性的模块标记为 0。(二)分类预测模型的构建过程:借助机器学习的方法对上述标记数据进行学习,建立分类模型,对无标记的模块进行预测。
跨版本软件缺陷预测技术研究 特征选择方法征选择算法一般包含四个步聚:生成特征子集、评价特征子集、算法停止准则、有。其中特征子集的搜索策略和评价标准是最重要的两个阶段,图 2.2 为特征选择的。由特征全集生成特征子集时,可以采用前向搜索、反向搜索、双向搜索和启发式按照子集评价方法的不同,特征选择方法大概包括三类:过滤式(Filter)、包装pper)和嵌入式。
【学位授予单位】:南京航空航天大学
【学位级别】:硕士
【学位授予年份】:2018
【分类号】:TP311.5
【参考文献】
相关期刊论文 前6条
1 刘建伟;刘媛;罗雄麟;;半监督学习方法[J];计算机学报;2015年08期
2 庄福振;罗平;何清;史忠植;;迁移学习研究进展[J];软件学报;2015年01期
3 周志华;;基于分歧的半监督学习[J];自动化学报;2013年11期
4 洪佳明;陈炳超;印鉴;;一种结合半监督Boosting方法的迁移学习算法[J];小型微型计算机系统;2011年11期
5 李大鹏;郭平;陈新宇;;一种集成类层次和系统层次的面向对象软件复杂性度量集[J];计算机研究与发展;2010年S1期
6 罗云锋;贲可荣;;软件故障静态预测方法综述[J];计算机科学与探索;2009年05期
相关硕士学位论文 前2条
1 刘树龙;特征选择在软件缺陷预测中的应用技术研究[D];南京大学;2015年
2 秦丽娜;软件缺陷静态预测研究[D];华中师范大学;2011年
本文编号:2607119
本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2607119.html