Skip to main content
QUICK REVIEW

[论文解读] An Exploratory Survey of Hybrid Testing Techniques Involving Symbolic Execution and Fuzzing

Saahil Ognawala, Ana Petrovska|arXiv (Cornell University)|Dec 19, 2017
Software Testing and Debugging Techniques参考文献 41被引用 4
一句话总结

本文系统性地综述了结合符号执行与模糊测试的混合测试技术,识别出尚未被充分利用的技术交叉点,这些交叉点可能有助于缓解路径爆炸和覆盖率低的问题。文章分析了77篇论文,揭示了关键的研究空白,并提出了新颖的混合策略,以提升软件测试中测试用例生成的效率和路径覆盖率。

ABSTRACT

Recent efforts in practical symbolic execution have successfully mitigated the path-explosion problem to some extent with search-based heuristics and compositional approaches. Similarly, due to an increase in the performance of cheap multi-core commodity computers, fuzzing as a viable method of random mutation-based testing has also seen promise. However, the possibility of combining symbolic execution and fuzzing, thereby providing an opportunity to mitigate drawbacks in each other, has not been sufficiently explored. Fuzzing could, for example, expedite path-exploration in symbolic execution, and symbolic execution could make seed input generation in fuzzing more efficient. There have only been, in our view, very few hybrid solution proposals with symbolic execution and fuzzing at their centre. By analyzing 77 relevant and systematically selected papers, we (1) present an overview of hybrid solution proposals of symbolic execution and fuzzing, (2) perform a gap analysis in research of hybrid techniques to improve both, plain symbolic execution and fuzzing, (3) propose new ideas for hybrid test-case generation techniques.

研究动机与目标

  • 分析结合符号执行与模糊测试的混合测试技术的当前状态,重点关注其技术设计与实现。
  • 识别符号执行与模糊测试之间尚未被充分探索的技术交叉点,这些交叉点可能提升路径覆盖率并减少约束求解瓶颈。
  • 通过集成解决方案,解决符号执行(路径爆炸、约束求解缓慢)和模糊测试(因盲目变异导致路径覆盖率低)的局限性。
  • 提出新的混合测试用例生成技术,充分利用彼此的优势——例如,使用符号执行生成种子输入,使用模糊测试进行路径探索。
  • 倡导在未来的混合工具开发中采用标准化的评估实践和交叉验证,以确保结果的普适性和可复现性。

提出的方法

  • 对77篇与混合符号执行和模糊测试技术相关的同行评审论文进行了系统性文献综述。
  • 根据技术特征(如路径搜索策略、输入变异机制、约束求解方式,以及静态分析或代码插桩的使用)对混合解决方案进行分类。
  • 映射并分析了各技术组件在所调查研究中的使用频率与深度,以识别使用不足的交叉点。
  • 通过组合未被探索或使用不足的组件,提出新的混合策略——例如,使用符号执行指导模糊测试的输入变异,或优化符号执行中的约束求解。
  • 建议引入专家指导、SMT查询阈值化以及组合式分析,以减少对约束求解器的依赖,提升可扩展性。
  • 倡导采用代码插桩和目标执行,将符号执行聚焦于未覆盖分支,并指导模糊测试的种子输入生成。

实验结果

研究问题

  • RQ1在混合符号执行与模糊测试领域,随时间推移的发表趋势如何?
  • RQ2有哪些新颖的混合解决方案被提出,能够以可验证的、非平凡的方式整合符号执行与模糊测试?
  • RQ3这些混合方案中具体使用了符号执行与模糊测试的哪些技术方面?关键的研究空白在哪里?
  • RQ4现有混合技术如何应对符号执行中的路径爆炸问题以及模糊测试中的低路径覆盖率问题?
  • RQ5符号执行与模糊测试之间哪些未被探索的交叉点可能催生更高效、可扩展的测试用例生成框架?

主要发现

  • 在所调研的77篇论文中,仅有极少数提出了真正意义上的混合解决方案,其对符号执行与模糊测试的整合远超基本组合。
  • 大多数混合方法未能充分挖掘输入变异、路径搜索或约束求解策略等技术组件的灵活性。
  • 约束求解仍是符号执行中的主要瓶颈,且很少有混合解决方案通过SMT查询阈值化或专家指导等优化技术加以缓解。
  • 模糊测试工具通常缺乏与符号执行的集成,无法生成多样化且高影响力的种子输入,从而限制了其路径覆盖率和效率。
  • 研究之间缺乏标准化的评估标准和交叉验证,大多数论文使用独特且互不重叠的基准和数据集。
  • 组合式符号执行与目标模糊测试的交叉点在大规模软件系统中实现可扩展的漏洞检测方面展现出巨大潜力,但在当前文献中仍属研究不足。

更好的研究,从现在开始

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

无需绑定信用卡

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