An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems

Summary Pure spectrum‐based fault localization (SBFL) is a well‐studied statistical debugging technique that only takes a set of test cases (some failing and some passing) and their code coverage as input and produces a ranked list of suspicious program elements to help the developer identify the lo...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software, practice & experience practice & experience, 2019-08, Vol.49 (8), p.1197-1224
Hauptverfasser: Heiden, Simon, Grunske, Lars, Kehrer, Timo, Keller, Fabian, Hoorn, Andre, Filieri, Antonio, Lo, David
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 1224
container_issue 8
container_start_page 1197
container_title Software, practice & experience
container_volume 49
creator Heiden, Simon
Grunske, Lars
Kehrer, Timo
Keller, Fabian
Hoorn, Andre
Filieri, Antonio
Lo, David
description Summary Pure spectrum‐based fault localization (SBFL) is a well‐studied statistical debugging technique that only takes a set of test cases (some failing and some passing) and their code coverage as input and produces a ranked list of suspicious program elements to help the developer identify the location of a bug that causes a failed test case. Studies show that pure SBFL techniques produce good ranked lists for small programs. However, our previous study based on the iBugs benchmark that uses the AspectJ repository shows that, for realistic programs, the accuracy of the ranked list is not suitable for human developers. In this paper, we confirm this based on a combined empirical evaluation with the iBugs and the Defects4J benchmark. Our experiments show that, on average, at most ∼40%, ∼80%, and ∼90% of the bugs can be localized reliably within the first 10, 100, and 1000 ranked lines, respectively, in the Defects4J benchmark. To reliably localize 90% of the bugs with the best performing SBFL metric D∗, ∼450 lines have to be inspected by the developer. For human developers, this remains unsuitable, although the results improve compared with the results for the AspectJ benchmark. Based on this study, we can clearly see the need to go beyond pure SBFL and take other information, such as information from the bug report or from version history of the code lines, into consideration.
doi_str_mv 10.1002/spe.2703
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2251680854</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2251680854</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3273-7e117c7a453bd18b1392a9c1503f85469f22daaad3d821c08db981190e0ffa2c3</originalsourceid><addsrcrecordid>eNp10E1LwzAcx_EgCs4p-BICXrx0_pP0IT2OMR9goKCCt5Cmyezompq0jnnyJfgafSWm1qunXD58_-GH0DmBGQGgV77VM5oBO0ATAnkWAY1fDtEEgPEI0jg-RifebwAISWg6Qet5g_W7rHvZVbbB1uC2dxqHiupcv_3-_Cqk1yU2sq87XFsl6-pjtJ1Wr0311muPjXW4lm6tg_eBhIA13U4Opb3v9NafoiMja6_P_t4per5ePi1uo9X9zd1ivooUoxmLMk1IpjIZJ6woCS8Iy6nMFUmAGZ7EaW4oLaWUJSs5JQp4WeSckBw0GCOpYlN0MXZbZ4evdWJje9eEk4LShKQcQiaoy1EpZ7132ojWVVvp9oKAGGYUYQAxzBhoNNJdVev9v048Pix__Q_JIXcW</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2251680854</pqid></control><display><type>article</type><title>An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems</title><source>Wiley Online Library Journals Frontfile Complete</source><creator>Heiden, Simon ; Grunske, Lars ; Kehrer, Timo ; Keller, Fabian ; Hoorn, Andre ; Filieri, Antonio ; Lo, David</creator><creatorcontrib>Heiden, Simon ; Grunske, Lars ; Kehrer, Timo ; Keller, Fabian ; Hoorn, Andre ; Filieri, Antonio ; Lo, David</creatorcontrib><description>Summary Pure spectrum‐based fault localization (SBFL) is a well‐studied statistical debugging technique that only takes a set of test cases (some failing and some passing) and their code coverage as input and produces a ranked list of suspicious program elements to help the developer identify the location of a bug that causes a failed test case. Studies show that pure SBFL techniques produce good ranked lists for small programs. However, our previous study based on the iBugs benchmark that uses the AspectJ repository shows that, for realistic programs, the accuracy of the ranked list is not suitable for human developers. In this paper, we confirm this based on a combined empirical evaluation with the iBugs and the Defects4J benchmark. Our experiments show that, on average, at most ∼40%, ∼80%, and ∼90% of the bugs can be localized reliably within the first 10, 100, and 1000 ranked lines, respectively, in the Defects4J benchmark. To reliably localize 90% of the bugs with the best performing SBFL metric D∗, ∼450 lines have to be inspected by the developer. For human developers, this remains unsuitable, although the results improve compared with the results for the AspectJ benchmark. Based on this study, we can clearly see the need to go beyond pure SBFL and take other information, such as information from the bug report or from version history of the code lines, into consideration.</description><identifier>ISSN: 0038-0644</identifier><identifier>EISSN: 1097-024X</identifier><identifier>DOI: 10.1002/spe.2703</identifier><language>eng</language><publisher>Bognor Regis: Wiley Subscription Services, Inc</publisher><subject>Benchmarks ; Debugging ; empirical studies ; fault localization ; Fault location ; Localization</subject><ispartof>Software, practice &amp; experience, 2019-08, Vol.49 (8), p.1197-1224</ispartof><rights>2019 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3273-7e117c7a453bd18b1392a9c1503f85469f22daaad3d821c08db981190e0ffa2c3</citedby><cites>FETCH-LOGICAL-c3273-7e117c7a453bd18b1392a9c1503f85469f22daaad3d821c08db981190e0ffa2c3</cites><orcidid>0000-0002-8747-3745</orcidid></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fspe.2703$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fspe.2703$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,776,780,1411,27901,27902,45550,45551</link.rule.ids></links><search><creatorcontrib>Heiden, Simon</creatorcontrib><creatorcontrib>Grunske, Lars</creatorcontrib><creatorcontrib>Kehrer, Timo</creatorcontrib><creatorcontrib>Keller, Fabian</creatorcontrib><creatorcontrib>Hoorn, Andre</creatorcontrib><creatorcontrib>Filieri, Antonio</creatorcontrib><creatorcontrib>Lo, David</creatorcontrib><title>An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems</title><title>Software, practice &amp; experience</title><description>Summary Pure spectrum‐based fault localization (SBFL) is a well‐studied statistical debugging technique that only takes a set of test cases (some failing and some passing) and their code coverage as input and produces a ranked list of suspicious program elements to help the developer identify the location of a bug that causes a failed test case. Studies show that pure SBFL techniques produce good ranked lists for small programs. However, our previous study based on the iBugs benchmark that uses the AspectJ repository shows that, for realistic programs, the accuracy of the ranked list is not suitable for human developers. In this paper, we confirm this based on a combined empirical evaluation with the iBugs and the Defects4J benchmark. Our experiments show that, on average, at most ∼40%, ∼80%, and ∼90% of the bugs can be localized reliably within the first 10, 100, and 1000 ranked lines, respectively, in the Defects4J benchmark. To reliably localize 90% of the bugs with the best performing SBFL metric D∗, ∼450 lines have to be inspected by the developer. For human developers, this remains unsuitable, although the results improve compared with the results for the AspectJ benchmark. Based on this study, we can clearly see the need to go beyond pure SBFL and take other information, such as information from the bug report or from version history of the code lines, into consideration.</description><subject>Benchmarks</subject><subject>Debugging</subject><subject>empirical studies</subject><subject>fault localization</subject><subject>Fault location</subject><subject>Localization</subject><issn>0038-0644</issn><issn>1097-024X</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><recordid>eNp10E1LwzAcx_EgCs4p-BICXrx0_pP0IT2OMR9goKCCt5Cmyezompq0jnnyJfgafSWm1qunXD58_-GH0DmBGQGgV77VM5oBO0ATAnkWAY1fDtEEgPEI0jg-RifebwAISWg6Qet5g_W7rHvZVbbB1uC2dxqHiupcv_3-_Cqk1yU2sq87XFsl6-pjtJ1Wr0311muPjXW4lm6tg_eBhIA13U4Opb3v9NafoiMja6_P_t4per5ePi1uo9X9zd1ivooUoxmLMk1IpjIZJ6woCS8Iy6nMFUmAGZ7EaW4oLaWUJSs5JQp4WeSckBw0GCOpYlN0MXZbZ4evdWJje9eEk4LShKQcQiaoy1EpZ7132ojWVVvp9oKAGGYUYQAxzBhoNNJdVev9v048Pix__Q_JIXcW</recordid><startdate>201908</startdate><enddate>201908</enddate><creator>Heiden, Simon</creator><creator>Grunske, Lars</creator><creator>Kehrer, Timo</creator><creator>Keller, Fabian</creator><creator>Hoorn, Andre</creator><creator>Filieri, Antonio</creator><creator>Lo, David</creator><general>Wiley Subscription Services, Inc</general><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>F28</scope><scope>FR3</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><orcidid>https://orcid.org/0000-0002-8747-3745</orcidid></search><sort><creationdate>201908</creationdate><title>An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems</title><author>Heiden, Simon ; Grunske, Lars ; Kehrer, Timo ; Keller, Fabian ; Hoorn, Andre ; Filieri, Antonio ; Lo, David</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3273-7e117c7a453bd18b1392a9c1503f85469f22daaad3d821c08db981190e0ffa2c3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Benchmarks</topic><topic>Debugging</topic><topic>empirical studies</topic><topic>fault localization</topic><topic>Fault location</topic><topic>Localization</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Heiden, Simon</creatorcontrib><creatorcontrib>Grunske, Lars</creatorcontrib><creatorcontrib>Kehrer, Timo</creatorcontrib><creatorcontrib>Keller, Fabian</creatorcontrib><creatorcontrib>Hoorn, Andre</creatorcontrib><creatorcontrib>Filieri, Antonio</creatorcontrib><creatorcontrib>Lo, David</creatorcontrib><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ANTE: Abstracts in New Technology &amp; Engineering</collection><collection>Engineering Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts – Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Software, practice &amp; experience</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Heiden, Simon</au><au>Grunske, Lars</au><au>Kehrer, Timo</au><au>Keller, Fabian</au><au>Hoorn, Andre</au><au>Filieri, Antonio</au><au>Lo, David</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems</atitle><jtitle>Software, practice &amp; experience</jtitle><date>2019-08</date><risdate>2019</risdate><volume>49</volume><issue>8</issue><spage>1197</spage><epage>1224</epage><pages>1197-1224</pages><issn>0038-0644</issn><eissn>1097-024X</eissn><abstract>Summary Pure spectrum‐based fault localization (SBFL) is a well‐studied statistical debugging technique that only takes a set of test cases (some failing and some passing) and their code coverage as input and produces a ranked list of suspicious program elements to help the developer identify the location of a bug that causes a failed test case. Studies show that pure SBFL techniques produce good ranked lists for small programs. However, our previous study based on the iBugs benchmark that uses the AspectJ repository shows that, for realistic programs, the accuracy of the ranked list is not suitable for human developers. In this paper, we confirm this based on a combined empirical evaluation with the iBugs and the Defects4J benchmark. Our experiments show that, on average, at most ∼40%, ∼80%, and ∼90% of the bugs can be localized reliably within the first 10, 100, and 1000 ranked lines, respectively, in the Defects4J benchmark. To reliably localize 90% of the bugs with the best performing SBFL metric D∗, ∼450 lines have to be inspected by the developer. For human developers, this remains unsuitable, although the results improve compared with the results for the AspectJ benchmark. Based on this study, we can clearly see the need to go beyond pure SBFL and take other information, such as information from the bug report or from version history of the code lines, into consideration.</abstract><cop>Bognor Regis</cop><pub>Wiley Subscription Services, Inc</pub><doi>10.1002/spe.2703</doi><tpages>29</tpages><orcidid>https://orcid.org/0000-0002-8747-3745</orcidid><oa>free_for_read</oa></addata></record>
fulltext fulltext
identifier ISSN: 0038-0644
ispartof Software, practice & experience, 2019-08, Vol.49 (8), p.1197-1224
issn 0038-0644
1097-024X
language eng
recordid cdi_proquest_journals_2251680854
source Wiley Online Library Journals Frontfile Complete
subjects Benchmarks
Debugging
empirical studies
fault localization
Fault location
Localization
title An evaluation of pure spectrum‐based fault localization techniques for large‐scale software systems
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-29T17%3A54%3A40IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=An%20evaluation%20of%20pure%20spectrum%E2%80%90based%20fault%20localization%20techniques%20for%20large%E2%80%90scale%20software%20systems&rft.jtitle=Software,%20practice%20&%20experience&rft.au=Heiden,%20Simon&rft.date=2019-08&rft.volume=49&rft.issue=8&rft.spage=1197&rft.epage=1224&rft.pages=1197-1224&rft.issn=0038-0644&rft.eissn=1097-024X&rft_id=info:doi/10.1002/spe.2703&rft_dat=%3Cproquest_cross%3E2251680854%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2251680854&rft_id=info:pmid/&rfr_iscdi=true