IMUnit: Improved Multithreaded Unit Testing

Staff - Faculty of Informatics

Start date: 27 June 2011

End date: 28 June 2011

The Faculty of Informatics is pleased to announce a seminar given by Darko Marinov

DATE: Monday, June 27th, 2011
PLACE: USI Università della Svizzera italiana, room SI-006, Black building (Via G. Buffi 13)
TIME: 15.30

Multithreaded code is getting increasingly important but remains extremely hard to develop and test.  Most recent research on testing multithreaded code focuses solely on finding bugs in one given version of code.  While there are many promising results, the tools are fairly slow because they explore a large number of thread schedules and do not exploit the fact that code evolves through several versions during development and maintenance.  Our overarching goal is to improve (regression) testing of multithreaded code.

This talk focuses on a novel approach to specifying and executing schedules for multithreaded tests.  Traditionally, developers enforce a particular schedule with time delays, e.g., using Thread.sleep in Java.  Unfortunately, this sleep-based approach can produce false positives or negatives, and can result in unnecessarily long testing time.  We introduce a new language that allows specifying schedules as constraints on the events during test execution.  We provide a tool that automatically controls the code to execute the specified schedule and a tool that helps developers to migrate their legacy, sleep-based tests into event-based tests in our language.  The latter tool uses new techniques for inferring events and schedules from the executions of sleep-based tests.  We describe our experience in migrating over

200 tests.  The inference techniques have high precision and recall, of over 75%, and our approach reduces testing time compared to sleep-based tests, on average 3.4x.

This is joint work with Milos Gligoric, Vilas Jagannath, Dongyun Jin, Qingzhou Luo, and Grigore Rosu

Darko Marinov is an Assistant Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign.  He obtained his PhD from MIT in 2005.  His main research interests are in Software Engineering, with focus on improving software reliability using Software Testing.  His work is supported by NSF, IBM, Intel, Microsoft, and Samsung.  Home page:

HOST: Prof. Mauro Pezzè