Conc-iSE: Incremental Symbolic Execution of Concurrent Software

被引:33
作者
Guo, Shengjian [1 ]
Kusano, Markus [1 ]
Wang, Chao [2 ]
机构
[1] Virginia Tech, Dept ECE, Blacksburg, VA 24061 USA
[2] Univ Southern Calif, Dept CS, Los Angeles, CA USA
来源
2016 31ST IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE) | 2016年
基金
美国国家科学基金会;
关键词
Symbolic execution; Concurrency; Partial order reduction; Weakest precondition; GRAPH;
D O I
10.1145/2970276.2970332
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software updates often introduce new bugs to existing code bases. Prior regression testing tools focus mainly on test case selection and prioritization whereas symbolic execution tools only handle code changes in sequential software. In this paper, we propose the first incremental symbolic execution method for concurrent software to generate new tests by exploring only the executions affected by code changes between two program versions. Specifically, we develop an inter-thread and inter-procedural change-impact analysis to check if a statement is affected by the changes and then leverage the information to choose executions that need to be re-explored. We also check if execution summaries computed in the previous program can be used to avoid redundant explorations in the new program. We have implemented our method in an incremental symbolic execution tool called Conc-iSE and evaluated it on a large set of multithreaded C programs. Our experiments show that the new method can significantly reduce the overall symbolic execution time when compared with state-of-the-art symbolic execution tools such as KLEE.
引用
收藏
页码:531 / 542
页数:12
相关论文
共 48 条
[31]  
Rungta N, 2012, 2012 28TH IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM), P109, DOI 10.1109/ICSM.2012.6405261
[32]  
Sen K., 2006, THESIS
[33]  
Sinha N, 2010, PROCEEDINGS OF THE ASME TURBO EXPO 2010, VOL 1, P47
[34]   On Interference Abstractions [J].
Sinha, Nishant ;
Wang, Chao .
POPL 11: PROCEEDINGS OF THE 38TH ANNUAL ACM SIGPLAN-SIGACT SYMPOSIUM ON PRINCIPLES OF PROGRAMMING LANGUAGES, 2011, :423-434
[35]  
Sumner W.N., 2012, RV, P161
[36]  
SV-COMP, 2015, 2015 SOFTW VER COMP
[37]  
Terragni V., 2015, INT C SOFTW ENG
[38]   Associating synchronization constraints with data in an object-oriented language [J].
Vaziri, M ;
Tip, F ;
Dolby, J .
ACM SIGPLAN NOTICES, 2006, 41 (01) :334-345
[39]  
Wang C, 2008, LECT NOTES COMPUT SC, V4963, P382, DOI 10.1007/978-3-540-78800-3_29
[40]   Symbolic Pruning of Concurrent Program Executions [J].
Wang, Chao ;
Chaudhuri, Swarat ;
Gupta, Aarti ;
Yang, Yu .
7TH JOINT MEETING OF THE EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND THE ACM SIGSOFT SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2009, :23-32