论文部分内容阅读
软件缺陷数量是软件质量中的重要指标,也是软件工程领域研究一直关注的对象。如何减少软件产品的缺陷、提高软件质量始终困扰着软件开发组织。软件测试是减少软件缺陷的常用方法。但软件测试成本高昂,且只有在完成可以运行的软件产品之后才可进行,那时开发组织往往已没有足够时间排除缺陷。 为了能在有限的资源限制下更有效的提高软件产品的质量,软件工程研究领域提出了软件缺陷预测方法。该方法的假设前提是较复杂的软件产品模块具有更高的缺陷风险或更多的缺陷。通过软件产品统计数据可以表征软件产品的复杂程度,因此,通过易于获得的软件产品统计数据可以对软件模块的缺陷状况进行预测。用于表征软件产品复杂程度的统计数据项称作度量元。根据预测结果,软件开发组织可以将有限的资源集中于容易出现缺陷的高风险模块,从而更有效的发现和排除缺陷,提高软件产品的质量和可靠性。目前软件缺陷预测技术已经被证明是提高软件可靠性和软件质量的有效方法。 本文首先对现有的软件缺陷预测方法进行了分类研究。在此基础上本文提出使用支持向量机(Support Vector Machine,SVM)进行软件缺陷预测。SVM是使用支持向量算法构造的前馈神经网络,也是统计学习理论的进展,拥有很强的学习和泛化能力。同时,针对现有度量元不能表征目前广泛使用的、以逻辑分散为特点的Web应用产品复杂度的问题,本文选择了基于开源组织Apache开发的Web应用框架Struts的Web应用产品作为软件缺陷预测的研究对象,提出了适用于这一类产品的新度量元以更好的表征其复杂度。 基于上述工作,本文使用采集自国家863计划支持项目《基于CMM的软件质量保证平台》的数据对基于SVM的软件缺陷预测方法和针对基于Struts框架开发的Web应用产品的度量元集合进行了实验验证。结果表明基于SVM的软件缺陷预测方法对于基于Struts框架开发的Web应用产品有着很好的预测能力。