论文部分内容阅读
软件开发不是一蹴而就的,软件将长期处于运行且持续演化的阶段。在软件演化过程中,对源代码进行修改可能会导致缺陷的产生,软件演化的过程其实就是软件不断引入缺陷和消除缺陷的过程。对于演化项目而言,维护困难且代价大。面向演化项目的缺陷预测技术在历史版本缺陷数据集上构建缺陷预测模型,来预测当前待测版本各模块的缺陷情况。通过面向演化项目的缺陷预测技术,可以促进软件测试资源的合理分配,并指引发现软件开发中存在的问题,提高后续软件开发质量,研究面向演化项目的缺陷预测技术具有重要的理论意义与实用价值。国内外专家学者已经对软件缺陷预测领域的软件度量元、特征选择方法和缺陷预测模型构建方法等进行了大量的研究,但是,与传统的软件缺陷预测技术相比,面向演化项目的缺陷预测技术的研究仍不充分。本论文针对演化项目缺陷预测研究中存在的不足,提出了相应的研究方法。(1)针对各过程度量元对演化项目中缺陷引入和消除的影响程度尚不明确的问题,提出了一种过程度量元对缺陷引入和消除的影响程度分析方法。从两个角度比较分析了各过程度量元对演化项目中缺陷情况变化的影响程度,包括各过程度量元与缺陷情况变化之间的相关性和各过程度量元对缺陷引入和消除的分类性能。实验结果表明开发人员数目度量元对缺陷情况变化起着非常重要的作用,另外,还对软件开发和软件缺陷预测提出了一些建议。(2)针对演化项目缺陷预测中未充分考虑数据分布差异和无关特征的影响的问题,提出了一种基于实例选择和特征选择的面向演化项目的缺陷预测方法。其中,实例选择缓解了历史版本数据集和当前待测版本数据集之间的数据分布差异问题,特征选择移除了数据集中的无关特征。在实例选择阶段,采用欧氏距离计算实例之间的相似性,从上一版本数据集中选出待测版本的每个模块实例的近邻实例,组成训练集。在特征选择阶段,提出了一种基于排序集成的特征排序算法,以取特征权重的平均值为集成策略,集成了三种经典的特征排序方法,根据特征权重得到特征排序列表,选取排名靠前的特征,移除无关特征。实验验证了实例选择和特征选择对面向演化项目的缺陷预测的有效性,且实验结果表明,与实例选择相比,特征选择对面向演化项目的缺陷预测性能的提升影响更大。(3)设计并实现了一个面向演化项目的缺陷预测工具DPTEP,该工具实现了基于实例选择和特征选择的面向演化项目的缺陷预测方法,通过该工具,用户可以配置参数并查看预测结果。该论文有图21幅,表20个,参考文献94篇。