The MultithreadedTC framework was created to make it easier to test small concurrent abstractions. It enables test designers to guarantee a specific interleaving of two or more threads, even in the presence of blocking and timing issues.
To learn more, please read this overview.
MultithreadedTC was created at the University of Maryland by Bill Pugh and Nat Ayewah. It has been used in a number of courses to test concurrent projects, and enable students to write their own test cases.
MultithreadedTC is free and open source under the New BSD License.