Software Testing Tools for Concurrency

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
  • ConcurrencyCloner – 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.

3 thoughts on “Software Testing Tools for Concurrency

  1. Great list, thanks for sharing! I’m looking for a Java tool I can integrate in our unit or integration tests and that will automatically explore the interesting possible thread interleavings to check for concurrency bugs. Would you recommend any tool in the particular for this? (free or suitable cost-wise for a small company)
    Thanks 🙂
    Mike

    1. Hi Mike,

      Thanks for the comment. Unfortunately there aren’t any tools for Java that are sophisticated enough to automatically explore “interesting” thread schedules. Probably the best option is the IBM ConTest tool which has built-in heuristics that you can use to customize which thread schedules are checked.

      Regards,

      Jeremy

Leave a Reply to bradbury Cancel reply

Your email address will not be published. Required fields are marked *