Project: Concurrent Unit Testing

The main project I am working on deals with unit testing concurrent programs. I am conducting this research under the supervision of Professor Robert “Corky” Cartwright.

The project focuses on Java programs and makes use of byte code rewriting, custom class loaders, and the Java Platform Debugger Architecture (JPDA).

To ensure deterministic behavior of unit tests, we need to find out when certain synchronization operations (like starting/exiting threads, acquiring/releasing locks, etc.) happen so that we can record them as some sort of trace. Later, we use these traces to generate a large (ideally exhaustive) number of schedules, and later we run programs exactly as described in these schedules.

We will also have to deal with detecting race conditions, as race conditions may lead to non-deterministic behavior; and keeping the schedules of synchronization events up-to-date with source code changes.

Share

About Mathias

Software development engineer. Principal developer of DrJava. Recent Ph.D. graduate from the Department of Computer Science at Rice University.
This entry was posted in Concurrent Unit Testing. Bookmark the permalink.

Leave a Reply