细粒度缺陷预测技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:kenching
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
缺陷预测技术是利用软件度量数据构建缺陷预测模型预测软件系统中潜在缺陷的技术,它能帮助指导分配测试或审查资源。当前,围绕缺陷预测技术已有大量的研究,但仍然存在一些需要解决的问题。一方面,利用有限的代码以及过程度量信息构建的缺陷预测模型不够理想,从而导致缺陷预测模型没有真正被广泛地应用。另一方面,当前多数缺陷预测技术处于较粗的粒度级别(例如包、文件或者类的级别),粗粒度缺陷预测的结果不能较为准确地预测缺陷发生的位置,不太具有实用价值。  为解决上述问题,本文采取实证的方法研究了三种不同细粒度级别的缺陷预测技术,旨在提高缺陷预测模型的预测能力和实用性。本文所关注的三种细粒度缺陷预测分别是函数、变更和代码行级别的缺陷预测,相比于粗粒度的缺陷预测,细粒度缺陷预测模型预测范围更小,能更为精准定位缺陷发生的位置,给开发人员提供更为有用的信息。本文主要贡献总结如下:  1)针对函数级别缺陷预测,分析了基于切片的内聚性度量的预测能力。在交叉验证、跨版本预测和跨项目预测三种设置下,深入分析联合使用基于切片的内聚性度量和基准度量能否提升工作量感知的缺陷函数排序和分类能力。在多个开源软件系统上的实验结果表明,联合使用基于切片的内聚性度量的预测模型能显著提升工作量感知的缺陷函数排序和分类的能力。  2)针对变更级别缺陷预测,分析了基于变更度量值升序排列的无监督模型的预测能力。在交叉验证、时间敏感预测和跨项目预测三种设置下,深入比较了无监督模型和当前有监督模型的预测能力。在多个开源软件系统上的实验结果表明,存在许多无监督模型的工作量感知变更级缺陷预测能力优于或类似于最好的有监督模型。  3)针对代码行级缺陷预测,分析了基于单词总数预测模型的代码行级缺陷预测能力。在多个开源软件系统上的实验结果表明,基于单词总数的代码行级缺陷预测模型的预测能力优于当前基于N-grams的代码行级缺陷预测模型。
其他文献
多视角学习是近年来机器学习领域的一个热门研究方向。多视角学习利用事物的两个独立或不相关的视角以特定的训练方式来进行学习。传统的多视角学习用来处理具备多个信息源的
分布式文件系统(DFS, Distributed File System)构成了分布式计算的基础,是如今日益发展的大数据应用的重要核心之一。经过数十年的发展,目前存在种类繁多的分布式文件系统,
现代计算机系统,无论是操作系统还是编程语言、虚拟机等,都采用自动内存管理技术。自动内存管理,即垃圾收集,是指自动回收内存中无用对象的机制。除了采用更高性能的硬件,充