A Domain Specific Language for Testing Concurrent Programs

We present Concurrit, a novel testing technique and domain-specific language (DSL) for unit and system testing of concurrent programs. Using Concurrit, a programmer can control and guide the thread schedule of the software-under-test (SUT) in both a formal and concise way to examine only the intended interleavings of threads. Our DSL provides constructs to express nondeterministic choice, with which one can specify a set of thread schedules to be systematically enumerated similarly to model checking. In contrast with the traditional notion of model checking, we find some uncontrolled nondeterminism natural and unavoidable in real software. In our approach, the programmer can write a Concurrit test that describes the controlled-nondeterminism for part of the thread schedule, leaving the rest of the schedule unspecified. We call the result tolerant model checking, where a search of thread schedules in the presence of uncontrolled nondeterminism can still be systematic and exhaustive with respect to the Concurrit test. We applied our testing technique in both unit and system testing of a collection of benchmarks including the Mozilla’s SpiderMonkey JavaScript engine, Memcached, the Apache HTTP server, and MySQL. We were able to use Concurrit to write concise tests to reproduce concurrency bugs in these benchmarks.

Speaker Bios

Koushik Sen is an associate professor in the Department of Electrical Engineering and Computer Sciences at the University of California, Berkeley. His research interest lies in Software Engineering, Programming Languages, and Formal methods. He is interested in developing software tools and methodologies that improve programmer productivity and software quality. He is best known for his work on directed automated random testing and concolic testing. He has received a NSF CAREER Award in 2008, a Haifa Verification Conference (HVC) Award in 2009, a IFIP TC2 Manfred Paul Award for Excellence in Software: Theory and Practice in 2010, and a Sloan Foundation Fellowship in 2011. He has won three ACM SIGSOFT Distinguished Paper Awards. He received the C.L. and Jane W-S. Liu Award in 2004, the C. W. Gear Outstanding Graduate Award in 2005, and the David J. Kuck Outstanding Ph.D. Thesis Award in 2007 from the UIUC Department of Computer Science. He holds a B.Tech from Indian Institute of Technology, Kanpur, and M.S. and Ph.D. in CS from University of Illinois at Urbana-Champaign.

Date:
Haut-parleurs:
Koushik Sen
Affiliation:
University of California, Berkeley