@inproceedings{66d0f4e7d21b4f12826d209e3c963993,
title = "Assertion guided symbolic execution of multithreaded programs",
abstract = "Symbolic execution is a powerful technique for systematic testing of sequential and multithreaded programs. However, its application is limited by the high cost of covering all feasible intra-thread paths and inter-thread interleavings. We propose a new assertion guided pruning framework that identifies executions guaranteed not to lead to an error and removes them during symbolic execution. By summarizing the reasons why previously explored executions cannot reach an error and using the information to prune redundant executions in the future, we can soundly reduce the search space. We also use static concurrent program slicing and heuristic minimization of symbolic constraints to further reduce the computational overhead. We have implemented our method in the Cloud9 symbolic execution tool and evaluated it on a large set of multithreaded C/C++ programs. Our experiments show that the new method can reduce the overall computational cost significantly.",
keywords = "Concurrency, Partial order reduction, Symbolic execution, Test generation, Weakest precondition",
author = "Shengjian Guo and Markus Kusano and Chao Wang and Zijiang Yang and Aarti Gupta",
note = "Publisher Copyright: {\textcopyright} 2015 ACM.; 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 ; Conference date: 30-08-2015 Through 04-09-2015",
year = "2015",
month = aug,
day = "30",
doi = "10.1145/2786805.2786841",
language = "English (US)",
series = "2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 - Proceedings",
publisher = "Association for Computing Machinery, Inc",
pages = "854--865",
booktitle = "2015 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering, ESEC/FSE 2015 - Proceedings",
}