English
Related papers

Related papers: Refactoring-Aware Patch Integration Across Structu…

200 papers

Automated Code Revision (ACR) tools aim to reduce manual effort by automatically generating code revisions based on reviewer feedback. While ACR tools have shown promising performance on historical data, their real-world utility depends on…

Software Engineering · Computer Science 2026-02-17 Shirin Pirouzkhah , Souhaila Serbout , Alberto Bacchelli

In this paper, we first collect and track a large number of fixed and unfixed violations across revisions of software. The empirical analyses reveal that there are discrepancies in the distributions of violations that are detected and those…

Software Engineering · Computer Science 2018-10-10 Kui Liu , Dongsun Kim , Tegawendé F. Bissyandé , Shin Yoo , Yves Le Traon

Context: Branching has been widely adopted in version control to enable collaborative software development. However, the isolation caused by branches may impose challenges on the upcoming merging process. Recently, companies like Google,…

Software Engineering · Computer Science 2021-09-14 Eduardo Smil Prutchi , Heleno de Souza Campos Junior , Leonardo Gresta Paulino Murta

Previous studies have shown that Automated Program Repair (APR) techniques suffer from the overfitting problem. Overfitting happens when a patch is run and the test suite does not reveal any error, but the patch actually does not fix the…

Software Engineering · Computer Science 2024-08-28 Matias Martinez , Maria Kechagia , Anjana Perera , Justyna Petke , Federica Sarro , Aldeida Aleti

We revisit the performance of template-based APR to build comprehensive knowledge about the effectiveness of fix patterns, and to highlight the importance of complementary steps such as fault localization or donor code retrieval. To that…

Software Engineering · Computer Science 2019-06-07 Kui Liu , Anil Koyuncu , Dongsun Kim , Tegawendé F. Bissyandé

Promptly porting patches from a source codebase to its variants (e.g., forks and branches) is essential for mitigating propagated defects and vulnerabilities. Recent studies have explored automated patch porting to reduce manual effort and…

Software Engineering · Computer Science 2026-04-03 Shengyi Pan , Zhongxin Liu , Jiayuan Zhou , Xing Hu , Xin Xia , Shanping Li

The concept of Self-Affirmed Refactoring (SAR) was introduced to explore how developers document their refactoring activities in commit messages, i.e., developers' explicit documentation of refactoring operations intentionally introduced…

Software Engineering · Computer Science 2020-09-22 Eman Abdullah AlOmar , Mohamed Wiem Mkaouer , Ali Ouni

Many modern software projects evolve rapidly to incorporate new features and security patches. It is important for users to update their dependencies to safer versions, but many still use older, vulnerable package versions because upgrading…

Software Engineering · Computer Science 2025-12-02 Zhiqing Zhong , Jiaming Huang , Pinjia He

Processor designs rely on iterative modifications and reuse well-established designs. However, this reuse of prior designs also leads to similar vulnerabilities across multiple processors. As processors grow increasingly complex with…

Cryptography and Security · Computer Science 2025-12-09 Chen Chen , Zaiyan Xu , Mohamadreza Rostami , David Liu , Dileep Kalathil , Ahmad-Reza Sadeghi , Jeyavijayan Rajendran

Graphics Processing Units (GPUs) are widely used by various applications in a broad variety of fields to accelerate their computation but remain susceptible to transient hardware faults (soft errors) that can easily compromise application…

Software Engineering · Computer Science 2021-03-30 Lishan Yang , Bin Nie , Adwait Jog , Evgenia Smirni

Context. Refactoring has been widely investigated in the past in relation to production code quality, yet still little is known on how developers apply refactoring on test code. Specifically, there is still a lack of investigation into how…

Software Engineering · Computer Science 2023-08-21 Luana Martins , Valeria Pontillo , Heitor Costa , Filomena Ferrucci , Fabio Palomba , Ivan Machado

Static analysis tools, or linters, detect violation of source code conventions to maintain project readability. Those tools automatically fix specific violations while developers edit the source code. However, existing tools are designed…

Software Engineering · Computer Science 2020-05-25 Yuki Ueda , Takashi Ishio , Akinori Ihara , Kenichi Matsumoto

Understanding the reasons behind past code changes is critical for many software engineering tasks, including refactoring and reviewing code, diagnosing bugs, and implementing new features. Unfortunately, locating and reconstructing this…

Software Engineering · Computer Science 2026-04-14 Mehedi Sun , Antu Saha , Nadeeshan De Silva , Antonio Mastropaolo , Oscar Chaparro

Software remodularization through clustering is a common practice to improve internal software quality. However, the true benefit of software clustering is only realized if developers follow through with the recommended refactoring…

Software Engineering · Computer Science 2023-03-14 Alvin Jian Jia Tan , Chun Yong Chong , Aldeida Aleti

Tracking statements in the commit history of a project is in many cases useful for supporting various software maintenance, comprehension, and evolution tasks. A high level of accuracy can facilitate the adoption of code tracking tools by…

Software Engineering · Computer Science 2024-09-25 Mohammed Tayeeb Hasan , Nikolaos Tsantalis , Pouria Alikhanifard

Refactoring is an established technique from the object-oriented (OO) programming community to restructure code: it aims at improving software readability, maintainability and extensibility. Although refactoring is not tied to the…

Software Engineering · Computer Science 2007-05-23 Alexander Serebrenik , Tom Schrijvers , Bart Demoen

Open-source software is increasingly reused, complicating the process of patching to repair bugs. In the case of Linux, a distinct ecosystem has formed, with Linux mainline serving as the upstream, stable or long-term-support (LTS) systems…

Software Engineering · Computer Science 2024-02-09 Xingyu Li , Zheng Zhang , Zhiyun Qian , Trent Jaeger , Chengyu Song

Continuous Integration (CI) systems often run many builds concurrently. In this setting, a legitimate build failure may not be caused by the code push that triggered it. Such unrelated build failures can waste developer effort because…

Software Engineering · Computer Science 2026-05-08 Andie Huang , Daniel Alencar da Costa , Grant Dick , Mariam El Mezouar

Implementing new features across an entire codebase presents a formidable challenge for Large Language Models (LLMs). This proactive task requires a deep understanding of the global system architecture to prevent unintended disruptions to…

Software Engineering · Computer Science 2026-03-03 Mingwei Liu , Zhenxi Chen , Zheng Pei , Zihao Wang , Yanlin Wang , Zibin Zheng

The migration process between different third-party libraries is hard, complex and error-prone. Typically, during a library migration, developers need to find methods in the new library that are most adequate in replacing the old methods of…

Software Engineering · Computer Science 2019-06-07 Hussein Alrubaye , Mohamed Wiem Mkaouer , Ali Ouni