基于特征选择的软件缺陷预测方法研究

来源 :西南大学 | 被引量 : 0次 | 上传用户:jiangur2
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着信息技术的快速发展,软件产品已经渗透到社会生活的各个领域,软件开发的规模和复杂度也随之增加。然而,软件中的缺陷是不可避免的。由于软件与人们生产生活的关系日益密切,软件缺陷所造成的严重后果往往难以估量。因此,软件产品的质量受到了越来越多的关注。软件测试是保证软件质量的重要措施,通过测试可以发现软件中存在的缺陷并及时修复。但是,要尽可能多地发现缺陷,必须付出大量的人力和时间成本。而软件缺陷预测技术利用软件的历史缺陷数据,构建预测模型,对软件各个模块进行缺陷预测。此方法可以预先识别出软件中可能存在缺陷的模块,针对缺陷高风险模块投入足够多的测试资源,以保证软件产品的质量和测试效率。软件缺陷预测技术是软件工程领域的研究热点。现在的软件中,数据通常具有高维、海量等特点。为了保证缺陷预测模型的执行效率和分类精度,特征选择成为一种重要的方法。本文主要基于特征选择的方法,针对缺陷预测领域存在的主要问题,提出相应的解决方案。目前,软件缺陷预测面临的问题主要有:(1)软件缺陷数据中存在大量的冗余特征和不相关特征。缺陷数据中存在一些特征,对于预测结果没有帮助,还会影响模型效率,甚至影响预测精度。(2)分类性能问题。通常研究过滤式特征选择算法时,与后续分类算法相互独立,无法达到最优预测精度;而封装式特征选择算法,通常未进行特征降维,模型效率低下。(3)类不平衡问题。缺陷预测是典型的二分类问题,通常将软件各个模块划分为有缺陷倾向和无缺陷倾向两种。其中,其中有缺陷倾向模块远远少于无缺陷倾向模块,这种不平衡现象会对缺陷预测的准确率产生干扰。针对以上问题,本论文提出以下缺陷预测方法:(1)针对软件缺陷数据存在冗余、不相关特征的问题,提出一种基于相关性和冗余性分析的过滤式特征选择算法。对缺陷数据集进行两阶段处理,第一阶段对特征的相关性进行计算,第二阶段对冗余性进行计算,并结合前面的相关性排序,筛选出最优特征子集。此方法既能达到降维的目的,又能提高模型的预测精度。已通过实验证明了该方法的有效性。(2)针对分类性能问题,提出一种基于混合式特征选择的软件缺陷预测算法。算法结合过滤式特征选择和封装式特征选择的优点,首先从相关性和冗余性两方面对特征进行选择,再进行特征聚类,最后以随机森林为评估器评估特征子集的分类性能,选取最优特征子集。此方法在特征降维的同时达到了提高分类精度的目的。已通过对比实验验证了方法的有效性。(3)针对类不平衡问题,提出基于代价敏感的混合式特征选择算法。首先,将代价敏感的思想引入经典的过滤式特征选择算法,解决类不平衡问题。再利用过滤式和封装式特征选择算法相结合的方式,获得最优特征子集。此方法进一步提高了缺陷预测模型的预测精度。已通过实验证明了该方法的有效性。综上所述,本论文主要基于特征选择的理论和方法研究,解决软件缺陷预测中存在的实际问题。一方面基于特征选择的研究拓宽了机器学习的应用领域,也为软件缺陷预测的研究方向提供了新思路;另一方面对实践中提高软件质量和提升软件测试效率具有重要意义。
其他文献
本文主要研究如下具次线性和超线性源项的四阶非线性双曲方程的初边值问题解的爆破性与初始能量之间的关系.首先,通过能量估计和凹方法给出方程解爆破时间的上界估计.进而,利
随着空间光通信技术的不断发展,信标光在空间光通信系统中的作用越来越重要,信标光光源对整个空间光通信系统具有举足轻重的作用。想要得到符合空间光通信要求的信标光,必须
随着金融衍生品在金融市场上的广泛应用,期权定价问题引起了人们越来越多的关注.由于能源的可存储性比较低,能源市场需要交付更加灵活的金融衍生品.摆动期权就是能源市场上应
在对航天器进行地面仿真的过程中,需要使用气浮台来提供微干扰力矩的动力学仿真实验环境。在这种航天器动力学闭环仿真实验中需要实时获取气浮台的位置和姿态信息,实现气浮台
本文用修正弱有限元方法(modified weak Galerkin finite element methods)来求解三种边值条件下二阶椭圆方程.该方法的主要思想是利用单元内部函数的平均来替代单元边界函数,
本文主要讨论了一个非线性偏微分方程:五阶(3+1)维Kadomtsev-Petviashvili Ⅱ(KP-Ⅱ)方程Cauchy问题解的惟一连续性.解的惟一连续性是可积系统的重要性质之一,证明非线性偏微
视觉惯性里程计(VIO)被广泛应用于无人机、无人驾驶、VR/AR等领域中,用于解决移动端在未知环境中实时定位的问题,具有重要的研究价值。为了提升位姿估计的准确性和鲁棒性,本
通常我们在处理一些数据问题时,会遇到传统计数统计模型无法解决的数据,例如在样本点0、1、2三处膨胀的数据样本.这样的数据在保险、心理学、经济学和生物医学都时有出现.这
近年来随着软件与互联网产业的大规模发展,各种开源软件项目托管平台应运而生。这些平台不仅为软件开发者们提供方便的源代码管理工具,同时也为社区用户提供开源项目搜索服务
近年来,随着计算机技术和软件工程的高速发展,越来越多的软件项目涌现出来。但是没有延期和失败的项目却只占到了其中的三成。而其中最重要的原因之一就是人们对软件工作量估