Thesis: A Framework for Testing Concurrent Programs

A Framework for Testing Concurrent Programs

Rice University

A Framework for Testing Concurrent Programs
Mathias Guenter Ricken

A thesis submitted
in partial fulfillment of the
requirements for the degree

Master of Science

Incremental, test-driven development is sweeping the software industry, elevating testing from an ancillary activity to an integral part of the programming process. Unfortunately, in our recent experience developing production programs in Java, unit testing has only proven effective in assuring the reliability of code with a single thread of control; it is much less effective in concurrent programs.

To facilitate the development of concurrent programs, we are developing:

  1. An extension of the JUnit framework that actively supports the developer by treating tests that could silently ignore failures in auxiliary threads as test errors;
  2. A lightweight Java annotation language that can be used to specify and check the threading invariants of both existing and new code;
  3. A testing framework that can record and analyze the schedules of unit tests, detect deadlocks, and run the tests using modified schedules, increasing the likelihood that concurrency problems are discovered.

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, MS Thesis, Publications. Bookmark the permalink.

Leave a Reply