English
Related papers

Related papers: How Different Are Different diff Algorithms in Git…

200 papers

A vigorous and growing set of technical debt analysis tools have been developed in recent years -- both research tools and industrial products -- such as Structure 101, SonarQube, and DV8. Each of these tools identifies problematic files…

Software Engineering · Computer Science 2021-03-09 Jason Lefever , Yuanfang Cai , Humberto Cervantes , Rick Kazman , Hongzhou Fang

Source code diffs are used on a daily basis as part of code review, inspection, and auditing. To facilitate understanding, they are typically accompanied by explanations that describe the essence of what is changed in the program. As…

Software Engineering · Computer Science 2023-10-13 Khashayar Etemadi , Aman Sharma , Fernanda Madeiral , Martin Monperrus

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

Context: Data miners have been widely used in software engineering to, say, generate defect predictors from static code measures. Such static code defect predictors perform well compared to manual methods, and they are easy to use and…

Software Engineering · Computer Science 2016-09-12 Wei Fu , Tim Menzies , Xipeng Shen

The most natural method for evaluating program repair systems is to run them on bug datasets, such as Defects4J. Yet, using this evaluation technique on arbitrary real-world programs requires heavy configuration. In this paper, we propose a…

Software Engineering · Computer Science 2022-02-22 Khashayar Etemadi , Niloofar Tarighat , Siddharth Yadav , Matias Martinez , Martin Monperrus

Tangled code changes, commits that conflate unrelated modifications such as bug fixes, refactorings, and enhancements, introduce significant noise into bug datasets and adversely affect the performance of bug prediction models. Addressing…

Software Engineering · Computer Science 2025-10-28 Md Nahidul Islam Opu , Shaowei Wang , Shaiful Chowdhury

\textbf{A}ccuracy, \textbf{R}obustness to noises and scales, \textbf{I}nterpretability, \textbf{S}peed, and \textbf{E}asy to use (ARISE) are crucial requirements of a good clustering algorithm. However, achieving these goals simultaneously…

Machine Learning · Computer Science 2021-10-05 Zhangyang Gao , Haitao Lin , Cheng Tan , Lirong Wu , Stan. Z Li

Software maintenance and evolution involves critical activities for the success of software projects. To support such activities and keep code up-to-date and error-free, software communities make use of issue trackers, i.e., tools for…

Software Engineering · Computer Science 2021-07-22 Rafael Kallis , Andrea Di Sorbo , Gerardo Canfora , Sebastiano Panichella

Software source code often harbours "hotspots": small portions of the code that change far more often than the rest of the project and thus concentrate maintenance activity. We mine the complete version histories of 91 evolving, actively…

Software Engineering · Computer Science 2026-02-16 Saleha Muzammil , Mughees Ur Rehman , Zoe Kotti , Diomidis Spinellis

Mining repetitive code changes from version control history is a common way of discovering unknown change patterns. Such change patterns can be used in code recommender systems or automated program repair techniques. While there are such…

Software Engineering · Computer Science 2023-04-12 Akalanka Galappaththi , Sarah Nadi

Many software engineering research papers rely on time-based data (e.g., commit timestamps, issue report creation/update/close dates, release dates). Like most real-world data however, time-based data is often dirty. To date, there are no…

Software Engineering · Computer Science 2022-09-13 Samuel W. Flint , Jigyasa Chauhan , Robert Dyer

The source code of Function as a Service (FaaS) applications is constantly being refined. To detect if a source code change introduces a significant performance regression, the traditional benchmarking approach evaluates both the old and…

Distributed, Parallel, and Cluster Computing · Computer Science 2023-11-08 Martin Grambow , Tim Dockenfuß , Trever Schirmer , Nils Japke , David Bermbach

Golang (also known as Go for short) has become popular in building concurrency programs in distributed systems. As the unique features, Go employs lightweight Goroutines to support highly parallelism in user space. Moreover, Go leverages…

Programming Languages · Computer Science 2022-01-27 Chongxin Zhong , Qidong Zhao , Xu Liu

As the complexity and size of software projects increases in real-world environments, maintaining and creating maintainable and dependable code becomes harder and more costly. Refactoring is considered as a method for enhancing the internal…

Software Engineering · Computer Science 2018-11-27 Mohammad Raji

In software engineering, log statement is an important part because programmers can't access to users' program and they can only rely on log message to find the root of bugs. The mechanism of "log level" allows developers and users to…

Software Engineering · Computer Science 2019-12-12 Mingzhe Li , Jianrui Pei , Jin He , Kevin Song , Frank Che , Yongfeng Huang , Chitai Wang

Automatically detecting software failures is an important task and a longstanding challenge. It requires finding failure-inducing test cases whose test input can trigger the software's fault, and constructing an automated oracle to detect…

Software Engineering · Computer Science 2023-09-12 Tsz-On Li , Wenxi Zong , Yibo Wang , Haoye Tian , Ying Wang , Shing-Chi Cheung , Jeff Kramer

Incremental and parallel builds are crucial features of modern build systems. Parallelism enables fast builds by running independent tasks simultaneously, while incrementality saves time and computing resources by processing the build…

Software Engineering · Computer Science 2023-12-05 Thodoris Sotiropoulos , Stefanos Chaliasos , Dimitris Mitropoulos , Diomidis Spinellis

Currently, most machine learning models are trained by centralized teams and are rarely updated. In contrast, open-source software development involves the iterative development of a shared artifact through distributed collaboration using a…

Learning distributed representations of source code has been a challenging task for machine learning models. Earlier works treated programs as text so that natural language methods can be readily applied. Unfortunately, such approaches do…

Software Engineering · Computer Science 2020-05-28 Yu Wang , Fengjuan Gao , Linzhang Wang , Ke Wang

Much research on software engineering and software testing relies on experimental studies based on fault injection. Fault injection, however, is not often relevant to emulate real-world software faults since it "blindly" injects large…

Software Engineering · Computer Science 2022-08-15 Ahmed Khanfir , Anil Koyuncu , Mike Papadakis , Maxime Cordy , Tegawendé F. Bissyandé , Jacques Klein , Yves Le Traon