English
Related papers

Related papers: RaceFixer -- An Automated Data Race Fixer

200 papers

Automatic Program Repair (APR) is a brilliant idea: when detecting a bug, also provide suggestions for correcting the program. Progress towards that goal is hindered by the absence of a common frame of reference for the multiplicity of APR…

Software Engineering · Computer Science 2025-02-28 Victoria Kananchuk , Ilgiz Mustafin , Bertrand Meyer

This paper describes AutoFix, an automatic debugging technique that can fix faults in general-purpose software. To provide high-quality fix suggestions and to enable automation of the whole debugging process, AutoFix relies on the presence…

Software Engineering · Computer Science 2014-05-22 Yu Pei , Carlo A. Furia , Martin Nordio , Yi Wei , Bertrand Meyer , Andreas Zeller

Patching is a common activity in software development. It is generally performed on a source code base to address bugs or add new functionalities. In this context, given the recurrence of bugs across projects, the associated similar patches…

Software Engineering · Computer Science 2023-05-05 Anil Koyuncu , Kui Liu , Tegawendé F. Bissyandé , Dongsun Kim , Jacques Klein , Martin Monperrus , Yves Le Traon

With the rise of multi-core processors and distributed systems, concurrent programming has become essential yet challenging, primarily due to the non-deterministic nature of thread execution. Manually addressing concurrency bugs is…

Software Engineering · Computer Science 2026-04-08 Zhuang Li , Qiuping Yi , Keyang Xiao , Zongcheng Ji , Hongliang Liang

Test-based automatic program repair has attracted a lot of attention in recent years. However, the test suites in practice are often too weak to guarantee correctness and existing approaches often generate a large number of incorrect…

Software Engineering · Computer Science 2018-07-30 Yingfei Xiong , Xinyuan Liu , Muhan Zeng , Lu Zhang , Gang Huang

Atomicity is a fundamental abstraction in concurrency, specifying that program behavior can be understood by considering specific code blocks executing atomically. However, atomicity invariants are tricky to maintain while also optimizing…

Programming Languages · Computer Science 2026-04-14 Hünkar Can Tun , Yifan Dong , Andreas Pavlogiannis

Test-based automated program repair has been a prolific field of research in software engineering in the last decade. Many approaches have indeed been proposed, which leverage test suites as a weak, but affordable, approximation to program…

When debugging unintended program behavior, developers can often identify the point in the execution where the actual behavior diverges from the desired behavior. For example, a variable may get assigned a wrong value, which then negatively…

Software Engineering · Computer Science 2023-04-26 Islem Bouzenia , Yangruibo Ding , Kexin Pei , Baishakhi Ray , Michael Pradel

Data races are egregious parallel programming bugs on CPUs. They are even worse on GPUs due to the hierarchical thread and memory structure, which makes it possible to write code that is correctly synchronized within a thread group while…

Distributed, Parallel, and Cluster Computing · Computer Science 2024-01-10 John Jacobson , Martin Burtscher , Ganesh Gopalakrishnan

Artificial Intelligence has gained a lot of traction in the recent years, with machine learning notably starting to see more applications across a varied range of fields. One specific machine learning application that is of interest to us…

Software Engineering · Computer Science 2023-05-10 Teodor Rares Begu

Automated program repair is an emerging technology which consists of a suite of techniques to automatically fix bugs or vulnerabilities in programs. In this paper, we present a comprehensive survey of the state of the art in program repair.…

Software Engineering · Computer Science 2022-11-24 Xiang Gao , Yannic Noller , Abhik Roychoudhury

Automated program repair is a crucial task for improving the efficiency of software developers. Recently, neural-based techniques have demonstrated significant promise in generating correct patches for buggy code snippets. However, most…

Software Engineering · Computer Science 2023-05-17 Yuwei Zhang , Ge Li , Zhi Jin , Ying Xing

Many automated program repair techniques have been proposed for fixing bugs. Some of these techniques use the information beyond the given buggy program and test suite to improve the quality of generated patches. However, there are several…

Software Engineering · Computer Science 2021-03-26 Shin Hwei Tan , Ziqiang Li , Lu Yan

We introduce Learn2fix, the first human-in-the-loop, semi-automatic repair technique when no bug oracle--except for the user who is reporting the bug--is available. Our approach negotiates with the user the condition under which the bug is…

Software Engineering · Computer Science 2019-12-18 Marcel Böhme , Charaka Geethal , Van-Thuan Pham

Static analyzers help find bugs early by warning about recurring bug categories. While fixing these bugs still remains a mostly manual task in practice, we observe that fixes for a specific bug category often are repetitive. This paper…

Software Engineering · Computer Science 2019-11-22 Johannes Bader , Andrew Scott , Michael Pradel , Satish Chandra

Automated Program Repair (APR) is a task to automatically generate patches for the buggy code. However, most research focuses on generating correct patches while ignoring the consistency between the fixed code and the original buggy code.…

Software Engineering · Computer Science 2025-03-11 Zhenlong Dai , Bingrui Chen , Zhuoluo Zhao , Xiu Tang , Sai Wu , Chang Yao , Zhipeng Gao , Jingyuan Chen

Fuzz testing (fuzzing) is a well-known method for exposing bugs/vulnerabilities in software systems. Popular fuzzers, such as AFL, use a biased random search over the domain of program inputs, where 100s or 1000s of inputs (test cases) are…

Software Engineering · Computer Science 2023-08-02 Yuntong Zhang , Ridwan Shariffdeen , Gregory J. Duck , Jiaqi Tan , Abhik Roychoudhury

Techniques of Automatic Program Repair (APR) have the potential of thoroughly facilitating the task of producing quality software. After a promising start, however, progress in making APR practical has been hindered by the lack of a common…

Software Engineering · Computer Science 2024-02-23 Bertrand Meyer , Viktoryia Kananchuk , Li Huang

Double-fetch bugs are a special type of race condition, where an unprivileged execution thread is able to change a memory location between the time-of-check and time-of-use of a privileged execution thread. If an unprivileged attacker…

Cryptography and Security · Computer Science 2017-11-06 Michael Schwarz , Daniel Gruss , Moritz Lipp , Clémentine Maurice , Thomas Schuster , Anders Fogh , Stefan Mangard

Software patching is a common method of removing vulnerabilities in software components to make IT systems more secure. However, there are many cases where software patching is not possible due to the critical nature of the application,…

Cryptography and Security · Computer Science 2021-06-03 Stjepan Groš , Ivan Kovačević , Ivan Dujmić , Matej Petrinović