Development of an Automated Debugger with Program Synthesis and Fault Localization
Hello! Everyone, This project is about an Automated Debugger which automatically finds lines of erroneous code in an imperative program and corrects them satisfying given specification. The debugger made of some techniques. The first technique that we use is Fault Localization. This technique finds lines that are likely to occur fault in execution. Also, Program Synthesis is one of the automated programming methods and generates code that satisfies given specification. This wonderful technique corrects an error statement which is localized by the Fault Localization. As a result, this system will be served as a web application.
#program synthesis #fault localization #code repair #debugging method
Patent(특허 출원): 10-2020-0176727 (Korea)
In this project, we implemented Coverage-based Fault Localization. The Fault Localization calculates suspiciousness of error-prone code with some formulas such as Tarantula, Ochiai, etc.
- Coverage-based
- Suspiciouness
- Tarantula, Ochiai, OP2, ...
The synthsizer searches candidates which satisfies the given specification over program space. While searching over the program space, the synthesizer converts the candidate to a first-order logic formula and verifies whether it is satisfied by the specification.
- Enumerative Search
- Conflict Driven Clause Learning
- Node.js
- React.js 16.4
-
Clone the repository.
https://github.com/CSID-DGU/2020-1-CECD3-WAS-6.git
-
Move into the project directory.
cd 2020-1-CECD3-WAS-6/Source/web-frontend
-
Install all the required libraries Reactjs
npm install
-
Create .env file
REACT_APP_SERVER_API=http://localhost:3001
-
Run the application.
npm start
-
Go to
http://localhost:8080
- Node v12.6.1
-
Move into the project directory.
2020-1-CECD3-WAS-6/Source/web-server
-
Install all the required libraries
npm install
-
Create .env file.
MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USER=root MYSQL_PASS= MYSQL_DB=was_ide PORT=3001 TOKEN=wasteamdongguk
-
Create database['was_ide'] with sql.sql file
-
Run the application.
nodemon
- Python 3
-
Tarantula
python tarantula.py mid.py testCaseMid2
- 한용진 (DalnaraCrater)
- 오재혁 (OhJaeHyeok)
- 응웬딩흐엉 (huonghope)