基于程序切片的软件缺陷预测

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:edison2920
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件缺陷的多少直接反映了整个软件质量的好坏,每一个软件中的缺陷都必须得到妥善的处理,可靠的基于软件仓库的缺陷预测则在软件缺陷的发现和移除中起着至关重要的作用。首先,它能够指导软件开发人员将有限的资源投入到更容易产生缺陷的模块中,从而提高软件质量。而在关键软件的评估中,基于软件仓库的缺陷预测在决定软件是否可以投入使用时起着决定性的作用。虽然研究者们使用数据挖掘和机器学习的方法已经得出了比较满意的预测准确度,但是直接将机器学习的模型用于缺陷预测会产生很多和软件缺陷经验相矛盾的问题。而这些问题会影响到预测的准确性。本文首先提出了一套软件缺陷预测的方法,使用该方法对已有的三个预测算法——CART、朴素贝叶斯、C4.5,进行了预测预测的比较,随后,在C4.5决策树算法的基础上,针对软件仓库计算出来的指标的特点对算法进行了改进,改进算法引入了Spearman等级相关度,使得其决策树在选取属性作为根结点更为符合开源软件缺陷的实际情况。同时,本文还提出了一种新的预测粒度——切片粒度,该粒度是通过对程序中的函数按照其在函数调用图中的距离进行聚类得到的。为了验证改进算法以及新预测粒度的有效性,本文提出了一个缺陷预测方法,该预测方法是由预测指标以及预测算法组成,整个预测过程分为三个主要步骤:一、挖掘指标,从软件仓库中挖掘出用于预测的指标,包括源代码指标、变更指标、缺陷指标、切片指标等;二、预测,将挖掘出的指标输入预测算法中,得出该算法对挖掘出的指标做出的预测;三、预测算法改进,针对指标数据特点和指标跟缺陷的关联度来改进算法,使用第一步挖掘出的指标做出预测。最后,本文将改进预测算法与已有算法用到预测方法中做了缺陷预测的比较,实验表明,改进后的缺陷预测算法大大地降低了决策树的规模,并且在两个模块的缺陷预测准确率上分别提高了4.5802和4.8656个百分点。另外,本文还做了切片粒度和文件粒度的对比实验,实验表明,在不包含零缺陷函数的情况下,无论是训练集还是测试集,切片粒度的准确率要明显高于文件粒度的准确率,在训练集和测试集上分别高出8.5个百分点和2.5个百分点,并且在生成的决策树大小上,切片粒度的树规模比文件粒度的要小大概50%。
其他文献
软件需求分析是整个软件开发过程中极为重要的环节,它不仅仅是技术问题,也涉及了组织、管理、商务、社会等问题。在早期的需求分析过程中,描述建立了软件系统的动机、意向和原则
正确并高效地进行补丁验证对提高软件质量及程序员生产效率至关重要。使用静态分析的方法可以在程序不执行的情况下检测出程序中可能存在的部分错误;同时,动态符号执行可以自动
随着网络技术的发展,Internet上已经开发出多种多样的应用,其中不少是高带宽的多媒体应用,这带来了带宽的急剧消耗和网络拥塞问题。组播技术正是为了解决这些问题而提出的,它有效
近年来,多媒体应用在Internet中占据越来越重要的位置。如果多个用户同时要接收同样的多媒体数据,组播是最有效的单点到多点的数据传输方式。传统的组播以单一速率发送给所有
随着校园网规模的不断扩大和网络应用的日益开展,校园网安全性的管理变的复杂,同时对网络管理员的要求越来越高。校园网的安全管理和稳定运行已经成为计算机网络领域备受关注的
本课题所研究的产品设计协同平台是一个多Agent支持的分布式软件系统,可以用其进行产品的初步设计以及产品数据管理。本课题详细研究了Agent理论模型,首先介绍了软件Agent的定
集合论的提出及发展大大促进了计算机应用技术的创新,尤其,近些年来迅速发展起来的Rough集理论,对于处理不确定、不精确、模糊信息提供了良好的解决方法,加快了人工智能技术的发
可视媒体主要包括图像和视频,具有直观、生动、有趣等特点,与文字相比能更加有效地向人们传达信息。在过去,传统的可视媒体来源有手工绘画、印刷等,载体有纸、胶片等。由于传统可
P2P结构具有鲁棒性、分散性、负载平衡和可扩展性等特点,是下一代互联网技术发展方向之一,在文件共享和分布式计算领域倍受关注。随着Internet的发展,基于局域网的传统分布式数
办公自动化(OA:office automation)是一个需求变化很快的领域。使用传统技术开发的OA系统质量差、难维护、可靠性低、可扩展性差,基于构件的软件开发(CBSD:Component Based Soft