电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

8页
  • 卖家[上传人]:cl****1
  • 文档编号:492097987
  • 上传时间:2023-08-07
  • 文档格式:DOCX
  • 文档大小:18.04KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、软件测试中机器学习的运用探讨1.2.1 关于软件安全可靠性的研究在软件安全可靠性研究的 30 篇文献中, 多数是针对移动应用软件的安全性和可靠性的 检测和预测,少数文献是针对Window和Linux应用软件3,14,19。对于Window和Linux应用软件的安全性和可靠性检测和预测,通常是对API分类和API 调用序列进行分析、利用工具从源码中提取信息、监控并记录软件行为等方法提取信息作为 模型的输入特征, 利用支持向量机、逻辑回归、随机森林等常用的机器学习模型在虚拟机或 沙箱中进行实验和分析。对于Android应用程序6,8,12,主要是利用AAPT提取APK的元信息,同时结合应用 程序的性能数据、网络流量、软件行为等信息对应用程序进行静态和动态分析, 提取特征集, 利用常用的机器学习算法进行模型构建、训练、预测和评估, 实验结果表明在检测新软件是 否是恶意软件, 利用机器学习方法对软件安全性和可靠性的检测和预测相对于传统的杀毒软 件更快速且更高效。1.2.2、关于软件缺陷的研究软件缺陷是计算机软件或程序中存在的某种破坏正常运行能力的问题、错误, 或者隐藏 的功能缺陷。在软件缺陷方

      2、面, 所阅读的部分研究文献针对缺陷预测、缺陷定位和缺陷分类 进行了研究。(1) 软件缺陷预测软件缺陷预测是用已有的历史数据来预测软件中是否存在缺陷。研究文献中主要以静态 分析为主, 动态分析为辅, 利用机器学习算法进行模型构建、训练和评估, 其中静态分析中 提取的特征主要包括:面向对象准则、继承准则、代码准则等特征。由于静态分析所得到的特 征较多, 且不同的特征对预测缺陷的权重不同, 且分类类别不平衡, 因此, 在将这些特征进 行机器学习训练时, 需要对数据进行清洗后才能用于学习和训练, 以避免产生较大的误差。 随着软件测试领域逐渐发展, 软件缺陷数据的积累越来越多, 充分利用已积累的缺陷数据, 可以减少开发人员和测试人员的工作量, 提高软件测试的效率。(2) 软件缺陷定位软件缺陷定位在软件测试领域是一个较为困难的问题。目前, 大多数的缺陷需要人为查 找和排除, 代码走查和审查成为了查找和排除缺陷的重要手段和方法, 但是此方法会耗费大 量的人力和时间, 因此, 如何快速有效地定位软件缺陷成为了亟待解决的问题。在研究文献 中,软件缺陷定位的方法分为两类,一类是Li等1 基于模糊理论进行定

      3、位,即把历史数据 中产生的软件缺陷进行抽象和概括;另一类类似于软件缺陷预测的方法, Jonsson 等17和 Le等19以静态分析进行模型构建、训练和评估。(3) 软件缺陷分类软件缺陷分类主要是判别提交的缺陷是否是真正的缺陷。在研究文献中, 不同的学者对 缺陷的提取特征不同。例如:在开源的项目中,Pandey等提取JIRA和BUGZILLA中的缺陷描 述、发现缺陷的步骤、缺陷隶属的项目等信息作为特征;在众包测试中, Wang 等提取交叉领 域的历史测试数据作为特征;在软件开发项目中, 提出软件的静态分析准则作为特征。在缺 陷管理平台的众多缺陷中, 准确地判断缺陷可以较少开发人员和测试人员的工作量。但是, 随着众包测试和开源工具的增多, 检测缺陷的重复提交还需更进一步研究。(4) 缺陷复现在缺陷管理平台中, 不同的缺陷复现的难易程度是不一样的, 如闪退或崩溃类型的缺 陷。Gu等通过对软件历史版本的缺陷复现的路径分析来预测新缺陷复现的难易程度在缺陷 修复的过程中, 给开发人员提供帮助。1.2.3、基于源码的研究基于源码的研究主要是对源码进行静态分析找出源码中的缺陷。此研究主题最重要的是 对

      4、源码进行抽象语法数、函数调用图、符号执行等方法的静态代码分析, 提取有效的特征进 行模型构建、训练和评估。基于源码的研究大致可分为代码重用、代码相似度的检测、代码 审查、缓冲区溢出检测。代码重用和代码相似度检测类似, 即检测源码中的相似的代码, 对 相似的代码进行封装, 减少开发的工作量和代码维护成本。在有源码的基础下, 对源码进行 分析可为软件质量提供更好的保障。1.2.4、其他(1) 测试用例优化回归测试在整个软件测试过程中占有较大的比重, 软件开发的各个阶段都会进行多次回 归测试。在回归测试过程中, 测试用例优化是用来解决如何在巨大的测试用例库中选择较少 的测试用例以达到较大的代码覆盖率和功能覆盖率的问题。在研究文献中, 不同的研究者对 测试用例优化问题进行了研究, 以整个测试用例库作为特征集, 通过对用例自然语言处理、 执行用例后的代码覆盖率、变异得分等对测试用例库进行降维, 去除冗余的测试用例, 再将 得到的数据进行模型构建、训练和评估。(2) 自动化测试自动化测试在软件测试过程中有极其重要的作用, 自动化测试能减少测试人员的工作量, 提高测试效率。Rosenfeld等利用机

      5、器学习基于预定义的activity类别对activity进行分 类后, 根据不同的分类进行自动化测试, 以提高自动化测试的缺陷检测率。(3) 对测试质量评价评价软件或项目测试质量的好坏对提高测试效率和质量有重要作用。Zhou等通过对软件 或项目涉及相关人员、测试流程、软件或项目属性等特征进行模型选择、构建和评估, 以此 来评估软件或项目的测试质量。一个软件或项目的测试质量的影响因素是多方面且是不稳定 的, 因此,文献中实验结果还有待考证。(4) 软件质量软件测试最终目的是提高软件的质量。在研究文献中, 通过对历史软件版本的静态分析 和动态分析, 预测下一版本软件的改变趋势,使得测试人员对软件有更好的了解和测试, 以 此提高软件的质量。(5) 蜕变测试蜕变测试是利用一些成功的测试用例来产生后续测试用例的一种技术。在研究文献中, 主要是利用机器学习技术去除冗余或相似的蜕变规则以产生有效的蜕变测试用例,达到找到 软件缺陷的目的。同时,Nakajima等在测试机器学习程序和软件方面基于蜕变测试为后面的 研究者提供了一些思路。2、 文献中的核心技术机器学习的一般流程是数据收集、数据特征提取和选择

      6、、不平衡数据的处理、模型选择 与训练、模型预测与评估。在软件测试的过程中,会产生过程数据, 同时, 软件本身所具有 的属性及软件运行过程中会产生大量的数据,因此, 可以利用机器学习技术对这些数据进行 处理。通过对上述文献的细致分析和研究,可以发现利用机器学习技术对软件测试过程的贡献 和进一步研究的可能性。2.1、实验数据集的选择文献研究发现数据来源分为两类, 分别是开源数据集和未开源数据集。部分文献的实验 数据来自多个数据集。开源数据集是可以免费获取到的, 同时, 在开源数据集上的实验是可 重复性的,使得文献中的结果更具有可信度。未开源数据集主要是来自于商业项目的数据或 作者提供的数据集, 在此类数据集上的实验不可重复, 实验结果可信度不高。图2开源数据 集柱状图是对开源数据集的分类及每个分类的简要说明。图 2 开源数据集柱状图 Fig.2 His to gram of open source dat ase ts(1) NASANASA数据集是由美国国家航空航天局测量程序所提供的,并且是公开的。在研究文献中, 相对于开源数据集, 占比10% 。(2) PROMISEPROMISE数据

      7、集是免费且公开的,可以从PROMISE仓库中获得。在研究文献中,相对于 开源数据集,占比大约13% (PROMISE仓库:。(3) 常用软件源码常用的软件源码数据集可从代码仓库Github或常用软件的官网上获得,这些常用的软 件包括A-pache, Eclipse, ANT, JEdit等。但是,需要获得这些常用软件源码的测量数据 集时,需要有更高的权限。在研究文献中, 相对于开源数据集, 占比大约23%。(4) Android 软件Android软件数据集可从代码仓库Github和Android开源项目(获得。部分Android 项目是比较常用且迭代版本较多的软件,如:Email, SMS, Mozilla。在研究文献中,相对于 开源数据集, 占比大约10%。(5) Window 软件使用Window软件数据集的有2篇文献,且数据集都是用于恶意软件研究的文献,占比 大约3%。(6) 其他在研究文献中, 其他类数据集使用较多。这些数据集都来自免费且公开的数据源,如:检测僵尸网络的数据集来自http:部分检测恶意软件的数据集来自Defects4J Dataset, 部分检测恶意程序的数据

      8、集来自KDDCup99。在研究文献中,相对于开源数据集,占比为40%。综上所述,研究文献中大多数的实验数据集是开源的, 因此,在实验中应选择开源且被 实验频率较多的数据集进行研究和实验,以避免偶然性误差,确保实验的可重复性。2.2、特征提取与选择方法特征提取与选择是机器学习流程中的重要阶段, 有效的特征提取和选择技术能提高机器 学习模型的预测精度。特征提取和选择技术一般分为两大类, 一类是特征降维或特征提取, 即组合不同的属性得到新的属性, 改变原始特征数据集的特征空间;一类是特征选择, 即从 原始特征数据集中选择出子集,没有更改原始特征数据集的特征空间。其中特征选择又分为 三大类:一类是Filter方法,即对每一维特征赋予权重,然后再依据权重排序,取Top K维 特征;一类是Wrapper方法,即将特征子集的选择看作是一个优化问题;一类是Eembedded方 法, 即在模型确定的情况下学习出对提高模型准确性最好的属性。表1详细列出了80篇文献中采取的特征提取和特征选择技术统计。其中, 在所研究的 文献中没有使用Eembedded方法,部分文献中使用了多种特征提取和特征选择技术。表 1

      9、 特征提取和特征选择技术统计 Table 1 Technical statistics of feature extraction and feature selection由表1可知, 在研究文献中, 在特征降维和特征选择的方法中, 使用较多的是特征选择 方法,特征选择中使用较多的方法是信息增益(IG)和基于相关性特征选择(CFS)。2.3、类别不平衡处理方法类别不平衡的处理方法大致可分为三类, 一类是过采样, 即增加类别较少的样本;一类 是欠采样, 即减少类别较多的样本;一类是再缩放, 即为不同类别赋予不同权重的方式。部 分文献采用过采样方式处理类别不平衡问题,过采样中最常用的工具是SMOTE;有的文献采 用欠采样方式处理类别不平衡问题;没有文献采用再缩放方式。除此之外, 有的文献在利用 数据集进行训练时, 选择的是类别相对平衡的数据集。其余研究文献未进行类别不平衡处理 或文献中未提及是否进行类别不平衡处理。2.4、机器学习算法机器学习算法可分为监督学习、半监督学习和无监督学习, 不同的场景需要使用不同类 别的方法。表2详细列出了机器学习算法以及所研究文献在软件测试领域中所用到的机器学 习算法的对比信息。其中, 百分比1表示涉及到此算法的文献数/涉及到机器学习算法每个 分类中总数, 百分比2表示涉及到此算法的文献数/所有机器学习算法分类的总数。表 2 机器学习算法详纟田信息 Table 2 Algo rithm det ails for machine learning由表2可知, 从机器学习算法分类上看,在统计分类中使用较多的算法是逻辑回归 (LR) 和朴素贝叶斯 (NB) ;在神经网络中使用最多的是多层感知器 (MLP) ;在基于支持向量的方 法中使用最多的是支持向量机(SVM);在决策树的方法中使用最多的是C4.5;在集成学习中 使用最多的是随机森林(RF);在混杂学习中使用最多的是K近邻(KNN)。从整体上看,在 研究文献中, 使用最多的机器学习算法是基于支持向量算法中支持向量机 (SVM) ,

      《软件测试中机器学习的运用探讨》由会员cl****1分享,可在线阅读,更多相关《软件测试中机器学习的运用探讨》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.