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 条
  • [31] Specification Extraction by Symbolic Execution
    Pichler, Josef
    2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, : 462 - 466
  • [32] SymJEx: Symbolic Execution on the GraalVM
    Kloibhofer, Sebastian
    Pointhuber, Thomas
    Heisinger, Maximilian
    Moessenboeck, Hanspeter
    Stadler, Lukas
    Leopoldseder, David
    MPLR '20: PROCEEDINGS OF THE 17TH INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES, 2020, : 63 - 72
  • [33] Symbolic Execution of Virtual Devices
    Cong, Kai
    Xie, Fei
    Lei, Li
    2013 13TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2013, : 1 - 10
  • [34] Dependence Guided Symbolic Execution
    Wang, Haijun
    Liu, Ting
    Guan, Xiaohong
    Shen, Chao
    Zheng, Qinghua
    Yang, Zijiang
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (03) : 252 - 271
  • [35] Symbolic Execution Debugger (SED)
    Hentschel, Martin
    Bubel, Richard
    Haehnle, Reiner
    RUNTIME VERIFICATION, RV 2014, 2014, 8734 : 255 - 262
  • [36] Denotational Semantics for Symbolic Execution
    Voogd, Erik
    Klovstad, Asmund Aqissiaq Arild
    Johnsen, Einar Broch
    THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023, 2023, 14446 : 370 - 387
  • [37] Deconstructing Dynamic Symbolic Execution
    Ball, Thomas
    Daniel, Jakub
    DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2015, 40 : 26 - 41
  • [38] Symbolic execution of programs with strings
    Redelinghuys, Gideon
    Visser, Willem
    Geldenhuys, Jaco
    PROCEEDINGS OF THE SOUTH AFRICAN INSTITUTE FOR COMPUTER SCIENTISTS AND INFORMATION TECHNOLOGISTS CONFERENCE, 2012, : 139 - 148
  • [39] Symbolic PathFinder: integrating symbolic execution with model checking for Java']Java bytecode analysis
    Pasareanu, Corina S.
    Visser, Willem
    Bushnell, David
    Geldenhuys, Jaco
    Mehlitz, Peter
    Rungta, Neha
    AUTOMATED SOFTWARE ENGINEERING, 2013, 20 (03) : 391 - 425
  • [40] Symbolic Execution of Obfuscated Code
    Yadegari, Babak
    Debray, Saumya
    CCS'15: PROCEEDINGS OF THE 22ND ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2015, : 732 - 744