论文部分内容阅读
软件缺陷是软件的固有属性,其主要危害是影响软件的可靠性、增加开发成本以及延长软件开发周期。软件测试可以及时发现软件错误,提高软件系统可靠性。而准确地预测软件缺陷,对改进软件测试过程有着重要的指导意义。随着计算机技术的飞速发展,软件的规模和复杂程度呈几何级数增长,为了能够准确地对软件缺陷进行预测,需要分析的影响因素也越来越复杂。此时,传统的预测方法已经很难处理具有复杂因果关系的预测问题,而且预测结果往往过于宽泛而失去实用意义。为了解决这一难题,人们开始尝试将其他学科的研究方法应用到软件缺陷预测领域中,其中比较常用的是数据挖掘技术。数据挖掘技术是数据库系统研究领域的一个新的研究方向,能够从大量数据中挖掘出有价值的知识,提供决策依据。本文基于数据挖掘方法,分别从静态软件缺陷数据和动态软件缺陷数据两方面展开研究。本文主要工作如下:静态软件缺陷检测旨在自动检测程序模块中是否包含缺陷,从而加速软件测试过程、提高软件系统的质量以及降低软件测试成本。针对传统静态软件缺陷预测模型被限制在一定的应用范围而影响其预测的准确性和适用性,文中提出了一种基于PSO-BP静态软件缺陷预测模型,该模型运用粒子群优化算法优化BP神经网络的权值和阈值,采用交叉验证的方式进行实验,并与传统的机器学习方法J48和BP神经网络等方法进行了比较,实验表明文中提出的方法具有较高的预测准确性;此外,提出了改进粒子群优化算法的参数设置,实验结果表明对粒子群算法的参数设置改进的有效性。动态软件缺陷预测可以将分析结果及时反馈给测试者,从而改进软件测试过程。针对传统动态缺陷预测模型的假设过多并且通用性不强,文中提出了ESGM模型,即运用经验模态分解EMD算法对原始缺陷数据序列进行分解,对本征模态函数IMF和余项分别使用PSO-SVR模型和灰色进行预测。将模型应用于数据集SYS1的建模预测,实验结果表明模型充分发挥了EMD算法的自适应性、SVR的良好的解决非线性问题能力以及灰色对趋势预测的优势,能够得到较好的预测效果,运用于动态缺陷预测是可行的。