Skip to content
v1.0.ICSE2020
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
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, which will appear in the Proceedings of the 42nd International Conference on Software Engineering (ICSE) 2020.

Pre-requisites

  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 RunHolmes.java 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/fuzz.sh) 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 README.md inside the artifact_documentation directory for more details on using Holmes for debugging.

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages