Title
Parallel symbolic execution for automated real-world software testing
Abstract
This paper introduces Cloud9, a platform for automated testing of real-world software. Our main contribution is the scalable parallelization of symbolic execution on clusters of commodity hardware, to help cope with path explosion. Cloud9 provides a systematic interface for writing "symbolic tests" that concisely specify entire families of inputs and behaviors to be tested, thus improving testing productivity. Cloud9 can handle not only single-threaded programs but also multi-threaded and distributed systems. It includes a new symbolic environment model that is the first to support all major aspects of the POSIX interface, such as processes, threads, synchronization, networking, IPC, and file I/O. We show that Cloud9 can automatically test real systems, like memcached, Apache httpd, lighttpd, the Python interpreter, rsync, and curl. We show how Cloud9 can use existing test suites to generate new test cases that capture untested corner cases (e.g., network stream fragmentation). Cloud9 can also diagnose incomplete bug fixes by analyzing the difference between buggy paths before and after a patch.
Year
DOI
Venue
2011
10.1145/1966445.1966463
EuroSys
Keywords
Field
DocType
testing productivity,parallel symbolic execution,symbolic test,systematic interface,automated testing,symbolic execution,existing test suite,posix interface,new test case,automated real-world software testing,python interpreter,new symbolic environment model,distributed system,reliability,software testing,debugging,verification
Programming language,Computer science,Real-time computing,Thread (computing),Software,Test case,Symbolic execution,POSIX,Operating system,Python (programming language),Scalability,Debugging
Conference
Citations 
PageRank 
References 
108
3.55
17
Authors
4
Search Limit
100108
Name
Order
Citations
PageRank
Stefan Bucur132712.38
Vlad Ureche21457.78
Cristian Zamfir364825.19
George Candea4169692.04