Skip to main content
QUICK REVIEW

[论文解读] An Empirical Study of Path Feasibility Queries

Asankhaya Sharma|arXiv (Cornell University)|Feb 20, 2013
Software Testing and Debugging Techniques参考文献 12被引用 3
一句话总结

本文评估了SMT求解器在符号执行中路径可行性查询上的性能表现,重点关注无量词位向量与数组公式(QF_ABV)。研究发现STP相比Z3性能高出一个数量级,基于此洞察,设计了一种新的基于LLVM的分析方法——变更值分析(Change Value Analysis),在SIR基准测试中将查询求解时间减少了48%。

ABSTRACT

In this paper we present a comparative study of path feasibility queries generated during path exploration based software engineering methods. Symbolic execution based methods are gaining importance in different aspects of software engineering e.g. proving properties about programs, test case generation, comparing different executions of programs. These methods use SMT solvers to check the satisfiability of path feasibility queries written as a formula in the supported theories. We study the performance of solving such path feasibility queries using SMT solvers for real world programs. Our path condition formulas are generated in a theory of quantifier free bit vectors with arrays (QF_ABV). We show that among the different SMT solvers, STP is better than Z3 by an order of magnitude for such kind of queries. As an application we design a new program analysis (Change Value Analysis) based on our study which exploits undefined behaviors in programs. We have implemented our analysis in LLVM and tested it with the benchmark of SIR programs. It reduces the time taken for solving path feasibility queries by 48%. The study can serve as guidance to practitioners using path feasibility queries to create scalable software engineering methods based on symbolic execution.

研究动机与目标

  • 评估SMT求解器在真实程序符号执行过程中提取的路径可行性查询上的性能表现。
  • 识别在无量词位向量与数组理论(QF_ABV)查询中表现最高效的SMT求解器,该理论在符号执行中广泛使用。
  • 设计一种新的程序分析方法——变更值分析(Change Value Analysis),利用求解器性能洞察,提升软件工程任务中的可扩展性。
  • 为基于符号执行工具的实践者提供实证指导,以构建可扩展的软件工程工具。

提出的方法

  • 使用符号执行从真实程序中生成路径条件公式,公式表达形式为QF_ABV逻辑。
  • 在这些公式上评估多个SMT求解器(特别是STP和Z3)的性能,以测量其在求解路径可行性查询时的表现。
  • 在LLVM编译器基础设施中设计并实现了一种新的程序分析方法——变更值分析(Change Value Analysis),用于检测未定义行为。
  • 利用实证求解器性能数据指导分析中的优化选择,重点减少SMT求解所花费的时间。
  • 在SIR基准测试套件上执行该分析,以测量端到端的性能改进。
  • 通过对比新分析与基线方法,测量路径可行性查询求解时间的减少量。

实验结果

研究问题

  • RQ1在真实程序中,哪种SMT求解器在QF_ABV逻辑表达的路径可行性查询上表现最佳?
  • RQ2STP在求解源自真实软件的QF_ABV路径条件时,与Z3相比表现如何?
  • RQ3能否利用SMT求解器基准测试的洞察,设计出更高效的符号执行程序分析?
  • RQ4基于求解器特性优化分析流水线,能在多大程度上提升路径可行性求解的性能?

主要发现

  • 在QF_ABV逻辑表达的路径可行性查询求解中,STP相比Z3性能高出一个数量级。
  • 所提出的基于LLVM实现的变更值分析(Change Value Analysis)在SIR基准测试套件上,将路径可行性查询求解时间减少了48%。
  • STP与Z3之间的实证性能差距在多种真实程序中保持一致且显著。
  • 本研究证明,求解器选择对符号执行分析的可扩展性具有重大影响。
  • 结果提供了强有力的实证证据,表明求解器选择是设计高效符号执行工具的关键因素。
  • 新分析实现的性能提升直接归因于STP的使用以及基于实证发现的查询生成优化。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。