Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Holmes: A Causal Testing Prototype

Holmes is a prototype implementation of Causal Testing, a novel testing technique that uses causal experiments to help developers debug Java programs. This repository contains the source code along with the user study setup and materials for the paper titled:

Causal Testing: Understanding Defects' Root Causes by Brittany Johnson, Yuriy Brun, and Alexandra Meliou, published in the Proceedings of the 42nd International Conference on Software Engineering (ICSE) 2020.

The version of Holmes described in that paper, and the artifact released with that paper, can be viewed at


  1. Clone this repository, which includes the Holmes directory where the source code is contained.
  2. Download defects4j into the Holmes directory.**
  3. Install the Eclipse IDE and make sure you have at least Java 1.7 installed on your machine.
  4. Install Python and Node.js.

** Note: The version of Holmes in this repo only works with projects in the Defects4J benchmark. We are currently working on an implementation that is able to run on any JUnit test within the Eclipse IDE.

How to install Holmes

If you want to run or use Holmes on your own machine, you will need to do the following:

  1. Import the Holmes directory into Eclipse (File > Import... > General/Existing Projects into Workspace).
  2. Once imported, open the file. At the top there is a global field called workingDirectory. Update this variable with the path to the Holmes directory on your machine.
  3. Update the paths to python and node in the fuzzing script (Holmes/fuzzers/ to the locations for python and node on your machine.
  4. From here, you can install Holmes by either exporting the plug-in or installing the plug-in to your host Eclipse.

How to use Holmes

Please reference the inside the artifact_documentation directory for more details on using Holmes for debugging.


This repository contains the components of the artifact for the ICSE 2020 technical research paper "Causal Testing: Understanding Defects' Root Causes".






No packages published