Skip to content

Commit

Permalink
fixes merge conflict
Browse files Browse the repository at this point in the history
  • Loading branch information
brittjay0104 committed Jan 26, 2020
2 parents d9e2d66 + 1b83166 commit 740eccc
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 10 deletions.
File renamed without changes.
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
# Holmes
This repository contains the source code for the Holmes prototype used in the ICSE 2020 technical track paper "Causal Testing: Understanding Defects' Root Causes".
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.

## How to install Holmes

## How to run Holmes

## Current limitations & on-going improvements
10 changes: 9 additions & 1 deletion artifact_documentation/CONTACT.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
# Contact Information

**Brittany Johnson** (corresponding author)

*email*: bjohnson@cs.umass.edu

*github id*: brittjay0104


**Yuriy Brun**

*email*: brun@cs.umass.edu

*github id*: brunyuriy


**Alexandra Meliou**

*email*: ameli@cs.umass.edu
*github id*:

*github id*:
25 changes: 17 additions & 8 deletions artifact_documentation/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Download this file to your computer. Make sure you make note of where you put th

Before you can run the virtual machine, you will need to download and install [VirtualBox 6](https://www.virtualbox.org).

Once you've installed VirtualBox, you're reading to load and run the virtual machine.
Once you've installed VirtualBox, you're ready to load and run the virtual machine.
To load the virtual machine, you will need to import the **CausalTesting_Artifact.ova** file into VirtualBox. You do so as follows:

1. Open VirtualBox.
Expand All @@ -22,23 +22,32 @@ Once the virtual machine is imported, it will appear in your VirtualBox Manager

<img src="https://drive.google.com/uc?id=1VjrcBPwrz4LO8cwlspb0TmEUcqwMoCp-" alt="VirtualBox Manager"/>

Once the virtual machine loads, Eclipse will open -- this process may take a few minutes. Once Eclipse opens, there will be 7 files opens labeled *Defect 0- Defect 6*. At the bottom of the window, the Tasks View is open with a list of TODOs. Each TODO is attached to the failing test for each defect. For example, **TODO: Test 00 (Training)** is associated with *Defect_0_Training*.
Once the virtual machine loads, Eclipse will open -- this process may take a few minutes. Once Eclipse opens, there will be 7 projects in the Project Explorer labeled *Defect 0- Defect 6*.

At the bottom of the window, the Tasks View is open with a list of TODOs. Each TODO is attached to the failing test for each defect. For example, **TODO: Test 00 (Training)** is attached to the failing test *test_toBoolean_String()* which exposes *Defect 0* in the *toBoolean()* method.

## Running Holmes

To see Holmes output for each defect:

1. Double-click a TODO in the Tasks View to get to the failing test.
* *Defect 0* runs the test generation portion of Holmes (which does not include execution traces, as this was not automated in the user study version of Holmes).
**1. Double-click a TODO in the Tasks View to get to the failing test that exposes the defect.**
Each TODO is followed by comments that specify what we asked participants to do and the method to highlight for executing Holmes.

* *Defects 1-6* show the pre-processed output that participants saw during the user study.
<img src="https://drive.google.com/uc?id=1fpS9WQLitBs_fk07tuBtkhkkrLHGAh0x" alt="Eclipse TODOs"/>

2. Highlight the method that takes the input being tested. Each TODO is followed by comments that specify what we asked participants to do and the method to highlight.
2. Highlight the method that takes the input being tested, as shown below.

<img src="https://drive.google.com/uc?id=1Bs8DV4B1rsqqr8PDWPZbiQL45HFkcqjv" alt="Highlighting target method"/>

3. Right-click the highlighted method and click **"Run Holmes"** in the pop-up menu.

<img src="https://drive.google.com/uc?id=1T5IOWdJvIkt6nte0zcKnrlbdPxQzraol" alt="Run Holmes command"/>


**Test 00** runs the test generation portion of Holmes (which does not include execution traces, as this was not automated in the user study version of Holmes). If you are running Holmes on **Test 00**, the editor will automatically go to the top of the file as Holmes generates and executes tests. This process will take a minute or two; eventually the Holmes View will open with results of the execution.

<img src="https://drive.google.com/uc?id=1ZP2c1zftIuyvyyuEPOBj1pTb9mujvi8N" alt="Test 00 Output"/>

If you are running Holmes on *Defect 0*, the editor will automatically go to the top of the file as Holmes generates and executes tests. This process will take a minute or two; eventually the Holmes View will open with results of the execution.
**Test 01 - Test 06** show the pre-processed output that participants saw during the user study. If you are running Holmes on **Test 01 - Test 06**, after a few seconds, the Holmes View will open with the pre-processed results used in our user study. For each of these defects, the output includes the original failing test, generated passing tests, and generated faiing tests. You can access the execution trace for each test by clicking the **"See Execution Trace"** button under the test of interest.

If you are running Holmes on *Defects 1-6*, after a few seconds, the Holmes View will open with the pre-processed results used in our user study. For each of these defects, the output includes the original failing test, generated passing tests, and generated faiing tests. You can access the execution trace for each test by clicking the "See Execution Trace" button under the test of interest.
<img src="https://drive.google.com/uc?id=1U5LBRjhgRx7kCZpQRWb3qjVoMgNiLzC_" alt="Run Holmes command"/>

0 comments on commit 740eccc

Please sign in to comment.