Evaluating SZZ Implementations Through a Developer-informed Oracle

The SZZ algorithm for identifying bug-inducing changes has been widely used to evaluate defect prediction techniques and to empirically investigate when, how, and by whom bugs are introduced. Over the years, researchers have proposed several heuristics to improve the SZZ accuracy, providing various...

Full description

Saved in:
Bibliographic Details
Main Authors Rosa, Giovanni, Pascarella, Luca, Scalabrino, Simone, Tufano, Rosalia, Bavota, Gabriele, Lanza, Michele, Oliveto, Rocco
Format Journal Article
LanguageEnglish
Published 05.02.2021
Subjects
Online AccessGet full text
DOI10.48550/arxiv.2102.03300

Cover

Abstract The SZZ algorithm for identifying bug-inducing changes has been widely used to evaluate defect prediction techniques and to empirically investigate when, how, and by whom bugs are introduced. Over the years, researchers have proposed several heuristics to improve the SZZ accuracy, providing various implementations of SZZ. However, fairly evaluating those implementations on a reliable oracle is an open problem: SZZ evaluations usually rely on (i) the manual analysis of the SZZ output to classify the identified bug-inducing commits as true or false positives; or (ii) a golden set linking bug-fixing and bug-inducing commits. In both cases, these manual evaluations are performed by researchers with limited knowledge of the studied subject systems. Ideally, there should be a golden set created by the original developers of the studied systems. We propose a methodology to build a "developer-informed" oracle for the evaluation of SZZ variants. We use Natural Language Processing (NLP) to identify bug-fixing commits in which developers explicitly reference the commit(s) that introduced a fixed bug. This was followed by a manual filtering step aimed at ensuring the quality and accuracy of the oracle. Once built, we used the oracle to evaluate several variants of the SZZ algorithm in terms of their accuracy. Our evaluation helped us to distill a set of lessons learned to further improve the SZZ algorithm.
AbstractList The SZZ algorithm for identifying bug-inducing changes has been widely used to evaluate defect prediction techniques and to empirically investigate when, how, and by whom bugs are introduced. Over the years, researchers have proposed several heuristics to improve the SZZ accuracy, providing various implementations of SZZ. However, fairly evaluating those implementations on a reliable oracle is an open problem: SZZ evaluations usually rely on (i) the manual analysis of the SZZ output to classify the identified bug-inducing commits as true or false positives; or (ii) a golden set linking bug-fixing and bug-inducing commits. In both cases, these manual evaluations are performed by researchers with limited knowledge of the studied subject systems. Ideally, there should be a golden set created by the original developers of the studied systems. We propose a methodology to build a "developer-informed" oracle for the evaluation of SZZ variants. We use Natural Language Processing (NLP) to identify bug-fixing commits in which developers explicitly reference the commit(s) that introduced a fixed bug. This was followed by a manual filtering step aimed at ensuring the quality and accuracy of the oracle. Once built, we used the oracle to evaluate several variants of the SZZ algorithm in terms of their accuracy. Our evaluation helped us to distill a set of lessons learned to further improve the SZZ algorithm.
Author Pascarella, Luca
Rosa, Giovanni
Lanza, Michele
Scalabrino, Simone
Bavota, Gabriele
Tufano, Rosalia
Oliveto, Rocco
Author_xml – sequence: 1
  givenname: Giovanni
  surname: Rosa
  fullname: Rosa, Giovanni
– sequence: 2
  givenname: Luca
  surname: Pascarella
  fullname: Pascarella, Luca
– sequence: 3
  givenname: Simone
  surname: Scalabrino
  fullname: Scalabrino, Simone
– sequence: 4
  givenname: Rosalia
  surname: Tufano
  fullname: Tufano, Rosalia
– sequence: 5
  givenname: Gabriele
  surname: Bavota
  fullname: Bavota, Gabriele
– sequence: 6
  givenname: Michele
  surname: Lanza
  fullname: Lanza, Michele
– sequence: 7
  givenname: Rocco
  surname: Oliveto
  fullname: Oliveto, Rocco
BackLink https://doi.org/10.48550/arXiv.2102.03300$$DView paper in arXiv
BookMark eNrjYmDJy89LZWCQNDTQM7EwNTXQTyyqyCzTMzI0MNIzMDY2MOBkcHItS8wpTSzJzEtXCI6KUvDMLchJzU3NKwEK5ecVK4RkFOWXpmcoJCq4pJal5uQXpBbpZual5RflpqYo-BclJuek8jCwpiXmFKfyQmluBnk31xBnD12wbfEFRZm5iUWV8SBb48G2GhNWAQC34jkk
ContentType Journal Article
Copyright http://arxiv.org/licenses/nonexclusive-distrib/1.0
Copyright_xml – notice: http://arxiv.org/licenses/nonexclusive-distrib/1.0
DBID AKY
GOX
DOI 10.48550/arxiv.2102.03300
DatabaseName arXiv Computer Science
arXiv.org
DatabaseTitleList
Database_xml – sequence: 1
  dbid: GOX
  name: arXiv.org
  url: http://arxiv.org/find
  sourceTypes: Open Access Repository
DeliveryMethod fulltext_linktorsrc
ExternalDocumentID 2102_03300
GroupedDBID AKY
GOX
ID FETCH-arxiv_primary_2102_033003
IEDL.DBID GOX
IngestDate Tue Jul 22 23:58:58 EDT 2025
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-arxiv_primary_2102_033003
OpenAccessLink https://arxiv.org/abs/2102.03300
ParticipantIDs arxiv_primary_2102_03300
PublicationCentury 2000
PublicationDate 2021-02-05
PublicationDateYYYYMMDD 2021-02-05
PublicationDate_xml – month: 02
  year: 2021
  text: 2021-02-05
  day: 05
PublicationDecade 2020
PublicationYear 2021
Score 3.500956
SecondaryResourceType preprint
Snippet The SZZ algorithm for identifying bug-inducing changes has been widely used to evaluate defect prediction techniques and to empirically investigate when, how,...
SourceID arxiv
SourceType Open Access Repository
SubjectTerms Computer Science - Software Engineering
Title Evaluating SZZ Implementations Through a Developer-informed Oracle
URI https://arxiv.org/abs/2102.03300
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwY2BQAbUpTIEpQdfE1DhRF9i-TdRNtEg20E0yNkhJBnYALM2TQB1FXz8zj1ATrwjTCCYGBdhemMSiiswyyPnAScX6oP6IngGwyw3slDMbGYE6V-7-EZDJSfBRXFD1CHXANiZYCKmScBNk4Ie27hQcIdEhxMCUmifC4OQKPVE7L10hOCpKAXwgby50z09esUII5KochUQF6Aqe1CJdyHmmqSkK_kWJQJNEGeTdXEOcPXTBtsYXQI6IiAc5KB7sIGMxBhZgRz5VgkHB2CwpEZidjY0tzVJNTFPNE03NTAyTzFIszFKMjVPSUiQZJHCZIoVbSpqBywi0zgK0kthUhoGlpKg0VRZYUZYkyYFDCwAgYWvs
linkProvider Cornell University
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Evaluating+SZZ+Implementations+Through+a+Developer-informed+Oracle&rft.au=Rosa%2C+Giovanni&rft.au=Pascarella%2C+Luca&rft.au=Scalabrino%2C+Simone&rft.au=Tufano%2C+Rosalia&rft.date=2021-02-05&rft_id=info:doi/10.48550%2Farxiv.2102.03300&rft.externalDocID=2102_03300