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?
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With