Bug Detection and Repair: A comprehensive, machine-learning-driven framework designed to automatically detect, analyze, and repair bugs in source code. Stop debugging, start repairing!
This project is a deep dive into Automated Program Repair (APR), addressing the critical need for faster, more reliable software development. Our core goals are:
-
1οΈβ£ Data Powerhouse: Create robust, high-quality datasets (
$\text{BugNet, AoC}$ ) essential for training state-of-the-art bug detection and repair systems. - 2οΈβ£ Algorithmic Excellence: Develop, implement, and rigorously evaluate cutting-edge algorithms for automated code repair.
- 3οΈβ£ Deep Insights: Provide analytical clarity into common bug patterns and effective repair strategies.
The project is thoughtfully structured to support research, data generation, and practical application:
| Directory | π― Purpose | Why it's Awesome |
|---|---|---|
bugnet |
BugNet Dataset Generation | Scripts to create the comprehensive |
repair-pipeline |
The Repair Demo | Practical, runnable demo applications showcasing our trained Python repair models in action. |
aoc-dataset |
AoC Dataset Source | Code used to generate the |
hint |
Natural Language Hint Generation | Contains the code to translate tricky bugs into user-friendly, natural language descriptions. |
repair |
Evaluation & Benchmarks | The frameworks used to benchmark and evaluate the performance of all implemented repair algorithms. |
Ready to fix bugs automatically? Setting up your environment is simple:
# 1. Create a virtual environment
python -m venv .venv
# 2. Activate the environment
source .venv/bin/activate
# 3. Install dependencies from the Makefile
make installDive into the specific components you find most interesting!
-
β¨ Execute the Repair Pipeline:
π See the automatic repair models in action! Go to
repair-pipelinedocumentation -
π Explore the AoC Dataset:
π‘ Visualize and analyze one of our key testing datasets. See
aoc-datasetvisualization instructions -
π§ Generate Natural Language Hints:
π¬ Learn how the system explains why the bug exists. Start Hint Generation Analysis
-
π§ͺ Evaluate Repair Performance:
π Run benchmarks on different repair algorithms using our datasets. Check the Evaluation Framework
-
β Generate the BugNet Dataset:
πΎ Learn how we built the core dataset used for training. Follow BugNet Generation Instructions
This advanced program repair framework was proudly developed as a capstone project during the Intel Unnati internship program, focusing on applying cutting-edge Machine Learning techniques to solve complex Software Engineering challenges.
A big thank you to the team who built this framework:
- Atharva Karval
- Samarth Patil
- Om Dalbhanjan
We welcome contributions and feedback! Have you found an exciting new repair algorithm? Open an Issue or a Pull Request!