Stateful testing: Finding more errors in code and contracts

Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new t...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Wei, Yi, Roth, Hannes, Furia, Carlo A., Pei, Yu, Horton, Alexander, Steindorfer, Michael, Nordio, Martin, Meyer, Bertrand
Format: Tagungsbericht
Sprache:eng
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 443
container_issue
container_start_page 440
container_title
container_volume
creator Wei, Yi
Roth, Hannes
Furia, Carlo A.
Pei, Yu
Horton, Alexander
Steindorfer, Michael
Nordio, Martin
Meyer, Bertrand
description Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.
doi_str_mv 10.1109/ASE.2011.6100094
format Conference Proceeding
fullrecord <record><control><sourceid>acm_6IE</sourceid><recordid>TN_cdi_acm_books_10_1109_ASE_2011_6100094</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>6100094</ieee_id><sourcerecordid>acm_books_10_1109_ASE_2011_6100094</sourcerecordid><originalsourceid>FETCH-LOGICAL-a164t-4bdb48dbeed12bb5ed92dba12cbc5dc8565b26ea0818740834a0252ccc86b143</originalsourceid><addsrcrecordid>eNqNkDtLA0EUhccXuMaApWCT1mI3985rZ8oQ4gMCFkk_zJ2ZldXEyM5a-O_dkICWVqf4zr1wPsZuESpEsNPZalFxQKw0AoCVJ-wKpapr1MLaU1ZwLUWJquZnv8DAOSvQClNKAXDJxjm_Dcegtam1KdjNqvd9ar42kz7lvv14vWYXjd_kND7miK0fFuv5U7l8eXyez5alRy37UlIkaSKlFJETqRQtj-SRBwoqBqO0Iq6TB4OmlmCE9MAVDyEYTSjFiN0d3rYpJffZtVvffbvjsIHeH6gPW0e73Xt2CG4vwQ0S3F7Cn-70v11HXZsa8QNE2VVt</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Stateful testing: Finding more errors in code and contracts</title><source>IEEE Electronic Library (IEL) Conference Proceedings</source><creator>Wei, Yi ; Roth, Hannes ; Furia, Carlo A. ; Pei, Yu ; Horton, Alexander ; Steindorfer, Michael ; Nordio, Martin ; Meyer, Bertrand</creator><creatorcontrib>Wei, Yi ; Roth, Hannes ; Furia, Carlo A. ; Pei, Yu ; Horton, Alexander ; Steindorfer, Michael ; Nordio, Martin ; Meyer, Bertrand</creatorcontrib><description>Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.</description><identifier>ISSN: 1938-4300</identifier><identifier>ISBN: 1457716380</identifier><identifier>ISBN: 9781457716386</identifier><identifier>EISSN: 2643-1572</identifier><identifier>EISBN: 1457716399</identifier><identifier>EISBN: 9781457716393</identifier><identifier>DOI: 10.1109/ASE.2011.6100094</identifier><language>eng</language><publisher>Washington, DC, USA: IEEE Computer Society</publisher><subject>Arrays ; automation ; Contracts ; Data mining ; dynamic analysis ; random testing ; Search problems ; Testing</subject><ispartof>2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), 2011, p.440-443</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/6100094$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,780,784,789,790,2056,27924,54919</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/6100094$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Wei, Yi</creatorcontrib><creatorcontrib>Roth, Hannes</creatorcontrib><creatorcontrib>Furia, Carlo A.</creatorcontrib><creatorcontrib>Pei, Yu</creatorcontrib><creatorcontrib>Horton, Alexander</creatorcontrib><creatorcontrib>Steindorfer, Michael</creatorcontrib><creatorcontrib>Nordio, Martin</creatorcontrib><creatorcontrib>Meyer, Bertrand</creatorcontrib><title>Stateful testing: Finding more errors in code and contracts</title><title>2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011)</title><addtitle>ASE</addtitle><description>Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.</description><subject>Arrays</subject><subject>automation</subject><subject>Contracts</subject><subject>Data mining</subject><subject>dynamic analysis</subject><subject>random testing</subject><subject>Search problems</subject><subject>Testing</subject><issn>1938-4300</issn><issn>2643-1572</issn><isbn>1457716380</isbn><isbn>9781457716386</isbn><isbn>1457716399</isbn><isbn>9781457716393</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2011</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><sourceid>RIE</sourceid><recordid>eNqNkDtLA0EUhccXuMaApWCT1mI3985rZ8oQ4gMCFkk_zJ2ZldXEyM5a-O_dkICWVqf4zr1wPsZuESpEsNPZalFxQKw0AoCVJ-wKpapr1MLaU1ZwLUWJquZnv8DAOSvQClNKAXDJxjm_Dcegtam1KdjNqvd9ar42kz7lvv14vWYXjd_kND7miK0fFuv5U7l8eXyez5alRy37UlIkaSKlFJETqRQtj-SRBwoqBqO0Iq6TB4OmlmCE9MAVDyEYTSjFiN0d3rYpJffZtVvffbvjsIHeH6gPW0e73Xt2CG4vwQ0S3F7Cn-70v11HXZsa8QNE2VVt</recordid><startdate>20111106</startdate><enddate>20111106</enddate><creator>Wei, Yi</creator><creator>Roth, Hannes</creator><creator>Furia, Carlo A.</creator><creator>Pei, Yu</creator><creator>Horton, Alexander</creator><creator>Steindorfer, Michael</creator><creator>Nordio, Martin</creator><creator>Meyer, Bertrand</creator><general>IEEE Computer Society</general><general>IEEE</general><scope>6IE</scope><scope>6IL</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIL</scope></search><sort><creationdate>20111106</creationdate><title>Stateful testing</title><author>Wei, Yi ; Roth, Hannes ; Furia, Carlo A. ; Pei, Yu ; Horton, Alexander ; Steindorfer, Michael ; Nordio, Martin ; Meyer, Bertrand</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-a164t-4bdb48dbeed12bb5ed92dba12cbc5dc8565b26ea0818740834a0252ccc86b143</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2011</creationdate><topic>Arrays</topic><topic>automation</topic><topic>Contracts</topic><topic>Data mining</topic><topic>dynamic analysis</topic><topic>random testing</topic><topic>Search problems</topic><topic>Testing</topic><toplevel>online_resources</toplevel><creatorcontrib>Wei, Yi</creatorcontrib><creatorcontrib>Roth, Hannes</creatorcontrib><creatorcontrib>Furia, Carlo A.</creatorcontrib><creatorcontrib>Pei, Yu</creatorcontrib><creatorcontrib>Horton, Alexander</creatorcontrib><creatorcontrib>Steindorfer, Michael</creatorcontrib><creatorcontrib>Nordio, Martin</creatorcontrib><creatorcontrib>Meyer, Bertrand</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan All Online (POP All Online) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE Electronic Library (IEL)</collection><collection>IEEE Proceedings Order Plans (POP All) 1998-Present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Wei, Yi</au><au>Roth, Hannes</au><au>Furia, Carlo A.</au><au>Pei, Yu</au><au>Horton, Alexander</au><au>Steindorfer, Michael</au><au>Nordio, Martin</au><au>Meyer, Bertrand</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Stateful testing: Finding more errors in code and contracts</atitle><btitle>2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011)</btitle><stitle>ASE</stitle><date>2011-11-06</date><risdate>2011</risdate><spage>440</spage><epage>443</epage><pages>440-443</pages><issn>1938-4300</issn><eissn>2643-1572</eissn><isbn>1457716380</isbn><isbn>9781457716386</isbn><eisbn>1457716399</eisbn><eisbn>9781457716393</eisbn><abstract>Automated random testing has shown to be an effective approach to finding faults but still faces a major unsolved issue: how to generate test inputs diverse enough to find many faults and find them quickly. Stateful testing, the automated testing technique introduced in this article, generates new test cases that improve an existing test suite. The generated test cases are designed to violate the dynamically inferred contracts (invariants) characterizing the existing test suite. As a consequence, they are in a good position to detect new faults, and also to improve the accuracy of the inferred contracts by discovering those that are unsound. Experiments on 13 data structure classes totalling over 28,000 lines of code demonstrate the effectiveness of stateful testing in improving over the results of long sessions of random testing: stateful testing found 68.4% new faults and improved the accuracy of automatically inferred contracts to over 99%, with just a 7% time overhead.</abstract><cop>Washington, DC, USA</cop><pub>IEEE Computer Society</pub><doi>10.1109/ASE.2011.6100094</doi><tpages>4</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 1938-4300
ispartof 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), 2011, p.440-443
issn 1938-4300
2643-1572
language eng
recordid cdi_acm_books_10_1109_ASE_2011_6100094
source IEEE Electronic Library (IEL) Conference Proceedings
subjects Arrays
automation
Contracts
Data mining
dynamic analysis
random testing
Search problems
Testing
title Stateful testing: Finding more errors in code and contracts
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-11T03%3A10%3A46IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-acm_6IE&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Stateful%20testing:%20Finding%20more%20errors%20in%20code%20and%20contracts&rft.btitle=2011%2026th%20IEEE/ACM%20International%20Conference%20on%20Automated%20Software%20Engineering%20(ASE%202011)&rft.au=Wei,%20Yi&rft.date=2011-11-06&rft.spage=440&rft.epage=443&rft.pages=440-443&rft.issn=1938-4300&rft.eissn=2643-1572&rft.isbn=1457716380&rft.isbn_list=9781457716386&rft_id=info:doi/10.1109/ASE.2011.6100094&rft_dat=%3Cacm_6IE%3Eacm_books_10_1109_ASE_2011_6100094%3C/acm_6IE%3E%3Curl%3E%3C/url%3E&rft.eisbn=1457716399&rft.eisbn_list=9781457716393&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=6100094&rfr_iscdi=true