范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

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

  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) 测试用例优化
  回归测试在整个软件测试过程中占有较大的比重, 软件开发的各个阶段都会进行多次回归测试。在回归测试过程中, 测试用例优化是用来解决如何在巨大的测试用例库中选择较少的测试用例以达到较大的代码覆盖率和功能覆盖率的问题。在研究文献中, 不同的研究者对测试用例优化问题进行了研究, 以整个测试用例库作为特征集, 通过对用例自然语言处理、执行用例后的代码覆盖率、变异得分等对测试用例库进行降维, 去除冗余的测试用例, 再将得到的数据进行模型构建、训练和评估。
  (2) 自动化测试
  自动化测试在软件测试过程中有极其重要的作用, 自动化测试能减少测试人员的工作量, 提高测试效率。Rosenfeld等利用机器学习基于预定义的activity类别对activity进行分类后, 根据不同的分类进行自动化测试, 以提高自动化测试的缺陷检测率。
  (3) 对测试质量评价
  评价软件或项目测试质量的好坏对提高测试效率和质量有重要作用。Zhou等通过对软件或项目涉及相关人员、测试流程、软件或项目属性等特征进行模型选择、构建和评估, 以此来评估软件或项目的测试质量。一个软件或项目的测试质量的影响因素是多方面且是不稳定的, 因此, 文献中实验结果还有待考证。
  (4) 软件质量
  软件测试最终目的是提高软件的质量。在研究文献中, 通过对历史软件版本的静态分析和动态分析, 预测下一版本软件的改变趋势, 使得测试人员对软件有更好的了解和测试, 以此提高软件的质量。
  (5) 蜕变测试
  蜕变测试是利用一些成功的测试用例来产生后续测试用例的一种技术。在研究文献中, 主要是利用机器学习技术去除冗余或相似的蜕变规则以产生有效的蜕变测试用例, 达到找到软件缺陷的目的。同时, Nakajima等在测试机器学习程序和软件方面基于蜕变测试为后面的研究者提供了一些思路。
  2、 文献中的核心技术
  机器学习的一般流程是数据收集、数据特征提取和选择、不平衡数据的处理、模型选择与训练、模型预测与评估。在软件测试的过程中, 会产生过程数据, 同时, 软件本身所具有的属性及软件运行过程中会产生大量的数据, 因此, 可以利用机器学习技术对这些数据进行处理。
  通过对上述文献的细致分析和研究, 可以发现利用机器学习技术对软件测试过程的贡献和进一步研究的可能性。
  2.1、 实验数据集的选择
  文献研究发现数据来源分为两类, 分别是开源数据集和未开源数据集。部分文献的实验数据来自多个数据集。开源数据集是可以免费获取到的, 同时, 在开源数据集上的实验是可重复性的, 使得文献中的结果更具有可信度。未开源数据集主要是来自于商业项目的数据或作者提供的数据集, 在此类数据集上的实验不可重复, 实验结果可信度不高。图2开源数据集柱状图是对开源数据集的分类及每个分类的简要说明。
  图2 开源数据集柱状图Fig.2 Histogram of open source datasets
  (1) NASA
  NASA数据集是由美国国家航空航天局测量程序所提供的, 并且是公开的。在研究文献中, 相对于开源数据集, 占比10%。
  (2) PROMISE
  PROMISE数据集是免费且公开的, 可以从PROMISE仓库中获得。在研究文献中, 相对于开源数据集, 占比大约13% (PROMISE仓库:https://code.google.com/p/promisedata/) 。
  (3) 常用软件源码
  常用的软件源码数据集可从代码仓库Github或常用软件的官网上获得, 这些常用的软件包括A-pache, Eclipse, ANT, JEdit等。但是, 需要获得这些常用软件源码的测量数据集时, 需要有更高的权限。在研究文献中, 相对于开源数据集, 占比大约23%。
  (4) Android软件
  Android软件数据集可从代码仓库Github和Android开源项目 (https://source.android.com/index.html) 获得。部分Android项目是比较常用且迭代版本较多的软件, 如:Email, SMS, Mozilla。在研究文献中, 相对于开源数据集, 占比大约10%。
  (5) Window软件
  使用Window软件数据集的有2篇文献, 且数据集都是用于恶意软件研究的文献, 占比大约3%。
  (6) 其他
  在研究文献中, 其他类数据集使用较多。这些数据集都来自免费且公开的数据源, 如:
  检测僵尸网络的数据集来自http:www.uvic.ca/engineering/ece/isot/datasets/index.p, 部分检测恶意软件的数据集来自Defects4J Dataset, 部分检测恶意程序的数据集来自KDDCup99。在研究文献中, 相对于开源数据集, 占比为40%。
  综上所述, 研究文献中大多数的实验数据集是开源的, 因此, 在实验中应选择开源且被实验频率较多的数据集进行研究和实验, 以避免偶然性误差, 确保实验的可重复性。
  2.2、 特征提取与选择方法
  特征提取与选择是机器学习流程中的重要阶段, 有效的特征提取和选择技术能提高机器学习模型的预测精度。特征提取和选择技术一般分为两大类, 一类是特征降维或特征提取, 即组合不同的属性得到新的属性, 改变原始特征数据集的特征空间;一类是特征选择, 即从原始特征数据集中选择出子集, 没有更改原始特征数据集的特征空间。其中特征选择又分为三大类:一类是Filter方法, 即对每一维特征赋予权重, 然后再依据权重排序, 取Top K维特征;一类是Wrapper方法, 即将特征子集的选择看作是一个优化问题;一类是Eembedded方法, 即在模型确定的情况下学习出对提高模型准确性最好的属性。
  表1详细列出了80篇文献中采取的特征提取和特征选择技术统计。其中, 在所研究的文献中没有使用Eembedded方法, 部分文献中使用了多种特征提取和特征选择技术。
  表1 特征提取和特征选择技术统计Table 1 Technical statistics of feature extraction and feature selection
  由表1可知, 在研究文献中, 在特征降维和特征选择的方法中, 使用较多的是特征选择方法, 特征选择中使用较多的方法是信息增益 (IG) 和基于相关性特征选择 (CFS) 。
  2.3、 类别不平衡处理方法
  类别不平衡的处理方法大致可分为三类, 一类是过采样, 即增加类别较少的样本;一类是欠采样, 即减少类别较多的样本;一类是再缩放, 即为不同类别赋予不同权重的方式。部分文献采用过采样方式处理类别不平衡问题, 过采样中最常用的工具是SMOTE;有的文献采用欠采样方式处理类别不平衡问题;没有文献采用再缩放方式。除此之外, 有的文献在利用数据集进行训练时, 选择的是类别相对平衡的数据集。其余研究文献未进行类别不平衡处理或文献中未提及是否进行类别不平衡处理。
  2.4、 机器学习算法
  机器学习算法可分为监督学习、半监督学习和无监督学习, 不同的场景需要使用不同类别的方法。表2详细列出了机器学习算法以及所研究文献在软件测试领域中所用到的机器学习算法的对比信息。其中, 百分比1表示涉及到此算法的文献数/涉及到机器学习算法每个分类中总数, 百分比2表示涉及到此算法的文献数/所有机器学习算法分类的总数。
  表2 机器学习算法详细信息Table 2 Algorithm details for machine learning
  由表2可知, 从机器学习算法分类上看, 在统计分类中使用较多的算法是逻辑回归 (LR) 和朴素贝叶斯 (NB) ;在神经网络中使用最多的是多层感知器 (MLP) ;在基于支持向量的方法中使用最多的是支持向量机 (SVM) ;在决策树的方法中使用最多的是C4.5;在集成学习中使用最多的是随机森林 (RF) ;在混杂学习中使用最多的是K近邻 (KNN) 。从整体上看, 在研究文献中, 使用最多的机器学习算法是基于支持向量算法中支持向量机 (SVM) , 随后是集成学习中的随机森林算法 (RF) , 神经网络中的多层感知器 (MLP) 与随机森林 (RF) 使用的百分比差别不大。支持向量机 (SVM) 、逻辑回归 (LR) 、C4.5, 朴素贝叶斯 (NB) 和随机森林 (RF) 在数据样本较少时也能具有较好的泛化能力, 但是当数据样本过大时, 训练时长会明显增大。其中朴素贝叶斯 (NB) 可以较为容易地处理多分类问题;随机森林 (RF) 可应用在大部分分类器上, 无需参数调整, 但是对离群点较为敏感。神经网络算法虽然能较好拟合数据, 但是易造成过学习、欠学习或局部收敛问题。
  2.5、 评估准则
  评估准则是用来评估机器学习算法的预测精度和泛化能力。预测精度是指利用机器学习算法对某一数据集预测结果的正确率或错误率, 泛化能力是用来表征学习系统对新数据的适用性, 提高泛化能力是机器学习的目标。表3详细描述了软件测试领域中对所用到机器学习技术的性能评估准则。
  表3 性能评估准则使用总结Table 3 Summary of performance evaluation criteria
  由表3可知, 在研究文献中, 在评估机器学习算法的预测精度方面使用较多的是Accuracy, Precision, Recall;在评估机器学习算法的泛化能力方面使用较多的是F-measure及AUC。部分文献对机器学习算法的训练和预测所耗费的时间进行了评估, 以证明利用机器学习算法在解决软件测试问题方面的可行性。
  3、 总结
  由于作者搜索的侧重点不同, 因此可能有少数利用机器学习技术在软件测试领域的相关文献被遗漏, 但是, 从本文对机器学习技术在软件测试领域的应用总结来看, 本文仍可反映机器学习技术在软件测试领域的应用趋势情况。
  本文总结了近几年研究者利用机器学习在软件测试领域的研究和应用进展, 同时, 对基于机器学习在软件测试领域的研究进行了分类。根据本文对80余篇文献的总结与概述, 目前机器学习技术在软件测试领域的研究热点主要是关于软件安全可靠性的研究和关于软件缺陷的研究, 其中在关于软件缺陷的研究中, 又以软件缺陷预测为主。通过对机器学习在软件测试领域的主要技术的分析和讨论, 发现在特征提取、选择技术和机器学习算法等方面仍存在问题, 因此, 在未来的工作中, 应着重关注如何优化特征提取、选择技术和机器学习算法以提高预测的精度。
  参考文献:
  [1] BISIO F, GASTALDO P, MEDA C, et al. Machine LearningBased System for Detecting Unseen Malicious Soft ware[M]. Applications in Electronics Pervading Industry, Environment and Society. Springer International Publishing, 2016:9-15.
  [2] JAISWAL A, MALHOTRA R. Software reliability prediction using machine learning techniques[J]. International Journal of System Assurance EngineeringManagement, 2017, 1 (3) :1-15.
  [3] KUMAR N, BANERJEE S. Measuring Software Sundarkumar G G, Ravi V, Nwogu I, et al. Malware detection via API calls, topic models and machine learning[J].2015:1212-1217.
  [4] ESMALIFALAK M, LIU L, NGUYEN N, et al. Detecting stealthy false data injection using machine learning in smart grid[J]. IEEE Systems Journal, 2014, (99) :1-9.
  [5] GAO S, THAMILARASU G. Machine-Learning Classifiers for Security in Connected Medical Devices[C]//International Conference on Computer Communication and Networks. 2017:1-5.
  [6] BAN T, TAKAHASHI T, GUO S, et al. Integration of Multi-modal Features for Android Malware Detection Using Linear SVM[C]//Information Security. IEEE, 2016:141-146.
  [7] XU Z, RAY S, SUBRAMANYAN P, et al. Malware detection using machine learning based analysis of virtual memory access patterns[C]//Design, AutomationTest in Europe ConferenceExhibition. IEEE, 2017:169-174.
  [8] SHALAGINOV A, FRANKE K. Automated intelligent multinomial classification of malware species using dynamic behavioural analysis[C]//Privacy, Security and Trust. IEEE, 2017:70-77.
  [9] KHAN M S, SIDDIQUI S, MCLEOD R D, et al. Fractal based adaptive boosting algorithm for cognitive detection of computer malware[C]//IEEE, International Conference on Cognitive InformaticsCognitive Computing.IEEE, 2017:50-59.
  [10] LI J, HE P, ZHU J, et al. Software Defect Prediction via Convolutional Neural Network[C]//IEEE International Conference on Software Quality, Reliability and Security.IEEE, 2017:318-328.
  [11] ALVES H, FONSECA B, ANTUNES N. Experimenting Machine Learning Techniques to Predict Vulnerabilities[C]//Dependable Computing. IEEE, 2016:151-156.
  [12] QIN F, ZHENG Z, BAI C, et al. Cross-Project Aging Related Bug Prediction[C]//IEEE International Conference on Software Quality, Reliability and Security.IEEE, 2015:43-48.
  [13] NISA I U, AHSAN S N. Fault prediction model for software using soft computing techniques[C]//International Conference on Open Source SystemsTechnologies.IEEE, 2016:78-83.
  [14] LI Z, LI M, LIU Y, et al. Identify Coincidental Correct Test Cases Based on Fuzzy Classification[C]//International Conference on Software Analysis, Testing and Evolution. IEEE, 2016:72-77.
  [15] JONSSON L, BROMAN D, MAGNUSSON M, et al. Automatic Localization of Bugs to Faulty Components in Large Scale Software Systems Using Bayesian Classification[C]//IEEE International Conference on Software Quality, Reliability and Security. IEEE, 2016:423-430.
  [16] LE T D B, LO D, LI M. Constrained feature selection for localizing faults[C]//IEEE International Conference on Software Maintenance and Evolution. IEEE, 2015:501-505.
  [17] PANDEY N, SANYAL D K, HUDAIT A, et al. Automated classification of software issue reports using machine learning techniques:an empirical study[J]. Innovations in SystemsSoftware Engineering, 2017 (3) :1-19.
  [18] MENDES T, VALENTE M T, HORA A C, et al. Identifying utility functions using random forests[EB/OL]. https://www.narcis.nl/publicetion/Record ID/oai:prue. tue.nl:publications, 2016.
  [19] MENG Q, ZHANG B, FENG C, et al. Detecting Buffer Boundary Violations Based on SVM[C]//International Conference on Information Science and Control Engineering. IEEE, 2016:313-316.

财政票据电子化管理改革探讨摘要本文分析了财政票据电子化改革的现状,以此为着力点,分析新时代下财政票据电子化管理的策略,具有很大的理论价值。关键词财政票据电子化管理财政票据是指由财政部门监(印)制发放管理,国如何构建财政管理内部体系摘要财政监督是当前财政机关进行国有资产及资金监督和管理最有效的方式之一,在社会经济进一步发展与各企事业单位各种经济活动不断增加的情况下,使得财政管理的主要工作内容变成了经济风险的控事业单位财政财务管理模式优化摘要财政改革是推动我国社会发展进步的有效举措,同时也是创新行政事业单位管理模式的重要渠道。在新时期社会主义建设当中,行政事业单位面临的挑战也逐渐增多,加强财政财务管理模式的优化,能中职财政与税务基础教学思考摘要在中职教育改革的背景下,中职教师在教学中不仅应当注重学生理论基础知识的掌握和理解,而且应当从学生未来发展的角度出发,真正打造高素质高水平的专业技能型综合人才。中职教育培养人才的财政学课程微课设计摘要财政学课程是经济类院校普遍开设的一门专业课程,由于受到课程性质特点信息化快速发展以及教学改革等因素的影响,该门课程的教学在传统教学模式下遭遇瓶颈。受到微课在我国基础教育的普遍应财政支农资金绩效管理摘要如何将财政支农资金使用好,如何提高支农资金的使用效益,是当前财政支农资金管理面临的重要问题。为加强财政支出管理,强化支出责任,必须建立科学合理的财政支出绩效管理。本文从绩效管理现阶段税源监控的主要对策论文摘要品学网论文网为大家整理了现阶段税源监控的主要对策,希望大家认真阅读,相信对大家能有帮助!税源监控是一个复杂的系统工程,既涉及到税务机构和人员的设置和配备,又应体现税制结构和税种财税法规论文浅议黑龙江省发展乳品业的财税政策摘要品学网论文网为您整理了财税法规论文浅议黑龙江省发展乳品业的财税政策,希望帮助您提供很多想法。从2008年9月份全国奶粉及液态奶的调查中可以发现,被检测的87家(资料来源国家质检探究新会计准则对企业税收的影响及税收的筹划摘要品学网论文网为您编辑了税收研讨论文mdash探究新会计准则对企业税收的影响及税收的筹划,敬请关注!!一引言基于我国经济建设进程的不断推进,良好的经济体制是保障其稳定发展的关键所论公司社会责任的税法补缺范文摘要品学网论文网带来了论公司社会责任的税法补缺,供您参考阅读,希望对您设计论文有所帮助!一公司社会责任的内涵然而,理论界对这些内涵形成的共识并不代表着在实践中公司就会主动履行这些社税务研讨论文论所得税的国际竞争摘要为了帮助大家设计撰写论文,品学网论文网为大家分享了税务研讨论文,希望对您有所帮助,供您参考!国际税收竞争是指有关国家为了使本国的税收制度与他国保持一致,而单方面采取的一种税收制
财务管理信息化与内部控制浅析论文摘要当今,财务管理在企业中起到了十分重要的作用,财务管理信息化的运用成为了企业运作的工具与纽带。财务管理是企业的重要组成部分,是企业的重要内容。企业的内部控制也是相当重要的。运用好职业素养培养下中职语文教学论文1。中职语文教学培养学生职业素养的方法1。1转变教学观念在中职语文教学过程中,要对服务意识进行确立,重点强调语文课程中的服务功能。传统的教学观念在中职语文教学过程中要进行转变,必须全称量词与存在量词教学论文摘要全称量词与存在量词是普通高中课程标准实验教科书数学选修教材中一对非常重要的概念,同时,这两个概念又是非常抽象且难以理解的,学生不容易接受,作为教师则应该全方位多角度教授学生。关广播电视与网络电视的融合发展论文摘要随着信息技术的快速发展,互联网已经彻底融入人们的生活。就网络电视而言从崛起到繁荣仅仅不到数十年,再加之新媒体的运营,为网络电视的发展又增添了一层助力。与此同时,广播电视受到了网微波传输数字化的广播电视的论文1广电微波传输网的数字化改造广电微波传输网的数字化改造由一期工程和二期工程组成。一期工程主要起示范作用,它涉及到4个微波站。1。1整体设计根据国际电信联盟电信委员会的建议,新PDH数字微波传输在广播电视的运用论文摘要随着我国经济的快速发展,科学技术的进步,数字化技术得到广泛应用同时,技术水平也有了长足的发展,各应用行业的工作效率得到了极大的提高。伴随着数字微波技术在广播电视行业的推广应用,新经济下农业科技推广论述论文众所周知,农业科技能促进农业经济快速增长,但是当下我国的农业生产和农业科技结合出现严重脱节,农业科技不能更好的应用到农业生产中,使得农业发展滞后,这严重影响了我国国民经济的发展。1农业科技传播发展的对策探索论文一政府部门应加强对农业科技传播的建设力度。(一)加大对农业科研的投入力度。政府相关部门应加大财政公共投入对于科研院所和高校的投入比重或者是数量,使公共研究部门的科研人员有足够的资金科技小论文变暖的地球向我们袭来前年我们国家从年初至今,经历了北方的雪灾,到南方的旱灾,再到西方的震灾,又到南北方的水灾和中东方的高温及甘肃舟曲等地的泥石流灾害等2010年对于我们中国来说真是一个多灾之年啊!为什水利水电工程系统风险评估方法研究论文摘要随着我国社会经济和科学技术不断发展,我国水利水电工程建设也取得很大的进步,很多建设的水利水电工程也投入到实际生产。在对水利水电工程施工完毕后,也就需要确保运行安全性,关注水利水体育文化艺术交流中茶理论的运用论文摘要当前我国体育文化艺术交流活动已经实现了创新与发展。但是与具体开展状况进行对比,不难看出,当前我国体育文化艺术交流活动在具体开展过程中,仍然存在一定问题和不足,因此,对其进行系统