Parallel symbolic execution for automated real-world software testing

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.

Published in:
Proceedings of the sixth conference on Computer systems - EuroSys '11, 183
Presented at:
6th ACM SIGOPS/EuroSys European Conference on Computer Systems (EuroSys), Salzburg, Austria, 10-13 04 2011
New York, New York, USA, ACM Press

 Record created 2011-05-24, last modified 2019-01-23

Download fulltext

Rate this document:

Rate this document:
(Not yet reviewed)