软件缺陷是指软件产品未满足与预期需求有关的功能。软件存在缺陷会降低软件的可靠性,降低软件的质量。软件缺陷预测能够提高软件开发和测试的效率,保障软件质量。研究者根据软件源代码度量元对软件进行缺陷预测,提出了针对无标签数据集的无监督缺陷预测方法和跨项目缺陷预测方法,并且取得了较好的效果。这两种方法因其不需要待预测项目标签数据的特点而能够快速应用于新开发的项目。但是CLA(Clustering and LAbeling)无监督方法忽略度量元值与阈值的差值的影响。跨项目缺陷预测方法在计算项目分布相似度时没有使用标签数据。本文提出PCLA(Probabilistic Clustering and LAbeling)无监督缺陷预测方法和提出基于PCLA的跨项目缺陷预测方法。主要工作内容如下:1)提出PCLA无监督缺陷预测方法,将度量元值与阈值的差值映射为概率,使用概率评估类存在缺陷的可能性,再通过聚类和标记来完成缺陷预测。2)分析了PCLA方法中度量元阈值的计算方法,Sigmoid函数倾斜度参数a及标记临界值计算参数O对方法预测性能的影响。3)将PCLA方法与CLA方法比较。实验在Net Gen和Relink两组数据集共7个软件项目上进行,结果表明PCLA方法在查全率、查准率、F-measure上相对CLA方法分别平均提升4.58%,2.56%,3.25%。4)研究不同模型在跨项目缺陷预测方法上的预测效果。选择10个预测模型,对比它们在15个项目共50个版本的数据集上进行跨项目缺陷预测的效果,结果表明SimpleLogistic预测模型的预测效果最佳。5)提出基于PCLA的跨项目缺陷预测方法,通过PCLA方法标记目标项目,再计算可选源项目和目标项目的分布相似度,最后使用选取的源项目训练缺陷预测模型并在目标项目上进行预测。6)在基于PCLA的跨项目缺陷预测方法上,对比9种分布相似度计算策略的预测效果。使用标签数据的百分比计算分布相似度时,取得的预测效果最佳。对比基于PCLA的跨项目缺陷预测与PCLA方法的成功率,其成功率比PCLA方法提升200%。本文提出的针对无标签数据集的缺陷预测方法能够快速应用于工程实践中,特别是对新项目进行缺陷预测,有助于提高软件的质量。
暂无评论