基于选择性符号执行的补丁验证

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:hziyin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
正确并高效地进行补丁验证对提高软件质量及程序员生产效率至关重要。使用静态分析的方法可以在程序不执行的情况下检测出程序中可能存在的部分错误;同时,动态符号执行可以自动生成高覆盖率的测试用例。然而由于这两种方法都受限于程序的规模,没有很好的扩展性。事实上,对于大型程序这两者并不适用,一般只能作为质量保证的辅助方法。工业界通常使用大量的测试用例来降低产品中代码出错的可能性。然而这样的验证的过程缓慢,并且往往是不完整的。程序演化过程中经常需要修复程序中的错误。一般而言,补丁相对于错误发生处是局部的、通常很小,并且很少涉及程序的核心语义的改变。本文基于这一观察,展示了一种结合静态分析手段和动态符号执行的新方法,具有较好的扩展性。其基本的思想是通过静态分析的方式大幅度削减不相关的路径和程序语句,由此将待验证的程序范围局部化,进而添加符号变量语义和符号执行的驱动程序,最终通过标准的动态符号执行引擎对之进行详尽的测试。本文在开源编译器框架LLVM、符号执行引擎KLEE及STP约束求解器的基础上实现了反映上述想法的工具原型SERAPH。从GNU Coreutils程序集合选取了数十个补丁程序对它进行评估,SERAPH成功地找出了所有不正确补丁;同时,和KLEE对完整的程序执行相比,检测程序中的错误的性能大大提高,速度上最高有1000倍的提升。
其他文献
数字化虚拟人体,是医学与信息技术、虚拟现实技术相结合的科技性研究课题。通过人体断面连续切片构建出数据集,将医学信息数字化,为医学教育和医学临床的应用提供了理想的工
无线传感器网络是集成了传感器、嵌入式计算、网络和无线通信四大技术形成的一种全新信息获取和处理技术,它是继Ad-hoc网络之后出现的一种新型无基础设施的无线网络,能够实时监
现有的基于流的数据中心网络负载均衡方法主要以满足流的带宽需求为目的,缺乏对流的带宽需求和链路容量之间的差值的考虑,可能导致多条链路上存在大量可用的带宽容量,但无法将它
网格是近年来兴起的一个研究热点,被称为是下一代的互联网。网格计算是基于网格的问题求解,当前的研究内容主要集中在底层支撑软件以及大规模的科学应用,出现了一些重要的研究成
本课题研究印刷体数学表达式中符号的识别。 近年来,数学公式图像自动识别与理解已成为文档图像处理(DIP)领域的一个热点问题。数学公式图像识别主要包括两大阶段:符号识别
语义Web是Web发展的延伸,致力于Web上信息的语义化,最终要实现信息在知识级上的共享和语义上的互操作性。本体是实现语义Web的关键要素,但随着本体数量爆炸式地增长,不可避免地大
当前,随着电信市场的逐步开放,市场竞争的加剧,服务与竞争已成为电信企业面临的两大主题。电信运营商要想在以客户为中心的现代市场环境及日益激烈的市场竞争中,处于有利地位,需要
工作流技术是进入90年代以后计算机应用领域的一个新的研究热点。对于工作流系统中的任务分配,如果应用合适的分配模型和算法,可以使得工作流系统选择最合适的参与者来执行任务
网格是一种新技术,是基于Internet之上的资源的全面共享。网格是一个集成的计算与资源环境,或者称作计算资源池。它能够充分吸纳各种计算机资源,并将它们转化成一种随处可得的、
软件需求分析是整个软件开发过程中极为重要的环节,它不仅仅是技术问题,也涉及了组织、管理、商务、社会等问题。在早期的需求分析过程中,描述建立了软件系统的动机、意向和原则