Fonte: Finding Bug Inducing Commits from Failures

A Bug Inducing Commit (BIC) is a commit that introduces a software bug into the codebase. Knowing the relevant BIC for a given bug can provide valuable information for debugging as well as bug triaging. However, existing BIC identification techniques are either too expensive (because they require th...

Full description

Saved in:
Bibliographic Details
Main Authors: An, Gabin, Hong, Jingun, Kim, Naryeong, Yoo, Shin
Format: Journal Article
Language:English
Published: 13-12-2022
Subjects:
Online Access:Get full text
Tags: Add Tag
No Tags, Be the first to tag this record!
Abstract A Bug Inducing Commit (BIC) is a commit that introduces a software bug into the codebase. Knowing the relevant BIC for a given bug can provide valuable information for debugging as well as bug triaging. However, existing BIC identification techniques are either too expensive (because they require the failing tests to be executed against previous versions for bisection) or inapplicable at the debugging time (because they require post hoc artefacts such as bug reports or bug fixes). We propose Fonte, an efficient and accurate BIC identification technique that only requires test coverage. Fonte combines Fault Localisation (FL) with BIC identification and ranks commits based on the suspiciousness of the code elements that they modified. Fonte reduces the search space of BICs using failure coverage as well as a filter that detects commits that are merely style changes. Our empirical evaluation using 130 real-world BICs shows that Fonte significantly outperforms state-of-the-art BIC identification techniques based on Information Retrieval as well as neural code embedding models, achieving at least 39% higher MRR. We also report that the ranking scores produced by Fonte can be used to perform weighted bisection, further reducing the cost of BIC identification. Finally, we apply Fonte to a large-scale industry project with over 10M lines of code, and show that it can rank the actual BIC within the top five commits for 87% of the studied real batch-testing failures, and save the BIC inspection cost by 32% on average.
AbstractList A Bug Inducing Commit (BIC) is a commit that introduces a software bug into the codebase. Knowing the relevant BIC for a given bug can provide valuable information for debugging as well as bug triaging. However, existing BIC identification techniques are either too expensive (because they require the failing tests to be executed against previous versions for bisection) or inapplicable at the debugging time (because they require post hoc artefacts such as bug reports or bug fixes). We propose Fonte, an efficient and accurate BIC identification technique that only requires test coverage. Fonte combines Fault Localisation (FL) with BIC identification and ranks commits based on the suspiciousness of the code elements that they modified. Fonte reduces the search space of BICs using failure coverage as well as a filter that detects commits that are merely style changes. Our empirical evaluation using 130 real-world BICs shows that Fonte significantly outperforms state-of-the-art BIC identification techniques based on Information Retrieval as well as neural code embedding models, achieving at least 39% higher MRR. We also report that the ranking scores produced by Fonte can be used to perform weighted bisection, further reducing the cost of BIC identification. Finally, we apply Fonte to a large-scale industry project with over 10M lines of code, and show that it can rank the actual BIC within the top five commits for 87% of the studied real batch-testing failures, and save the BIC inspection cost by 32% on average.
Author An, Gabin
Hong, Jingun
Kim, Naryeong
Yoo, Shin
Author_xml – sequence: 1
  givenname: Gabin
  surname: An
  fullname: An, Gabin
– sequence: 2
  givenname: Jingun
  surname: Hong
  fullname: Hong, Jingun
– sequence: 3
  givenname: Naryeong
  surname: Kim
  fullname: Kim, Naryeong
– sequence: 4
  givenname: Shin
  surname: Yoo
  fullname: Yoo, Shin
BackLink https://doi.org/10.48550/arXiv.2212.06376$$DView paper in arXiv
BookMark eNotzrtOwzAYhmEPMJTSC-iEbyCpD_WJDSJSKlVi6R79tX9XlhoHOQ2Cu0c9TJ_e5dPzRB7ykJGQJWf12irFVlB-008tBBc109LoGeHtkM_4StuUQ8pH-j4d6TaHyV-iGfo-nUcay9DTFtJpKjg-k8cIpxEX952Tffuxbz6r3ddm27ztKtBGV1GDdd6jsM6BhAMap4I0AXlcS4NOcMc8Y9Gj8pxLa721qIMC5EpAtHJOXm63V3P3XVIP5a-72LurXf4DqeE_vQ
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.2212.06376
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 2212_06376
GroupedDBID AKY
GOX
ID FETCH-LOGICAL-a676-f6a89cce2899a3abe795d37de1f437e92190c00fce5c11388c88e6d5ae152af83
IEDL.DBID GOX
IngestDate Mon Jan 08 05:41:28 EST 2024
IsDoiOpenAccess true
IsOpenAccess true
IsPeerReviewed false
IsScholarly false
Language English
LinkModel DirectLink
MergedId FETCHMERGED-LOGICAL-a676-f6a89cce2899a3abe795d37de1f437e92190c00fce5c11388c88e6d5ae152af83
OpenAccessLink https://arxiv.org/abs/2212.06376
ParticipantIDs arxiv_primary_2212_06376
PublicationCentury 2000
PublicationDate 2022-12-13
PublicationDateYYYYMMDD 2022-12-13
PublicationDate_xml – month: 12
  year: 2022
  text: 2022-12-13
  day: 13
PublicationDecade 2020
PublicationYear 2022
Score 1.8673984
SecondaryResourceType preprint
Snippet A Bug Inducing Commit (BIC) is a commit that introduces a software bug into the codebase. Knowing the relevant BIC for a given bug can provide valuable...
SourceID arxiv
SourceType Open Access Repository
SubjectTerms Computer Science - Software Engineering
Title Fonte: Finding Bug Inducing Commits from Failures
URI https://arxiv.org/abs/2212.06376
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://sdu.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwdV07T8MwED7RTiwIBKg85YE1wo7jR9h4NDDBQIdukZ8oC0JNg_j5-JwgWJC82L7lbPlevvsO4EpXtlalT26qFb6opIyF1TUtIqXO8Cikijl08aqe1_phiTA55KcWxmy-us8RH9j212WJoTqZHsEMZmWJKVuPL-vxczJDcU30v3TJxsxLf5REsw97k3VHbsfrOICd8H4IrEEEqBvSdLmChNwNbwQ7ZjicYIFGt-0JlnmQxnSYJd4fwapZru6fiqlTQWGkkkWURtfOBXReDDc2qFp4rnxgseIq1EkqUEdpdEE4xrjWTusgvTAhaU8TNT-GeXL2wwKIpYZF6ZPfYpMl45M-Rbx2ZkQSQ0nJ1CewyPy1HyMYRYust5n10_-3zmC3xLR9lgY_h_l2M4QLmPV-uMwn-g1TcXLX
link.rule.ids 228,230,782,887
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=Fonte%3A+Finding+Bug+Inducing+Commits+from+Failures&rft.au=An%2C+Gabin&rft.au=Hong%2C+Jingun&rft.au=Kim%2C+Naryeong&rft.au=Yoo%2C+Shin&rft.date=2022-12-13&rft_id=info:doi/10.48550%2Farxiv.2212.06376&rft.externalDocID=2212_06376