September 16–20, 2024, Vienna, Austria | Yuntong Zhang, Haifeng Ruan, Zhiyu Fan, Abhik Roychoudhury
**AutoCodeRover: Autonomous Program Improvement**
Researchers have made significant progress in automating software development processes, including issue summarization, bug reproduction, fault localization, and program repair. Recent advancements in Large Language Models (LLMs) have further enhanced these capabilities, enabling automated coding. However, software engineering involves more than just coding; it includes program improvement for maintenance and evolution. This paper introduces AutoCodeRover, an automated approach for solving GitHub issues to achieve autonomous program improvement.
**Key Contributions:**
- **LLM Integration:** Combines LLMs with sophisticated code search capabilities to modify or patch programs.
- **Software Engineering Orientation:** Focuses on program representations (abstract syntax trees) rather than treating the codebase as a collection of files.
- **Code Search:** Utilizes the program structure (classes, methods) to enhance LLMs' understanding of the issue's root cause and retrieve relevant context iteratively.
- **Fault Localization:** Leverages spectrum-based fault localization (SBFL) to refine context retrieval if a test suite is available.
**Experimental Results:**
- **SWE-bench-lite Dataset:** Achieved 19% efficacy in solving 300 GitHub issues, outperforming the recently reported SWE-AGENT.
- **Time and Cost:** Resolved 57 GitHub issues in about 4 minutes each, compared to an average of 2.68 days for developers.
- **Patch Quality:** 2/3 of the patches produced by AutoCodeRover were correct and acceptable.
**Future Directions:**
- **Iterative Generation:** Envisioning a workflow where AutoCodeRover can generate and validate patches iteratively.
- **Robust Search APIs:** Enhancing the robustness of search APIs to handle unimplemented or incomplete specifications.
- **Human Involvement:** Highlighting the need for human intervention in tasks where AutoCodeRover fails to resolve issues.
**Conclusion:**
AutoCodeRover demonstrates the potential for autonomous software engineering, where LLM-generated code can be autonomously improved. The approach leverages code structure and context to guide patching, showing promise in reducing manual effort and improving efficiency in software maintenance and evolution.**AutoCodeRover: Autonomous Program Improvement**
Researchers have made significant progress in automating software development processes, including issue summarization, bug reproduction, fault localization, and program repair. Recent advancements in Large Language Models (LLMs) have further enhanced these capabilities, enabling automated coding. However, software engineering involves more than just coding; it includes program improvement for maintenance and evolution. This paper introduces AutoCodeRover, an automated approach for solving GitHub issues to achieve autonomous program improvement.
**Key Contributions:**
- **LLM Integration:** Combines LLMs with sophisticated code search capabilities to modify or patch programs.
- **Software Engineering Orientation:** Focuses on program representations (abstract syntax trees) rather than treating the codebase as a collection of files.
- **Code Search:** Utilizes the program structure (classes, methods) to enhance LLMs' understanding of the issue's root cause and retrieve relevant context iteratively.
- **Fault Localization:** Leverages spectrum-based fault localization (SBFL) to refine context retrieval if a test suite is available.
**Experimental Results:**
- **SWE-bench-lite Dataset:** Achieved 19% efficacy in solving 300 GitHub issues, outperforming the recently reported SWE-AGENT.
- **Time and Cost:** Resolved 57 GitHub issues in about 4 minutes each, compared to an average of 2.68 days for developers.
- **Patch Quality:** 2/3 of the patches produced by AutoCodeRover were correct and acceptable.
**Future Directions:**
- **Iterative Generation:** Envisioning a workflow where AutoCodeRover can generate and validate patches iteratively.
- **Robust Search APIs:** Enhancing the robustness of search APIs to handle unimplemented or incomplete specifications.
- **Human Involvement:** Highlighting the need for human intervention in tasks where AutoCodeRover fails to resolve issues.
**Conclusion:**
AutoCodeRover demonstrates the potential for autonomous software engineering, where LLM-generated code can be autonomously improved. The approach leverages code structure and context to guide patching, showing promise in reducing manual effort and improving efficiency in software maintenance and evolution.