Evaluating SZZ implementations : An empirical study on the Linux Kernel

The SZZ algorithm is used to connect bug-fixing commits to the earlier commits that introduced bugs. This algorithm has many applications and many variants have been devised. However, there are some types of commits that cannot be traced by the SZZ algorithm, referred to as “ghost commits”. The eval...

Full description

Saved in:
Bibliographic Details
Main Authors: LYU, Yunbo, KANG, Hong Jin, WIDYASARI, Ratnadira, LAWALL, Julia, LO, David
Format: text
Language:English
Published: Institutional Knowledge at Singapore Management University 2024
Subjects:
Online Access:https://ink.library.smu.edu.sg/sis_research/9849
https://ink.library.smu.edu.sg/context/sis_research/article/10849/viewcontent/2308.05060v2.pdf
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-10849
record_format dspace
spelling sg-smu-ink.sis_research-108492024-12-24T03:23:27Z Evaluating SZZ implementations : An empirical study on the Linux Kernel LYU, Yunbo KANG, Hong Jin WIDYASARI, Ratnadira LAWALL, Julia LO, David The SZZ algorithm is used to connect bug-fixing commits to the earlier commits that introduced bugs. This algorithm has many applications and many variants have been devised. However, there are some types of commits that cannot be traced by the SZZ algorithm, referred to as “ghost commits”. The evaluation of how these ghost commits impact the SZZ implementations remains limited. Moreover, these implementations have been evaluated on datasets created by software engineering researchers from information in bug trackers and version controlled histories. Since Oct 2013, the Linux kernel developers have started labelling bug-fixing patches with the commit identifiers of the corresponding bug-inducing commit(s) as a standard practice. As of v6.1-rc5, 76,046 pairs of bug-fixing patches and bug-inducing commits are available. This provides a unique opportunity to evaluate the SZZ algorithm on a large dataset that has been created and reviewed by project developers, entirely independently of the biases of software engineering researchers. In this paper, we apply six SZZ implementations to 76,046 pairs of bug-fixing patches and bug-introducing commits from the Linux kernel. Our findings reveal that SZZ algorithms experience a more significant decline in recall on our dataset ( $\downarrow 13.8\%$ ) as compared to prior findings reported by Rosa et al., and the disparities between the individual SZZ algorithms diminish. Moreover, we find that 17.47% of bug-fixing commits are ghost commits. Finally, we propose Tracing-Commit SZZ (TC-SZZ), that traces all commits in the change history of lines modified or deleted in bug-fixing commits. Applying TC-SZZ to all failure cases, excluding ghost commits, we found that TC-SZZ could identify 17.7% of them. Our further analysis based on git log found that 34.6% of bug-inducing commits were in the function history, 27.5% in the file history (but not in the function history), and 37.9% not in the file history. We further evaluated the effectiveness of ChatGPT in boosting the SZZ algorithm's ability to identify bug-inducing commits in the function history, in the file history and not in the file history. 2024-09-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/9849 info:doi/10.1109/TSE.2024.3406718 https://ink.library.smu.edu.sg/context/sis_research/article/10849/viewcontent/2308.05060v2.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University SZZ algorithm Defect prediction Empirical study ChatGPT OS and Networks Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic SZZ algorithm
Defect prediction
Empirical study
ChatGPT
OS and Networks
Software Engineering
spellingShingle SZZ algorithm
Defect prediction
Empirical study
ChatGPT
OS and Networks
Software Engineering
LYU, Yunbo
KANG, Hong Jin
WIDYASARI, Ratnadira
LAWALL, Julia
LO, David
Evaluating SZZ implementations : An empirical study on the Linux Kernel
description The SZZ algorithm is used to connect bug-fixing commits to the earlier commits that introduced bugs. This algorithm has many applications and many variants have been devised. However, there are some types of commits that cannot be traced by the SZZ algorithm, referred to as “ghost commits”. The evaluation of how these ghost commits impact the SZZ implementations remains limited. Moreover, these implementations have been evaluated on datasets created by software engineering researchers from information in bug trackers and version controlled histories. Since Oct 2013, the Linux kernel developers have started labelling bug-fixing patches with the commit identifiers of the corresponding bug-inducing commit(s) as a standard practice. As of v6.1-rc5, 76,046 pairs of bug-fixing patches and bug-inducing commits are available. This provides a unique opportunity to evaluate the SZZ algorithm on a large dataset that has been created and reviewed by project developers, entirely independently of the biases of software engineering researchers. In this paper, we apply six SZZ implementations to 76,046 pairs of bug-fixing patches and bug-introducing commits from the Linux kernel. Our findings reveal that SZZ algorithms experience a more significant decline in recall on our dataset ( $\downarrow 13.8\%$ ) as compared to prior findings reported by Rosa et al., and the disparities between the individual SZZ algorithms diminish. Moreover, we find that 17.47% of bug-fixing commits are ghost commits. Finally, we propose Tracing-Commit SZZ (TC-SZZ), that traces all commits in the change history of lines modified or deleted in bug-fixing commits. Applying TC-SZZ to all failure cases, excluding ghost commits, we found that TC-SZZ could identify 17.7% of them. Our further analysis based on git log found that 34.6% of bug-inducing commits were in the function history, 27.5% in the file history (but not in the function history), and 37.9% not in the file history. We further evaluated the effectiveness of ChatGPT in boosting the SZZ algorithm's ability to identify bug-inducing commits in the function history, in the file history and not in the file history.
format text
author LYU, Yunbo
KANG, Hong Jin
WIDYASARI, Ratnadira
LAWALL, Julia
LO, David
author_facet LYU, Yunbo
KANG, Hong Jin
WIDYASARI, Ratnadira
LAWALL, Julia
LO, David
author_sort LYU, Yunbo
title Evaluating SZZ implementations : An empirical study on the Linux Kernel
title_short Evaluating SZZ implementations : An empirical study on the Linux Kernel
title_full Evaluating SZZ implementations : An empirical study on the Linux Kernel
title_fullStr Evaluating SZZ implementations : An empirical study on the Linux Kernel
title_full_unstemmed Evaluating SZZ implementations : An empirical study on the Linux Kernel
title_sort evaluating szz implementations : an empirical study on the linux kernel
publisher Institutional Knowledge at Singapore Management University
publishDate 2024
url https://ink.library.smu.edu.sg/sis_research/9849
https://ink.library.smu.edu.sg/context/sis_research/article/10849/viewcontent/2308.05060v2.pdf
_version_ 1820027798979346432