Skip to main content

ConTest - A Tool for Testing Multi-threaded Java Applications

Software Testing, Analysis and Reviews


ConTest is an advanced testing solution from IBM, whose main use is to expose and eliminate concurrency-related bugs in parallel and distributed software. ConTest is developed and supported by the IBM's Verification and Testing Technologies group in Haifa, which is a worldwide center of expertise in this area (for example, see the PADTAD series of workshops organized by our group).

The ConTest technology is innovative and counter-intuitive. Specifically, ConTest systematically and transparently schedules the execution of program threads such that program scenarios which are likely to contain race conditions, deadlocks and other intermittemt bugs - collectively called synchronization problems - are forced to appear with high frequency. In doing so, ConTest dramtically improves the quality of testing and reduces development expense, as bugs are found earlier in the testing process.

With ConTest, the impact on the testing effort is minimal. Testers can rerun existing test suites without recompilation of the software under test (but with a greater probability of uncovering synchronization problems ). ConTest is easy to use and requires, typically, less then one day to set up. ConTest has been used successfully on industrial size applications (e.g. IBM WebSphere) and is, in general, a scalable testing solution. ConTest can is also used to measure test coverage, to aid in debugging, to enable replay, and to present deadlock information.

ConTest has the following features:

  • Cause synchronization problems to more likely surface in testing
  • Support the traditional test coverage models (e.g. branch coverage and method coverage) as well as advanced synchronization coverage models
  • Support partial replay, increasing likelihood that a program scenario which gave rise to a specific synchronization problem will recur
  • Produces a lot of useful debugging information

ConTest may be licensed. For further details, please contact:

A presentation describing the difficulty of testing concurrent software and the ConTest solution.