Bellevue, Wash. – Just released by Microsoft Research is CHESS, an automated tool for finding errors — data-races, deadlocks, hangs, and data-corruption induced access violations — in concurrent multithreaded software.
By systematically exploring thread schedules, once CHESS locates an error, it provides a fully repeatable execution of the program leading to the error, important in the debugging process.
Also, CHESS provides a novel notion of test coverage suitable for multithreaded programs. CHESS uses existing concurrent test cases and is therefore easy to deploy.
Released on the Microsoft site is a paper by the researchers: “CHESS: A Systematic Testing Tool for Concurrent Software.”In it researchers Madanlal Musuvathi, Shaz Qadeer, and Thomas Ball detail how it can be used to model checking techniques to systematically generate all interleaving of a given scenario.
CHESS is able to scale to large concurrent programs and has been used to find numerous previously unknown bugs in systems that had been stress tested for many months prior to being tested by the program.
The researchers said CHESS has been integrated into the test frameworks of many code bases inside Microsoft and is being used by testers on a daily basis.