首页> 外文会议>IEEE/ACM International Conference on Automated Software Engineering >Automatic testing of symbolic execution engines via program generation and differential testing
【24h】

Automatic testing of symbolic execution engines via program generation and differential testing

机译:通过程序生成和差异测试自动测试符号执行引擎

获取原文

摘要

Symbolic execution has attracted significant attention in recent years, with applications in software testing, security, networking and more. Symbolic execution tools, like CREST, KLEE, FuzzBALL, and Symbolic PathFinder, have enabled researchers and practitioners to experiment with new ideas, scale the technique to larger applications and apply it to new application domains. Therefore, the correctness of these tools is of critical importance. In this paper, we present our experience extending compiler testing techniques to find errors in both the concrete and symbolic execution components of symbolic execution engines. The approach used relies on a novel way to create program versions, in three different testing modes-concrete, single-path and multi-path-each exercising different features of symbolic execution engines. When combined with existing program generation techniques and appropriate oracles, this approach enables differential testing within a single symbolic execution engine. We have applied our approach to the KLEE, CREST and FuzzBALL symbolic execution engines, where it has discovered 20 different bugs exposing a variety of important errors having to do with the handling of structures, division, modulo, casting, vector instructions and more, as well as issues related to constraint solving, compiler optimisations and test input replay.
机译:近年来,符号执行在软件测试,安全性,网络等方面的应用引起了广泛的关注。诸如CREST,KLEE,FuzzBALL和Symbolic PathFinder之类的符号执行工具使研究人员和从业人员能够尝试新想法,将该技术扩展到更大的应用程序并将其应用于新的应用程序领域。因此,这些工具的正确性至关重要。在本文中,我们介绍了扩展编译器测试技术以发现符号执行引擎的具体和符号执行组件中的错误的经验。所使用的方法依靠一种新颖的方式来创建程序版本,该程序版本以三种不同的测试模式-具体,单路径和多路径-各自行使符号执行引擎的不同功能。当与现有程序生成技术和适当的Oracle结合使用时,该方法可以在单个符号执行引擎中进行差异测试。我们已将我们的方法应用于KLEE,CREST和FuzzBALL符号执行引擎,其中发现了20个不同的错误,这些错误暴露出与结构,除法,模,转换,向量指令等的处理有关的各种重要错误。以及与约束解决,编译器优化和测试输入重播有关的问题。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号