A survey of new trends in symbolic execution for software testing and analysis

被引:132
|
作者
Corina S. Păsăreanu
Willem Visser
机构
[1] Carnegie Mellon University,NASA Ames Research Center
[2] University of Stellenbosch,Department of Computer Science
关键词
Model Checker; Decision Procedure; Path Condition; Symbolic Execution; Symbolic State;
D O I
10.1007/s10009-009-0118-1
中图分类号
学科分类号
摘要
Symbolic execution is a well-known program analysis technique which represents program inputs with symbolic values instead of concrete, initialized, data and executes the program by manipulating program expressions involving the symbolic values. Symbolic execution has been proposed over three decades ago but recently it has found renewed interest in the research community, due in part to the progress in decision procedures, availability of powerful computers and new algorithmic developments. We provide here a survey of some of the new research trends in symbolic execution, with particular emphasis on applications to test generation and program analysis. We first describe an approach that handles complex programming constructs such as input recursive data structures, arrays, as well as multithreading. Furthermore, we describe recent hybrid techniques that combine concrete and symbolic execution to overcome some of the inherent limitations of symbolic execution, such as handling native code or availability of decision procedures for the application domain. We follow with a discussion of techniques that can be used to limit the (possibly infinite) number of symbolic configurations that need to be analyzed for the symbolic execution of looping programs. Finally, we give a short survey of interesting new applications, such as predictive testing, invariant inference, program repair, analysis of parallel numerical programs and differential symbolic execution.
引用
收藏
页码:339 / 353
页数:14
相关论文
共 50 条
  • [1] Efficient symbolic execution for software testing
    Kinder, Johannes
    [J]. 2014 FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD), 2014, : 5 - 5
  • [2] Shadow Symbolic Execution for Testing Software Patches
    Kuchta, Tomasz
    Palikareva, Hristina
    Cadar, Cristian
    [J]. ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2018, 27 (03)
  • [3] Distributed Symbolic Execution for Binary Software Testing
    Wu, Bo
    Li, Mengjun
    Zhang, Bin
    Zhang, Quan
    Tang, Chaojing
    [J]. 2014 IEEE WORKSHOP ON ELECTRONICS, COMPUTER AND APPLICATIONS, 2014, : 618 - 621
  • [4] Symbolic Execution for Software Testing: Three Decades Later
    Cadar, Cristian
    Sen, Koushik
    [J]. COMMUNICATIONS OF THE ACM, 2013, 56 (02) : 82 - 90
  • [5] Symbolic Execution for Software Testing in Practice - Preliminary Assessment
    Cadar, Cristian
    Godefroid, Patrice
    Khurshid, Sarfraz
    Pasareanu, Corina S.
    Sen, Koushik
    Tillmann, Nikolai
    Visser, Willem
    [J]. 2011 33RD INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE), 2011, : 1066 - 1071
  • [6] Mutation-inspired symbolic execution for software testing
    Valle-Gomez, Kevin J.
    Garcia-Dominguez, Antonio
    Delgado-Perez, Pedro
    Medina-Bulo, Inmaculada
    [J]. IET SOFTWARE, 2022, 16 (05) : 478 - 492
  • [7] Shadow Symbolic Execution for Better Testing of Evolving Software
    Cadar, Cristian
    Palikareva, Hristina
    [J]. 36TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE COMPANION 2014), 2014, : 432 - 435
  • [8] Symbolic Execution of Network Software Based on Unit Testing
    Zhou Lin
    Liu Fei
    Gan Shuitao
    Qin Xiaojun
    Han Wenbao
    [J]. 2014 9TH IEEE INTERNATIONAL CONFERENCE ON NETWORKING, ARCHITECTURE, AND STORAGE (NAS), 2014, : 128 - 132
  • [9] Testing Network Protocol Binary Software with Selective Symbolic Execution
    Wen, Shameng
    Feng, Chao
    Meng, Qingkun
    Zhang, Bin
    Wu, Ligeng
    Tang, Chaojing
    [J]. PROCEEDINGS OF 2016 12TH INTERNATIONAL CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND SECURITY (CIS), 2016, : 318 - 322
  • [10] SYMBOLIC EXECUTION AND TESTING
    COWARD, PD
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 1991, 33 (01) : 53 - 64