16

CHESS is a tool for finding and reproducing Heisenbugs in concurrent programs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the interleaving for improved debugging. [Source]

Does a tool like this exist for Java?

weegee
  • 3,256
  • 2
  • 18
  • 32
Bjarke Freund-Hansen
  • 28,728
  • 25
  • 92
  • 135
  • possible duplicate of [Concurrent code analyzer](http://stackoverflow.com/questions/6090691/concurrent-code-analyzer) – oluies Dec 02 '11 at 18:45
  • 1
    Not duplicate, that question is about whether a proposed static code analysis method would work. I ask for a tool like CHESS, which will repeatedly execute Java code and ensure that all possible thread interleaving are exercised. I am not saying that the other questions is not interesting, though. – Bjarke Freund-Hansen Dec 05 '11 at 07:58

2 Answers2

4

Haven't used in personally, but the book Clean Code by Robert C. Martin describes a tool from IBM called ConTest that is supposed to aid concurrent testing similarly:

ConTest - A Tool for Testing Multi-threaded Java Applications

Bhesh Gurung
  • 50,430
  • 22
  • 93
  • 142
Jon
  • 41
  • 2
2

The only tool I'm aware of that's somewhat like what you're describing is an academic project called RoadRunner, which is described in this paper:

The ROADRUNNER Dynamic Analysis Framework for Concurrent Programs

And available for download here:

The RoadRunner Dynamic Analysis Framework

Again, I don't think that's exactly what you're looking for, but I'm not aware of anything closer. I'll be interested to see if anyone comes up with an exact analogue.

Bhesh Gurung
  • 50,430
  • 22
  • 93
  • 142
Shaun
  • 2,446
  • 19
  • 33