论文部分内容阅读
软件缺陷预测是软件测试领域的一个研究热点,它能够指导测试人员分配有限的测试资源,优先用于有缺陷倾向的模块,从而在节约成本的同时尽可能多的发现错误,保证软件的质量。本文针对软件缺陷预测做了以下研究:首先,对于数据集类不平衡和支持向量机参数选择这两个问题是分开进行解决的。本文提出了同步解决这两个问题的思路,旨在得到在有限的测试资源内缺陷检出率更多的软件缺陷预测模型。本文我们提出了基于支持向量机的混合多目标布谷鸟欠采样软件缺陷预测模型,将缺陷检出率与缺陷误报率作为算法的目标,采用混合多目标布谷鸟算法同时对无缺陷模块与支持向量机参数同步选择,并针对无缺陷模块选择的决策区域范围提出了三种策略。其中三种策略分别为:(1)从所有的无缺陷模块中选取需要的模块;(2)采用K-means算法对无缺陷模块进行聚类处理,从每个簇内选择的无缺陷模块数始终等于每个簇内无缺陷模块占总模块数量的比例;(3)采用K-means算法对无缺陷模块进行处理,从模块数最多的簇内选择所需要的模块。为了验证同步解决两个问题的缺陷预测模型性能,选择公开数据库Promise中的8组数据,并与8个缺陷预测模型进行比较,结果表明我们所提的方法策略三是有效的。其次,分析经典过采样算法SMOTE的不足,提出了基于支持向量机的过采样软件缺陷预测模型,基本思想为采用混合多目标算法同时对SMOTE中的近邻插值数和支持向量机参数进行优化。实验表明,所提模型能有效解决SMOTE算法的不足,同时有效的提高了软件缺陷预测模型的预测能力。最后,针对跨项目软件缺陷预测中数据的分布不一致和数据集类不平衡这两个问题,提出了一种三阶段数据选择的跨项目软件缺陷预测模型。从软件项目的选择、实例模块的选择、不平衡三个阶段构建了跨项目的软件缺陷预测模型。在软件项目选择阶段,提出了混合相似性度量选择软件项目;在实例模块选择阶段,采用Burak过滤法进行选择;在数据不平衡阶段,采用前边所提的采样方法构建软件缺陷预测模型。实验结果表明,所提的两种模型相比现有的其它七种跨项目软件缺陷预测模型性能有一定的提高。