Our Research in Autonomous Software Engineering

Our research primarily focuses on automated software engineering, with a special emphasis on program repair and fuzz testing. We are proud to have our work accepted at prestigious conferences and journals in the field of software engineering. One extensively examined area is the repair of security vulnerabilities, where we strive to advance the state of the art and contribute to safer and more reliable software systems. Additionally, we have made significant contributions to the development of semantic program repair, further enhancing the effectiveness and trustworthyness of automated repair techniques.

AutoCodeRover: Autonomous Program Improvement (ISSTA24)

We propose an automated approach for solving Github issues to autonomously achieve program improvement, e.g. bug fixing or feature addition.

Automated Repair of Programs from Large Language Models (ICSE23)

This study revealed that automatically generated code shares common programming mistakes with human-crafted solutions, indicating APR techniques have potential to fix auto-generated code.

Automatic Programming: LLMs and Beyond

A forward-looking view, focusing on the programming environment of the near future, where programmers may need to switch to different roles to fully utilize the power of automatic programming.

Automated Program Repair (CACM19)

Automated program repair is an emerging and exciting field of research that allows for automated rectification of software errors and vulnerabilities.

Seminal papers in Semantic Program Repair

SemFix: Program Repair via Semantic
(ICSE13 Test of Time Award)

In this paper, an automated repair method based on symbolic execution, constraint solving and program synthesis is presented. This work has been the starting point for semantic program repair.

Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis (ICSE16)

Anglix is a novel semantics-based repair method that scales up to industry-scale programs in C.

Automated Repair of Security Vulnerabilities

Vulnerability Repair via Inductive Inference

In this paper, a counter-example guided inductive inference procedure over program states to define likely invariants at possible fix locations was presented to reduce the time between reporting and fix of a vulnerability.

Concolic Program Repair

In this work we propose an integrated approach for detecting and discarding overfitting patches via systematic co-exploration of the patch space and input space.