软件测试中机器学习的运用探讨.pdfVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

软件测试中机器学习的运用探讨

1.2.1关于软件安全可靠性的研究

在软件安全可靠性研究的30篇文献中,多数是针对移动应用软件的安全性和可靠性的

检测和预测,少数文献是针对Window和Linux应用软件[3,14,19]。

对于Window和Linux应用软件的安全性和可靠性检测和预测,通常是对API分类和API

调用序列进行分析、利用工具从源码中提取信息、监控并记录软件行为等方法提取信息作为

模型的输入特征,利用支持向量机、逻辑回归、随机森林等常用的机器学习模型在虚拟机或

沙箱中进行实验和分析。

对于Android应用程序[6,8,12],主要是利用AAPT提取APK的元信息,同时结合应用

程序的性能数据、网络流量、软件行为等信息对应用程序进行静态和动态分析,提取特征集,

利用常用的机器学习算法进行模型构建、训练、预测和评估,实验结果表明在检测新软件是

否是恶意软件,利用机器学习方法对软件安全性和可靠性的检测和预测相对于传统的杀毒软

件更快速且更高效。

1.2.2、关于软件缺陷的研究

软件缺陷是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏

的功能缺陷。在软件缺陷方面,所阅读的部分研究文献针对缺陷预测、缺陷定位和缺陷分类

进行了研究。

(1)软件缺陷预测

软件缺陷预测是用已有的历史数据来预测软件中是否存在缺陷。研究文献中主要以静态

分析为主,动态分析为辅,利用机器学习算法进行模型构建、训练和评估,其中静态分析中

提取的特征主要包括:面向对象准则、继承准则、代码准则等特征。由于静态分析所得到的特

征较多,且不同的特征对预测缺陷的权重不同,且分类类别不平衡,因此,在将这些特征进

行机器学习训练时,需要对数据进行清洗后才能用于学习和训练,以避免产生较大的误差。

随着软件测试领域逐渐发展,软件缺陷数据的积累越来越多,充分利用已积累的缺陷数据,

可以减少开发人员和测试人员的工作量,提高软件测试的效率。

(2)软件缺陷定位

软件缺陷定位在软件测试领域是一个较为困难的问题。目前,大多数的缺陷需要人为查

找和排除,代码走查和审查成为了查找和排除缺陷的重要手段和方法,但是此方法会耗费大

量的人力和时间,因此,如何快速有效地定位软件缺陷成为了亟待解决的问题。在研究文献

中,软件缺陷定位的方法分为两类,一类是Li等[1]基于模糊理论进行定位,即把历史数据

中产生的软件缺陷进行抽象和概括;另一类类似于软件缺陷预测的方法,Jonsson等[17]和

Le等[19]以静态分析进行模型构建、训练和评估。

(3)软件缺陷分类

软件缺陷分类主要是判别提交的缺陷是否是真正的缺陷。在研究文献中,不同的学者对

缺陷的提取特征不同。例如:在开源的项目中,Pandey等提取JIRA和BUGZILLA中的缺陷描

述、发现缺陷的步骤、缺陷隶属的项目等信息作为特征;在众包测试中,Wang等提取交叉领

域的历史测试数据作为特征;在软件开发项目中,提出软件的静态分析准则作为特征。在缺

陷管理平台的众多缺陷中,准确地判断缺陷可以较少开发人员和测试人员的工作量。但是,

随着众包测试和开源工具的增多,检测缺陷的重复提交还需更进一步研究。

(4)缺陷复现

在缺陷管理平台中,不同的缺陷复现的难易程度是不一样的,如闪退或崩溃类型的缺

陷。Gu等通过对软件历史版本的缺陷复现的路径分析来预测新缺陷复现的难易程度,在缺陷

修复的过程中,给开发人员提供帮助。

1.2.3、基于源码的研究

基于源码的研究主要是对源码进行静态分析找出源码中的缺陷。此研究主题最重要的是

对源码进行抽象语法数、函数调用图、符号执行等方法的静态代码分析,提取有效的特征进

行模型构建、训练和评估。基于源码的研究大致可分为代码重用、代码相似度的检测、代码

审查、缓冲区溢出检测。代码重用和代码相似度检测类似,即检测源码中的相似的代码,对

相似的代码进行封装,减少开发的工作量和代码维护成本。在有源码的基础下,对源码进行

分析可为软件质量提供更好的保障。

1.2.4、其他

(1)测试用例优化

回归测试在整个软件测试过程中占有较大的比重,软件开发的各个阶段都会进行多次回

归测试。在回归测试过程中,测试用例优化是用来解决如何在巨大的测试用例库中选择较少

的测试用例以达到较大

文档评论(0)

你别来~我无恙 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档