Skip to content

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

Notifications You must be signed in to change notification settings

LASER-UMASS/CausalTesting_ICSE20

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. http://dx.doi.org/10.1145/3377811.3380377

The version of Holmes described in that paper, and the artifact released with that paper, can be viewed at https://doi.org/10.5281/zenodo.3676139

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