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 条
  • [41] Lazy Counterfactual Symbolic Execution
    Hallahan, William T.
    Xue, Anton
    Bland, Maxwell Troy
    Jhala, Ranjit
    Piskac, Ruzica
    PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 411 - 424
  • [42] Symbolic execution debugger (SED)
    Hentschel, Martin
    Bubel, Richard
    Hähnle, Reiner
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2014, 8734 : 255 - 262
  • [43] ARRAY REPRESENTATION IN SYMBOLIC EXECUTION
    COENPORISINI, A
    DEPAOLI, F
    COMPUTER LANGUAGES, 1993, 18 (03): : 197 - 216
  • [44] A Bounded Symbolic-Size Model for Symbolic Execution
    Trabish, David
    Itzhaky, Shachar
    Rinetzky, Noam
    PROCEEDINGS OF THE 29TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING (ESEC/FSE '21), 2021, : 1190 - 1201
  • [45] Symbolic Execution for Java']JavaScript
    Santos, Jose Fragoso
    Maksimovic, Petar
    Grohens, Theotime
    Dolby, Julian
    Gardner, Philippa
    PPDP'18: PROCEEDINGS OF THE 20TH INTERNATIONAL SYMPOSIUM ON PRINCIPLES AND PRACTICE OF DECLARATIVE PROGRAMMING, 2018,
  • [46] A Memory Model for Symbolic Execution
    Dai Ziying
    Mao Xiaoguang
    Ma Xiaodong
    Wang Rui
    2009 INTERNATIONAL FORUM ON COMPUTER SCIENCE-TECHNOLOGY AND APPLICATIONS, VOL 1, PROCEEDINGS, 2009, : 20 - 24
  • [47] Higher-Order Symbolic Execution via Contracts
    Tobin-Hochstadt, Sam
    Van Horn, David
    ACM SIGPLAN NOTICES, 2012, 47 (10) : 537 - 554
  • [48] Distributed CFG-based Symbolic Execution for Assembly Programs
    Adachi, Takumi
    Yamane, Satoshi
    Sakurai, Kohei
    2015 IEEE 4TH GLOBAL CONFERENCE ON CONSUMER ELECTRONICS (GCCE), 2015, : 76 - 80
  • [49] Symbolic Execution for Memory Consumption Analysis
    Chu, Duc-Hiep
    Jaffar, Joxan
    Maghareh, Rasool
    ACM SIGPLAN NOTICES, 2016, 51 (05) : 62 - 71
  • [50] Combining Symbolic Execution and Model Checking to Verify MPI Programs
    Yu, Hengbiao
    PROCEEDINGS 2018 IEEE/ACM 40TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING - COMPANION (ICSE-COMPANION, 2018, : 527 - 529