Hypothesizer is an interactive debugger for web applications that allows developers to recreate bugs they are experiencing and get helpful feedback. Hypothesizer records and analyzes DOM events, API calls, and Network events. It uses this information to provide solutions with code examples from the developer's codebase to fix the bug efficiently.
These instructions will get you a copy of the project up and running on your local machine for debugging.
What things you need to install Hypothesizer and how to install them.
You will need docker desktop open while running Hypothesizer.
- Click on this link and download Docker Desktop for your OS
- Docker
- Windows users: You will be prompted by the docker installation wizard to install WSL 2. Docker Desktop uses the dynamic memory allocation feature in WSL 2 to improve the resource consumption.
Your project needs to be configured to run side-by-side with Hypothesizer. We have provided an example repository containing Modern Web Application Bugs to try the debugger for yourself.
Head to this repo and clone the project.
Create a local directory on your machine
mkdir modernWebApplicationBugs
Clone the repo
cd modernWebApplicationBugs
gh repo clone Alaboudi1/modernWebApplicationBugs
Install the dependencies
yarn
Change Directory to bug-1 and install the dependencies
cd bug-1
yarn
Run the project
yarn start
Congrats! You now have a web application running on localhost:3000
Hold that thought while we walk you through the next step.
Similarly you will need to clone Hypothesizer
Create a local directory on your machine
mkdir Hypothesizer-Debugger
Clone the repo
cd Hypothesizer-Debugger
gh repo clone Alaboudi1/Hypothesizer-Debugger
Install the dependencies and run the Debugger
yarn
yarn start
This will start up Hypothesizer and open the project running on localhost:3000 in a window side-by-side.
Here is an overview of how to use Hypothesizer. The process is the same on MacOS and Windows.
Steps:
- Open Docker Desktop
- Start a web application on localhost:3000
- Start Hypothesizer
- Click "record"
- Re-create the bug you are experiencing
- Click on the most relevant issue
- Read the given hypothesis and fix the bug in the application
- Abdulaziz Alaboudi - Initial work - GitHub
- Hayden Hanson - GitHub
This project is licensed under the MIT License - see the LICENSE file for details
Lacking a correct hypothesis can be an important barrier to making progress in debugging. To address this, we found that offering a debugging aid in the form of potential hypotheses made developers six time more likely to succeed in debugging.
This suggests important new opportunities for future tools that help developers to get started in finding a debugging hypothesis relevant to their task at hand.
Research Paper - Using Hypotheses as a Debugging Aid