Directed Incremental Symbolic Execution

被引:41
|
作者
Person, Suzette [1 ]
Yang, Guowei [3 ]
Rungta, Neha [2 ]
Khurshid, Sarfraz [3 ]
机构
[1] NASA, Langley Res Ctr, Washington, DC 20546 USA
[2] NASA, Ames Res Ctr, Washington, DC 20546 USA
[3] Univ Texas Austin, Austin, TX 78712 USA
关键词
Verification; Algorithms; Program Differencing; Symbolic Execution; Software Evolution;
D O I
10.1145/1993316.1993558
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The last few years have seen a resurgence of interest in the use of symbolic execution - a program analysis technique developed more than three decades ago to analyze program execution paths. Scaling symbolic execution and other path-sensitive analysis techniques to large systems remains challenging despite recent algorithmic and technological advances. An alternative to solving the problem of scalability is to reduce the scope of the analysis. One approach that is widely studied in the context of regression analysis is to analyze the differences between two related program versions. While such an approach is intuitive in theory, finding efficient and precise ways to identify program differences, and characterize their effects on how the program executes has proved challenging in practice. In this paper, we present Directed Incremental Symbolic Execution (DiSE), a novel technique for detecting and characterizing the effects of program changes. The novelty of DiSE is to combine the efficiencies of static analysis techniques to compute program difference information with the precision of symbolic execution to explore program execution paths and generate path conditions affected by the differences. DiSE is a complementary technique to other reduction or bounding techniques developed to improve symbolic execution. Furthermore, DiSE does not require analysis results to be carried forward as the software evolves-only the source code for two related program versions is required. A case-study of our implementation of DiSE illustrates its effectiveness at detecting and characterizing the effects of program changes.
引用
收藏
页码:504 / 515
页数:12
相关论文
共 50 条
  • [1] Directed Incremental Symbolic Execution
    Yang, Guowei
    Person, Suzette
    Rungta, Neha
    Khurshid, Sarfraz
    ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 24 (01)
  • [2] Directed Incremental Symbolic Execution
    Person, Suzette
    Yang, Guowei
    Rungta, Neha
    Khurshid, Sarfraz
    PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 504 - 515
  • [3] Verifying Systems Rules Using Rule-Directed Symbolic Execution
    Cui, Heming
    Hu, Gang
    Wu, Jingyue
    Yang, Junfeng
    ACM SIGPLAN NOTICES, 2013, 48 (04) : 329 - 341
  • [4] Feedback-Driven Incremental Symbolic Execution
    Yi, Qiuping
    Yang, Guowei
    2022 IEEE 33RD INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE 2022), 2022, : 505 - 516
  • [5] Directed Symbolic Execution for Binary Vulnerability Mining
    Wu, Bo
    Li, Mengjun
    Zhang, Bin
    Zhang, Quan
    Tang, Chaojing
    2014 IEEE WORKSHOP ON ELECTRONICS, COMPUTER AND APPLICATIONS, 2014, : 614 - 617
  • [6] Conc-iSE: Incremental Symbolic Execution of Concurrent Software
    Guo, Shengjian
    Kusano, Markus
    Wang, Chao
    2016 31ST IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE), 2016, : 531 - 542
  • [7] Pinaka: Symbolic Execution Meets Incremental Solving (Competition Contribution)
    Chaudhary, Eti
    Joshi, Saurabh
    TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PT III, 2019, 11429 : 234 - 238
  • [8] SIFT: A Tool for Property Directed Symbolic Execution of Multithreaded Software
    Yavuz, Tuba
    2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022), 2022, : 433 - 443
  • [9] Binary-level Directed Symbolic Execution Through Pattern Learning
    Zhang, Zhijie
    Chen, Liwei
    Wei, Haolai
    Dong, Guochao
    Zhang, Yuantong
    Nie, Xiaofan
    Shi, Gang
    2022 IEEE INTL CONF ON PARALLEL & DISTRIBUTED PROCESSING WITH APPLICATIONS, BIG DATA & CLOUD COMPUTING, SUSTAINABLE COMPUTING & COMMUNICATIONS, SOCIAL COMPUTING & NETWORKING, ISPA/BDCLOUD/SOCIALCOM/SUSTAINCOM, 2022, : 50 - 57
  • [10] A Survey of Symbolic Execution Techniques
    Baldoni, Roberto
    Coppa, Emilio
    D'Elia, Daniele Cono
    Demetrescu, Camil
    Finocchi, Irene
    ACM COMPUTING SURVEYS, 2018, 51 (03) : 1 - 39