论文部分内容阅读
随着软件产品广泛应用于工业制造、金融、交通运输、军事等领域,随着软件的规模和复杂度不断增加,如何保证软件产品的质量和可靠性成为软件工程研究的重点和难点。软件缺陷是影响软件质量的重要因素之一,在软件测试中进行软件缺陷预测能够以较低的成本获得其缺陷分布情况,将主要的人力和财力集中于含缺陷软件单元的测试,对保证软件的质量和可靠性具有重要价值。机器学习中的分类技术是当前软件缺陷预测的主要方法。影响分类预测模型最重要的两个方面是特征描述和分类器的选择。针对软件缺陷数据的特点,本文以NASA数据库为例,探究软件单元特征描述的新方法,以进一步提高软件缺陷预测的准确度。主要工作如下:①针对特征空间中软件单元描述特征多样,预测模型精度低和算法复杂度较高等问题,提出基于相异空间特征描述的软件缺陷预测模型。首先利用训练数据生成代表集,然后选择适合的相异性度量,将软件单元特征空间描述转化为相异空间描述。最后在相异空间中建立分类器完成软件缺陷预测。在NASA数据库中实验结果表明:相异特征描述可以在保证软件缺陷预测的精度的基础上,有效降低其计算复杂度。在CM1、KC1、KC2和PC1四个数据库中,计算效率提高了1%到67%不等。②从扩大软件度量特征类别区分度的角度出发,提出软件单元的分类特征描述方法。首先在各维数值特征中建立一维特征分类器,然后将分类结果作为新特征代替数值特征描述软件单元,最后在分类特征描述下建立预测模型。本文提出基于均值准则和最小错误率准则的两种特征分类器算法。实验结果表明分类特征描述可以有效地提高软件缺陷预测效果。四个数据库中,最优正确率分别从65.61%、71.79%、69.67%和65.01%提高到了71.29%、75.99%、78.05%和73.96%。③考虑到软件单元各类型度量特征的计算方法和分布各不相同,提出了基于集成特征描述的软件缺陷预测方法。针对基于支持向量机分类器特征集成算法存在的计算复杂度高、抗噪性能低和忽略各类型特征权重差异等缺点,提出基于LS-SVM和Boosting的特征集成框架。首先在各类型特征中建立LS-SVM分类器获得集成特征,然后利用Boosting算法获得各集成后特征权重,最后利用加权后集成特征进行软件缺陷预测。实验结果表明:特征集成描述可获得较好预测效果。四个数据库最优正确率分别提高到了74.04%、75.05%、77.22%和75.21%。