Demand-driven compositional symbolic execution

被引:0
|
作者
Anand, Saswat [1 ]
Godefroid, Patrice [2 ]
Tillmann, Nikolai [2 ]
机构
[1] Georgia Inst Technol, Atlanta, GA 30332 USA
[2] Microsoft Res, Redmond, WA USA
关键词
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
We discuss how to perform symbolic execution of large programs in a manner that is both compositional (hence more scalable) and demand-driven. Compositional symbolic execution means finding feasible interprocedural program paths by composing symbolic executions of feasible intraprocedural paths. By demand-driven, we mean that as few intraprocedural paths as possible are symbolically executed in order to form an interprocedural path leading to a specific target branch or statement of interest (like an assertion). A key originality of this work is that our demand-driven compositional interprocedural symbolic execution is performed entirely using first-order logic formulas solved with an off-the-shelf SMT (Satisfiability-Modulo-Theories) solver - no procedure in-lining or custom algorithm is required for the interprocedural part. This allows a uniform and elegant way of summarizing procedures at various levels of detail and of composing those using logic formulas. We have implemented a prototype of this novel symbolic execution technique as an extension of Pex, a general automatic testing framework for NET applications. Preliminary experimental results are encouraging. For instance, our prototype was able to generate tests triggering assertion violations in programs with large numbers of program paths that were beyond the scope of non-compositional test generation.
引用
收藏
页码:367 / +
页数:2
相关论文
共 50 条
  • [1] Higher-Order Demand-Driven Symbolic Evaluation
    Palmer, Zachary
    Park, Theodore
    Smith, Scott
    Weng, Shiwei
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (ICFP):
  • [2] Symbolic Heap Abstraction with Demand-Driven Axiomatization of Memory Invariants
    Dillig, Isil
    Dillig, Thomas
    Aiken, Alex
    [J]. ACM SIGPLAN NOTICES, 2010, 45 (10) : 397 - 410
  • [3] A general architecture for demand migration in a demand-driven execution engine in a heterogeneous and distributed environment
    Vassev, E
    Paquet, J
    [J]. Proceedings of the 3rd Annual Communication Networks and Services Research Conference, 2005, : 176 - 182
  • [4] A generic framework for migrating demands in the GIPSY' demand-driven execution engine
    Vassev, E
    Paquet, J
    [J]. PLC '05: Proceedings of the 2005 International Conference on Programming Languages and Compilers, 2005, : 29 - 35
  • [5] Demand-driven Execution of Static Directed Acyclic Graphs Using Task Parallelism
    Kambadur, Prabhanjan
    Gupta, Anshul
    Hoefler, Torsten
    Lumsdaine, Andrew
    [J]. 16TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING (HIPC), PROCEEDINGS, 2009, : 284 - 293
  • [6] Theoretical Aspects of Compositional Symbolic Execution
    Vanoverberghe, Dries
    Piessens, Frank
    [J]. FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, 2011, 6603 : 247 - 261
  • [7] Compositional Symbolic Execution with Memoized Replay
    Qiu, Rui
    Yang, Guowei
    Pasareanu, Corina S.
    Khurshid, Sarfraz
    [J]. 2015 IEEE/ACM 37TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, VOL 1, 2015, : 632 - 642
  • [8] Demand-driven register allocation
    Proebsting, TA
    Fischer, CN
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1996, 18 (06): : 683 - 710
  • [9] Demand-Driven Land Evaluation
    Bacic, I. L. Z.
    [J]. DIGITAL SOIL MAPPING WITH LIMITED DATA, 2008, : 151 - +
  • [10] Demand-driven approach for sustainability
    SaxenRosendahl, A
    [J]. SUSTAINABILITY OF WATER AND SANITATION SYSTEMS, 1996, : 32 - 34