Automated Customized Bug-Benchmark Generation

IEEE SCAM 2019 We introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis too...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Kashyap, Vineeth, Ruchti, Jason, Kot, Lucja, Turetsky, Emma, Swords, Rebecca, Pan, Shih An, Henry, Julien, Melski, David, Schulte, Eric
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Kashyap, Vineeth
Ruchti, Jason
Kot, Lucja
Turetsky, Emma
Swords, Rebecca
Pan, Shih An
Henry, Julien
Melski, David
Schulte, Eric
description IEEE SCAM 2019 We introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to inject a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools.
doi_str_mv 10.48550/arxiv.1901.02819
format Article
fullrecord <record><control><sourceid>arxiv_GOX</sourceid><recordid>TN_cdi_arxiv_primary_1901_02819</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1901_02819</sourcerecordid><originalsourceid>FETCH-LOGICAL-a679-f974aaad89650790c97c2259eda5963b266fcab6fcd74f67c5f2ea289ff5a6b73</originalsourceid><addsrcrecordid>eNotzrsOgjAYBeAuDgZ9ACd9gWIptOUfgXhLTFzYyU9plahguBj16cXLcs6ZTj5CZh5zg1AItsTmUd5dD5jnMh56MCY06rv6ip0pFknfDrN8DTPujzQ2lT5dsTkvNqYyDXZlXU3IyOKlNdN_OyRdr9JkS_eHzS6J9hSlAmpBBYhYhCAFU8A0KM25AFOgAOnnXEqrMR-iUIGVSgvLDfIQrBUoc-U7ZP67_XqzW1MOjmf2cWdft_8Ge9U9fw</addsrcrecordid><sourcetype>Open Access Repository</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype></control><display><type>article</type><title>Automated Customized Bug-Benchmark Generation</title><source>arXiv.org</source><creator>Kashyap, Vineeth ; Ruchti, Jason ; Kot, Lucja ; Turetsky, Emma ; Swords, Rebecca ; Pan, Shih An ; Henry, Julien ; Melski, David ; Schulte, Eric</creator><creatorcontrib>Kashyap, Vineeth ; Ruchti, Jason ; Kot, Lucja ; Turetsky, Emma ; Swords, Rebecca ; Pan, Shih An ; Henry, Julien ; Melski, David ; Schulte, Eric</creatorcontrib><description>IEEE SCAM 2019 We introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to inject a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools.</description><identifier>DOI: 10.48550/arxiv.1901.02819</identifier><language>eng</language><subject>Computer Science - Programming Languages ; Computer Science - Software Engineering</subject><creationdate>2019-01</creationdate><rights>http://arxiv.org/licenses/nonexclusive-distrib/1.0</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>228,230,780,885</link.rule.ids><linktorsrc>$$Uhttps://arxiv.org/abs/1901.02819$$EView_record_in_Cornell_University$$FView_record_in_$$GCornell_University$$Hfree_for_read</linktorsrc><backlink>$$Uhttps://doi.org/10.48550/arXiv.1901.02819$$DView paper in arXiv$$Hfree_for_read</backlink></links><search><creatorcontrib>Kashyap, Vineeth</creatorcontrib><creatorcontrib>Ruchti, Jason</creatorcontrib><creatorcontrib>Kot, Lucja</creatorcontrib><creatorcontrib>Turetsky, Emma</creatorcontrib><creatorcontrib>Swords, Rebecca</creatorcontrib><creatorcontrib>Pan, Shih An</creatorcontrib><creatorcontrib>Henry, Julien</creatorcontrib><creatorcontrib>Melski, David</creatorcontrib><creatorcontrib>Schulte, Eric</creatorcontrib><title>Automated Customized Bug-Benchmark Generation</title><description>IEEE SCAM 2019 We introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to inject a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools.</description><subject>Computer Science - Programming Languages</subject><subject>Computer Science - Software Engineering</subject><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><sourceid>GOX</sourceid><recordid>eNotzrsOgjAYBeAuDgZ9ACd9gWIptOUfgXhLTFzYyU9plahguBj16cXLcs6ZTj5CZh5zg1AItsTmUd5dD5jnMh56MCY06rv6ip0pFknfDrN8DTPujzQ2lT5dsTkvNqYyDXZlXU3IyOKlNdN_OyRdr9JkS_eHzS6J9hSlAmpBBYhYhCAFU8A0KM25AFOgAOnnXEqrMR-iUIGVSgvLDfIQrBUoc-U7ZP67_XqzW1MOjmf2cWdft_8Ge9U9fw</recordid><startdate>20190109</startdate><enddate>20190109</enddate><creator>Kashyap, Vineeth</creator><creator>Ruchti, Jason</creator><creator>Kot, Lucja</creator><creator>Turetsky, Emma</creator><creator>Swords, Rebecca</creator><creator>Pan, Shih An</creator><creator>Henry, Julien</creator><creator>Melski, David</creator><creator>Schulte, Eric</creator><scope>AKY</scope><scope>GOX</scope></search><sort><creationdate>20190109</creationdate><title>Automated Customized Bug-Benchmark Generation</title><author>Kashyap, Vineeth ; Ruchti, Jason ; Kot, Lucja ; Turetsky, Emma ; Swords, Rebecca ; Pan, Shih An ; Henry, Julien ; Melski, David ; Schulte, Eric</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a679-f974aaad89650790c97c2259eda5963b266fcab6fcd74f67c5f2ea289ff5a6b73</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Computer Science - Programming Languages</topic><topic>Computer Science - Software Engineering</topic><toplevel>online_resources</toplevel><creatorcontrib>Kashyap, Vineeth</creatorcontrib><creatorcontrib>Ruchti, Jason</creatorcontrib><creatorcontrib>Kot, Lucja</creatorcontrib><creatorcontrib>Turetsky, Emma</creatorcontrib><creatorcontrib>Swords, Rebecca</creatorcontrib><creatorcontrib>Pan, Shih An</creatorcontrib><creatorcontrib>Henry, Julien</creatorcontrib><creatorcontrib>Melski, David</creatorcontrib><creatorcontrib>Schulte, Eric</creatorcontrib><collection>arXiv Computer Science</collection><collection>arXiv.org</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Kashyap, Vineeth</au><au>Ruchti, Jason</au><au>Kot, Lucja</au><au>Turetsky, Emma</au><au>Swords, Rebecca</au><au>Pan, Shih An</au><au>Henry, Julien</au><au>Melski, David</au><au>Schulte, Eric</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Automated Customized Bug-Benchmark Generation</atitle><date>2019-01-09</date><risdate>2019</risdate><abstract>IEEE SCAM 2019 We introduce Bug-Injector, a system that automatically creates benchmarks for customized evaluation of static analysis tools. We share a benchmark generated using Bug-Injector and illustrate its efficacy by using it to evaluate the recall of two leading open-source static analysis tools: Clang Static Analyzer and Infer. Bug-Injector works by inserting bugs based on bug templates into real-world host programs. It runs tests on the host program to collect dynamic traces, searches the traces for a point where the state satisfies the preconditions for some bug template, then modifies the host program to inject a bug based on that template. Injected bugs are used as test cases in a static analysis tool evaluation benchmark. Every test case is accompanied by a program input that exercises the injected bug. We have identified a broad range of requirements and desiderata for bug benchmarks; our approach generates on-demand test benchmarks that meet these requirements. It also allows us to create customized benchmarks suitable for evaluating tools for a specific use case (e.g., a given codebase and set of bug types). Our experimental evaluation demonstrates the suitability of our generated benchmark for evaluating static bug-detection tools and for comparing the performance of different tools.</abstract><doi>10.48550/arxiv.1901.02819</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier DOI: 10.48550/arxiv.1901.02819
ispartof
issn
language eng
recordid cdi_arxiv_primary_1901_02819
source arXiv.org
subjects Computer Science - Programming Languages
Computer Science - Software Engineering
title Automated Customized Bug-Benchmark Generation
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-03T01%3A20%3A49IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-arxiv_GOX&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Automated%20Customized%20Bug-Benchmark%20Generation&rft.au=Kashyap,%20Vineeth&rft.date=2019-01-09&rft_id=info:doi/10.48550/arxiv.1901.02819&rft_dat=%3Carxiv_GOX%3E1901_02819%3C/arxiv_GOX%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true