As the use of concurrency in software increases there are more software testing tools being developed in both industry an academia. Below is a fairly comprehensive list of tools (mainly for Java):
- ConTest – IBM concurrent testing tool that inserts random delays into Java bytecode
- ConAn – a thread testing tool for Java
- CHESS – a Microsoft tool for concurrent testing in Visual Studio
- CalFuzzer – an active testing framework
- ConMAn – mutation testing tool for concurrent programs written in Java
– clone detection tool that detects user specified patterns (intended for project-specific bug detection). Can be combined with ConTest tool.
- Coverity Dynamic Analysis – commercial tool that detects bugs in multithreaded Java programs [http://scan.coverity.com/]
- Chord – static and dynamic analysis tool for Java (listed below as well).
- Pluralism – Modular object protocol checking for Java
- Flashlight Dynamic Analysis – a commercial tool from SureLogic that is currently available in early release.
- MPI testing tools: TotalView, Intel Message Checking, MPI Check, Marmot
- JFuzz – testing tool built on Java PathFinder
- MutMut – concurrency mutation testing tool built on Java PathFinder
- AtomRacer – detection of data races and atomicity violations
- Eraser – detection of data races by tracking sets of locks that are acquired/held during execution.