CHESS is a concurrency testing tool for finding and reproducing Heisenbugs in your concurrent programs.
Getting Started
- Download and install CHESS
- Get started with the CHESS Overview.
About CHESS – Finding and Reproducing Heisenbugs in Concurrent Programssee all DevLabs projects…
Latest CHESS release: Major features in the new release of CHESS (v0.1.30610.2, 06/12/2009) include: Data race detection for managed code; ChessBoard, an interactive shell for CHESS that simplifies the typical user interactions with CHESS, such as launching CHESS runs and managing test results; and Refinement checking for comparing the observed concurrent behaviors of a concurrent data type with its observable serial behaviors.
Given a concurrent test, CHESS repeatedly runs the test so that every run takes a different thread interleaving. On finding an error, CHESS reproduces the erroneous interleaving, tremendously improving the debugging experience. CHESS can find assertion violations, deadlocks, livelocks, data-races, and memory-model errors. CHESS includes a visualization tool for viewing thread interleavings for better concurrency debugging.
CHESS works for unmanaged user-mode programs and for managed programs. CHESS is designed to be used by both developers and testers of concurrent programs. Unlike stress-testing, CHESS does not need lots of threads to create interleaving variety. The users get the most benefit from CHESS by providing a test with small number of threads (say, less than 10) exercising a single concurrency scenario.
Requirements
- User Mode: CHESS works for managed and unmanaged user-mode programs.
- Operating System: Windows 2003 or later, 32 bit, x86
- Development Tools: Visual Studio 2008 Team Dev or Team Test Editions