Directed Incremental Symbolic Execution

被引:0
作者
Person, Suzette [1 ]
Yang, Guowei [1 ]
Rungta, Neha [1 ]
Khurshid, Sarfraz [1 ]
机构
[1] NASA, Langley Res Ctr, Washington, DC 20546 USA
来源
PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION | 2011年
关键词
Program Differencing; Symbolic Execution; Software Evolution;
D O I
暂无
中图分类号
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 条
[21]   The Symbolic Execution Debugger (SED): a platform for interactive symbolic execution, debugging, verification and more [J].
Hentschel, Martin ;
Bubel, Richard ;
Haehnle, Reiner .
INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (05) :485-513
[22]   Specification Extraction by Symbolic Execution [J].
Pichler, Josef .
2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, :462-466
[23]   Symbolic Execution for Randomized Programs [J].
Susag, Zachary ;
Lahiri, Sumit ;
Hsu, Justin ;
Roy, Subhajit .
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA)
[24]   SymJEx: Symbolic Execution on the GraalVM [J].
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
[25]   Dependence Guided Symbolic Execution [J].
Wang, Haijun ;
Liu, Ting ;
Guan, Xiaohong ;
Shen, Chao ;
Zheng, Qinghua ;
Yang, Zijiang .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2017, 43 (03) :252-271
[26]   Symbolic Execution of Virtual Devices [J].
Cong, Kai ;
Xie, Fei ;
Lei, Li .
2013 13TH INTERNATIONAL CONFERENCE ON QUALITY SOFTWARE (QSIC), 2013, :1-10
[27]   Denotational Semantics for Symbolic Execution [J].
Voogd, Erik ;
Klovstad, Asmund Aqissiaq Arild ;
Johnsen, Einar Broch .
THEORETICAL ASPECTS OF COMPUTING, ICTAC 2023, 2023, 14446 :370-387
[28]   Symbolic Execution Debugger (SED) [J].
Hentschel, Martin ;
Bubel, Richard ;
Haehnle, Reiner .
RUNTIME VERIFICATION, RV 2014, 2014, 8734 :255-262
[29]   Deconstructing Dynamic Symbolic Execution [J].
Ball, Thomas ;
Daniel, Jakub .
DEPENDABLE SOFTWARE SYSTEMS ENGINEERING, 2015, 40 :26-41
[30]   Running Symbolic Execution Forever [J].
Busse, Frank ;
Nowack, Martin ;
Cadar, Cristian .
PROCEEDINGS OF THE 29TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS, ISSTA 2020, 2020, :63-74