基于数据增强的即时软件缺陷预测研究
作者单位:大连海事大学
学位级别:硕士
导师姓名:陈荣
授予年度:2022年
学科分类:08[工学] 0835[工学-软件工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:软件质量保证活动是软件开发过程中的重要环节。为了在保证软件质量的同时最小化测试成本,软件缺陷预测技术成为了软件工程领域的研究热点。基于被测软件实体大小的不同,缺陷预测技术主要分为粗粒度缺陷预测(文件、模块或者包)和细粒度缺陷预测(变更)。变更级缺陷预测是在开发者提交代码时,预测本次提交的代码变化是否存在缺陷的技术,又称为即时(Just-In-Time)缺陷预测。相比于粗粒度缺陷预测,即时缺陷预测技术有着可追溯和即时性的优势并因此吸引了大量研究者的注意。即时缺陷预测本质上是一个分类问题,数据集质量影响着该技术的性能。然而,即时缺陷预测数据集有相关问题有待于解决:(1)特征表示问题。即时缺陷预测存在高度的特征差异性问题,这会导致与缺陷识别不相关的特征被放大,而与缺陷识别相关的特征被弱化或者丢失;同时,目前常用的变更特征的区分性并不明显。因此,需要找到一些新的、合理的特征来提升即时软件缺陷预测模型的性能。(2)噪音数据的处理。即时缺陷预测研究中的标注数据是存在噪音的。处理训练数据中的噪音,减小噪音数据对即时缺陷预测模型的影响,将进一步提升即时缺陷预测技术的有效性和实用性。为了解决以上的问题,本文从特征学习和噪音数据处理两个角度对即时缺陷预测数据进行数据增强来提升数据集质量,主要完成了以下工作:(1)为了解决特征表示问题,本文提出了一种自动特征学习方法(AFLM),该方法基于强化学习。在训练阶段,首先训练智能体在训练集上学习有效的策略,该策略可以为每个特征找到合适的特征转换方式。接着,智能体根据优化的特征转换策略顺序优化数据集中的每个特征并基于转换后的数据建立分类模型。在测试阶段,建立的分类模型可以预测特征转换后测试实例的缺陷概率。特征转换后,不同类别的实例有较大的差异,使得分类模型更容易识别缺陷实例。(2)为了解决噪音数据处理问题,本文提出了不平衡置信学习(Confident Learning Imbalance)模型。该模型通过估计噪声标签和真实标签的联合分布发现噪声数据,接着清除噪声数据,然后基于产生的干净数据建立分类模型以提升分类性能。实验结果表明,CLI模型可以有效提升训练数据质量并提高即时缺陷预测模型的分类性能。