Yuntong Zhang

Yuntong Zhang

Auto-generated profile, based on publicly available information

Yuntong Zhang

National University of Singapore, Singapore, Singapore

Research Focus & Metrics

Academic Career Length

3Years (2024-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
11 September 2024
Verified
Conference Paper
Open access
YZYuntong Zhang
Yuntong Zhang
HRHaifeng Ruan
Haifeng Ruan
ZFZhiyu Fan
Zhiyu Fan
ARAbhik Roychoudhury
Abhik Roychoudhury
Researchers have made significant progress in automating the software development process in the past decades. Automated techniques for issue summarization, bug reproduction, fault localization, and program repair have been built to ease the workload of developers. Recent progress in Large Language Models (LLMs) has significantly impacted the development process, where developers can use LLM-based programming assistants to achieve automated coding. Nevertheless, software engineering involves the process of program improvement apart from coding, specifically to enable software maintenance (e.g. program repair to fix bugs) and software evolution (e.g. feature additions). In this paper, we propose an automated approach for solving Github issues to autonomously achieve program improvement. In our approach called AutoCodeRover, LLMs are combined with sophisticated code search capabilities, ultimately leading to a program modification or patch. In contrast to recent LLM agent approaches from AI researchers and practitioners, our outlook is more software engineering oriented. We work on a program representation (abstract syntax tree) as opposed to viewing a software project as a mere collection of files. Our code search exploits the program structure in the form of classes/methods to enhance LLM’s understanding of the issue’s root cause, and effectively retrieve a context via iterative search. The use of spectrum-based fault localization using tests, further sharpens the context, as long as a test-suite is available. Experiments on the recently proposed SWE-bench-lite (300 real-life Github issues) show increased efficacy in solving Github issues (19% on SWE-bench-lite), which is higher than the efficacy of the recently reported Swe-agent. Interestingly, our approach resolved 57 GitHub issues in about 4 minutes each (pass@1), whereas developers spent more than 2.68 days on average. In addition, AutoCodeRover achieved this efficacy with significantly lower cost (on average, $0.43 USD), compared to other baselines. We posit that our workflow enables autonomous software engineering, where, in future, auto-generated code from LLMs can be autonomously improved.

20 February 2025 in ACM Transactions on Software Engineering and Methodology
Verified
Journal Article
Open access
YZYuntong Zhang
Yuntong Zhang
ACAndreea Costea
Andreea Costea
RSRidwan Shariffdeen
Ridwan Shariffdeen
DMDavin McCall
Davin McCall
ARAbhik Roychoudhury
Abhik Roychoudhury
This work introduces EffFix, a tool that applies a novel static analysis-driven automated program repair (APR) technique for fixing memory errors. APR tools typically rely on a given test-suite to guide the repair process. Apart from the need to provide test oracles, this reliance is also one of the main contributors to the over-fitting problem. Static analysis based APR techniques bypass these issues only to introduce new ones, such as soundness, scalability, and generalizability. This work demonstrates how we can overcome these challenges and achieve sound memory bug repair at scale by leveraging static analysis (specifically incorrectness separation logic (ISL)) to guide repair. This is the first repair approach to use ISL. Our key insight is that the abstract domain used by static analysis to detect the bugs also contains key information to derive correct patches. Our proposed approach learns what a desirable patch is by inspecting how close a patch is to fixing the bug based on the feedback from ISL based static analysis (specifically the Pulse analyzer), and turning this information into a distribution of probabilities over context free grammars. This approach to repair is generic in that its learning strategy allows for finding patches without relying on the commonly used patch templates. Furthermore, to achieve efficient program repair, instead of focusing on heuristics for reducing the search space of patches, we make repair scalable by creating classes of equivalent patches according to the effect they have on the symbolic heap. We then conduct candidate patch validation only once per patch equivalence class. This allows EffFix to efficiently discover quality repairs even in the presence of a large pool of patch candidates. Experimental evaluation of fixing real world memory errors in medium to large scale subjects like OpenSSL, Linux Kernel, swoole, shows the efficiency and effectiveness of EffFix— in terms of automatically producing repairs from large search spaces. In particular, EffFix has a fix ratio of 66% for memory leak bugs and 83% for Null Pointer Dereferences for the considered dataset.

12 April 2026
Verified
Conference Paper
Open access
LALeonhard Applis
Leonhard Applis
YZYuntong Zhang
Yuntong Zhang
SLShanchao Liang
Shanchao Liang
NJNan Jiang
Nan Jiang
LTLin Tan
Lin Tan
ARAbhik Roychoudhury
Abhik Roychoudhury

12 April 2026
Verified
Conference Paper
Open access
YZYuntong Zhang
Yuntong Zhang
JWJiawei Wang
Jiawei Wang
DBDominic Berzin
Dominic Berzin
MMMartin Mirchev
Martin Mirchev
ARAbhik Roychoudhury
Abhik Roychoudhury

5 July 2026
Verified
Conference Paper
Open access
MMMartin Mirchev
Martin Mirchev
RSRidwan Shariffdeen
Ridwan Shariffdeen
HRHaifeng Ruan
Haifeng Ruan
YZYuntong Zhang
Yuntong Zhang
ARAbhik Roychoudhury
Abhik Roychoudhury