新·基于机器学习的软件缺陷预测研究.docVIP

新·基于机器学习的软件缺陷预测研究.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于机器学习的软件缺陷预测研究 刘 旸 [摘要] 基于机器学习的软件缺陷预测是一种有效的提高软件可靠性的方法。该方法基于软件模块的统计特性预测软件模块可能出现的缺陷数或是否容易出现缺陷。通过对软件模块缺陷状况的预测,软件开发组织可以将有限的资源集中于容易出现缺陷的模块,从而有效的提高软件产品的质量。基于机器学习的软件缺陷预测近年来出现了很多研究成果,本文概述该领域近年来的主要研究成果,并根据各方法的特点进行了分类。 [关键词] 软件缺陷预测;机器学习 Survey on Software Prediction based on Machine Learning Liu Yang Lab for Internet Software Technologies Institute of Software [Abstract] Software Quality Prediction Based on Machine Learning is an effective way to improve software reliability. This technology predicts the number of faults in software module or whether a software module is fault-prone or not based on statistical feature of software module. According to the prediction of faults in software module, software developing organization can focus on fault-prone module to improve software quality effectively. This technology is now a proven way to improve software quality. Improvement emerged in recent years about it. This paper will study these improvements by categories. [key word] Software Fault Prediction; Machine Learning 1. 引言 在软件度量工作中,与软件产品相关的常用度量元可以分为静态度量元和动态度量元两类。静态度量元可以通过对软件产品的静态统计得到,如代码行数、函数/方法的数量等等,这些度量元也称作统计度量元。与之对应的,需要在产品运行过程中采集的非统计性的度量元也称作动态度量元或动态指标。如缺陷数量。 软件缺陷是指可运行产品中会导致软件失效的瑕疵[1][2]。软件缺陷数量属于动态度量元,需要通过对产品进行完整测试才能获得。针对软件模块进行完整测试成本高昂,并且必须在软件产品开发完成之后才能进行测试,因而难以控制软件产品缺陷数量。为了更好的提高软件质量,对软件模块的缺陷进行预测是一个可行的方法。软件缺陷预测方法的假定前提是软件的复杂度和软件的缺陷数量有密切关系。复杂度高的软件模块会比复杂度低的模块包含更多的缺陷。软件缺陷预测的思路是使用静态度量元表征软件的复杂度,进而预测软件模块可能的缺陷数量或者发生缺陷的可能性。 通过机器学习进行软件缺陷预测,能够以较低的成本在项目开发的早期预测产品的缺陷分布状况,以便调整有限的项目资源,集中处理可能出现较多缺陷的高风险模块,从而提高软件产品整体的质量。基于机器学习的早期缺陷预测已经被证明是获得高软件可靠性的有效方法[1]。 基于机器学习的的缺陷预测包含3个步骤: 1. 选择适当的统计度量元集合并采集软件产品的统计数据; 2. 构造预测模型; 3. 将统计数据输入预测模型得到预测结果。 在实际的应用中,根据应用环境、开发项目、开发组织等等的不同,预测方法所选取的度量元集合通常会有所不同。常用的表示复杂度的度量元有代码行LOC等。研究表明,使用多度量元能够更好的表达程序的特征,从而更好的预测软件缺陷[8]。度量元的选取在很大程度上仍然依赖于度量人员的经验。目前的研究多集中于使用面向对象或面向过程技术的传统软件产品的缺陷预测。 虽然不同度量元的数据采集方法不同,但在步骤2的预测算法中对不同的度量元并不区分处理,预测算法具有通用性。 2. 常用的预测方法 在基于机器学习的软件缺陷预测方法中,预测模型是最核心的部分。在确定度量元并按照这些度量元在实际项目中采集一定数据之后,预测方法将根据采集到的数据建立预测模型。这样在输入度量元数据时,模型即可预测模块的缺陷状况。根据建立预测模

文档评论(0)

xiaofei2001129 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档