论文部分内容阅读
随着软件系统规模的日益增大及其逻辑复杂性的日益增强,软件中潜在的、未被测试技术发现的缺陷势必影响软件的质量。通过对软件缺陷预测技术的研究,可以统计出系统中的缺陷数目和缺陷分布,这样可以帮助测试人员客观的评估软件可靠性,了解软件的质量状态以及确定软件是否达到了交付使用的标准。本文在对软件缺陷预测现状分析的基础上,提出了基于回归和分类方法相结合的软件缺陷预测框架,分别从软件复杂性度量特征选择方法和缺陷预测模型构建两个方面进行了研究,主要工作及创新点如下:1、研究并改进了现有的软件缺陷预测框架。本文所用缺陷预测框架由前端、中端以及后端三部分组成。在框架的前端部分,使用回归方法来处理缺陷预测模型的输入数据集;在中端部分研究采用分类方法来构建缺陷预测模型的方法;在后端部分主要进行了缺陷预测模型的评价和比较。2、对最小绝对值压缩与选择(Least Absolute Shrinkage and Selection Operator,LASSO)方法进行研究,并将其运用于软件复杂性度量特征选择。首先通过研究数据挖掘技术的相关理念和思想,将其应用到缺陷预测领域中来,对原始数据集进行初选去除了错误数据;之后在精简的数据子集上,采用LASSO方法对其进行优选搜索出对缺陷预测最具影响力的若干复杂性度量属性子集,去除了影响较差或者无影响的复杂性度量属性。3、研究并采用最小角回归算法(Least Angle Regression,LARS)和坐标下降算法(Coordinate Descent,CD)解决LASSO方法构建产生的相应非线性规划问题。仿真实验结果表明,LARS算法适用于低维缺陷数据空间,而CD算法适用于度量属性维数远远的高于测试数据数目的高维缺陷数据空间。结合本文所用数据集的实际情况,最后选用LASSO-LARS方法选择的复杂性度量数据子集来构建缺陷预测模型。4、提出了基于自适应遗传算法(Adaptive Genetic Algorithm,AGA)优化的学习向量量化(Learning Vector Quantization,LVQ)神经网络的软件缺陷预测模型。利用AGA算法的宏观搜索能力和全局寻优性能解决了LVQ神经网络对网络初始权值敏感的问题;之后利用LVQ神经网络具备的分类性能、局部寻优能力和适合于实现模式识别领域的问题等优点成功构建了缺陷预测模型。结合复杂性度量特征选择方法选择出的输入数据子集,实现了软件缺陷预测。5、对本文所提出的软件缺陷预测框架利用MATLAB平台,结合美国国家航空航天局(National Aeronautics and Space Administration,NASA)的相关公开数据集进行了实验仿真。仿真结果表明:与传统的特征选择方法在缺陷预测领域的应用相比,复杂性度量特征选择方法能够有效的去除错误数据和不相关度量属性,在降低维数的同时获得了较好的缺陷预测结果;与传统的软件缺陷预测模型相比,基于AGA-LVQ神经网络的缺陷预测模型具有更好的预测精度。两方面的仿真实验结合起来验证了本文所提预测框架的可行性和有效性。