基于机器学习约束求解的复杂软件代码符号执行框架研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:shenloa
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
如何生成高质量的测试用例一直是软件测试领域的重要研究课题。不同于其他测试用例生成技术,基于符号执行的测试用例自动生成技术在程序执行的过程中使用符号化的变量代替具体值的变量,同时维护整个执行过程中的路径约束,当遇到分支语句的时候即调用底层的约束求解器求解该路径约束以生成触发该分支路径的测试用例。该技术经过多年发展已经被应用到了诸多测试工具,比如jCUTE,KLEE和SPF等。当前基于符号执行的测试用例生成技术在应用到真实程序时仍然面临着不少的挑战。其中一个最主要的挑战就是底层约束求解器无法对真实程序中的复杂路径约束提供有效支持。造成这个问题主要有两个方面的原因:一是真实程序中存在着大量复杂的数值计算,包括非线性数值计算,常见的数学函数的计算等,现有的约束求解器对这类约束很难提供有效支持;二是真实程序中存在着大量的函数调用,现有的约束求解器通常只提供纯数学表达式形式的约束支持,在函数具体实现细节无法得知的情况下,约束求解器很难对这类包含函数调用的路径约束进行求解。为了解决以上两个方面的问题,提高符号执行技术应用在真实程序的效率,本文的主要工作如下:·基于机器学习约束求解的符号执行框架。不同于传统的符号执行框架,本文提出了一种新的基于机器学习的符号执行框架——MLBSE。MLBSE与传统符号执行框架最显著的区别就是底层约束求解技术。针对复杂路径约束,MLBSE首先借助约束不满足程度将路径约束的满足性问题转化为优化问题,然后使用基于机器学习的优化算法RACOS对路径约束进行求解。借助于这种基于机器学习的约束求解方法的优势,MLBSE能够更好地支持包含大量复杂数值计算和函数调用的真实程序。·基于MLBSE的符号执行功能增强。在已有的基于机器学习约束求解的符号执行框架MLBSE的基础上,为了进一步增强MLBSE符号执行功能,本文做了包括黑盒执行模式,可解置信度报告和基于可解置信度报告的搜索策略三个方面的功能拓展。借助黑盒执行模式,MLBSE能更加高效地处理包含函数调用的真实程序。通过引入可解置信度报告,MLBSE能够在计算资源有限的情况下为用户提供额外参考,帮助用户判断是否需要投入更多计算资源在求解失败的路径约束上。除此以外,MLBSE还提供了一种基于可解置信度报告的搜索策略。基于该策略,MLBSE能自动为求解失败且可解置信度高的路径约束投入更多的计算资源,从而在不影响整体效率的前提下提高符号执行的效果。·实现和实验。在开源符号执行引擎SPF的基础上,本文完整地实现了基于机器学习约束求解的符号执行工具MLB。为了验证MLB在真实程序上执行的效果和效率,本文选择了 19个真实使用的程序作为测试程序,并同4个基于符号执行的测试用例自动生成工具做了严格的对比实验。实验表明,MLB在效率、稳定性和生成测试用例的质量上都有着更好的表现。除此之外,本文还针对MLB的三个拓展功能做了一系列的实验。实验表明,MLB提供的可解置信度报告是具有参考价值的,同时黑盒执行模式和基于可解置信度报告的搜索策略能进一步增强符号执行的功能。
其他文献
目前,Linux主机在异构型Intranet中的应用十分广泛,常与Windows主机并存。Linux主机在异构型Intranet中既可以作为各种服务器使用,如WWW服务器、FTP服务器、Samba服务器等,亦可作
BACnet是开放的楼宇设备自动控制网络数据通信协议。在智能建筑领域,BACnet以其开放、简单、实用及易于与其他网络集成的特点成为建筑自动控制网络的国际标准。BACnet的目标
在很多图像应用系统中,由于输入或采集的图像不能满足系统要求,往往需要对原始图像进行一系列的去噪声、去干扰、灰度校正、图像增强等图像预处理,所以图像预处理技术的研究一直
聚类算法是数据挖掘算法中的重要方法。聚类应用非常广泛,无论是在商务上,还是在市场分析、生物学、Web文档分类等领域中都得到了充分的应用。目前聚类算法的研究焦点主要集中
专家系统是一种在相关领域中解决问题的具有专家水平的智能程序系统,在专家系统概念的支持下,为了能够利用现有的成功经验,使建造专家系统快速、灵活和规范化,建造专家系统平
集成学习利用多个学习器来解决问题,可以有效提高学习系统的泛化能力。由于其具有优越的性能和广泛的适用性,近年来已成为国际机器学习界的一个研究热点。本文针对集成学习进行
XML作为一种可扩展的标记语言,现已成为数据描述和交换的标准,在开发标记语言、WEB和文档发布、电子商务、网络办公、数据集成等方面得到广泛应用,产生了大量的XML文档。对这些X
随着互联网技术的飞速发展,网络的结构变得越来越复杂,网络安全也变得日益重要和复杂。一个健全的网络信息系统安全方案应该包括安全效用检验、安全审计、安全防护技术、安全教
与软件开发的需求分析类似,信息安全产品或系统特别需要进行安全需求的定义。安全需求是进行安全产品的设计、开发和评估等过程的重要依据。通用评估标准CC中的保护轮廓就是为
结构化的对等计算技术是重要P2P网络技术之一,它采用DHT进行资源搜索与定位,具有查找可确定性、简单性和分布性等优点,但在考虑“网络资源局部自治性、异构多样性、资源不断