Advances in noise-based testing of concurrent software

SummaryTesting of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the s...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software testing, verification & reliability verification & reliability, 2015-05, Vol.25 (3), p.272-309
Hauptverfasser: Fiedor, J., Hrubá, V., Křena, B., Letko, Z., Ur, S., Vojnar, T.
Format: Artikel
Sprache:eng
Schlagworte:
Online-Zugang:Volltext
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page 309
container_issue 3
container_start_page 272
container_title Software testing, verification & reliability
container_volume 25
creator Fiedor, J.
Hrubá, V.
Křena, B.
Letko, Z.
Ur, S.
Vojnar, T.
description SummaryTesting of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright © 2014 John Wiley & Sons, Ltd. The paper presents multiple recent achievements from the area of noise‐based testing of concurrent software, which is based on influencing the scheduling in order to witness many different thread interleavings. Multiple noise heuristics (defining where, when and how to inject noise) are introduced, including several previously unpublished ones, and experimentally evaluated using concurrency coverage metrics. Further, recommendations for setting up noise‐based testing are given together with a novel use of the genetic algorithm for finding suitable parameters of noise‐based tests.
doi_str_mv 10.1002/stvr.1546
format Article
fullrecord <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_miscellaneous_1685776186</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1685776186</sourcerecordid><originalsourceid>FETCH-LOGICAL-c4386-a277bff6390995971a0f93ec88f6c50c309508d84638a6625a869d4c02cf779b3</originalsourceid><addsrcrecordid>eNp10DtPwzAUBWALgUQpDPyDSCwwhF7H8bU9FsRLVDzLY7Nc10YpbQJ2AvTfkyqIAYnJy3eujg8huxQOKUA2iPVHOKQ8xzXSo6BUSlGqddIDhZCCZGyTbMU4AwBUqHoEh9MPU1oXk6JMyqqILp2Y6KZJ7WJdlC9J5RNblbYJwZV1Eitff5rgtsmGN_Podn7ePnk4PRkfn6ej67OL4-EotTmTmJpMiIn3yFRbhStBDXjFnJXSo-VgGSgOcipzZNIgZtxIVNPcQma9EGrC-mS_u_sWqvemraQXRbRuPjelq5qo299xIZBKbOneHzqrmlC27VolMgmcZ6JVB52yoYoxOK_fQrEwYakp6NWCerWgXi3Y2kFnP4u5W_4P9f348e4nkXaJItbu6zdhwqtGwQTXT1dn-hnvb25P6ZG-ZN-6MIBZ</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1672805527</pqid></control><display><type>article</type><title>Advances in noise-based testing of concurrent software</title><source>Wiley Online Library Journals Frontfile Complete</source><creator>Fiedor, J. ; Hrubá, V. ; Křena, B. ; Letko, Z. ; Ur, S. ; Vojnar, T.</creator><creatorcontrib>Fiedor, J. ; Hrubá, V. ; Křena, B. ; Letko, Z. ; Ur, S. ; Vojnar, T.</creatorcontrib><description>SummaryTesting of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright © 2014 John Wiley &amp; Sons, Ltd. The paper presents multiple recent achievements from the area of noise‐based testing of concurrent software, which is based on influencing the scheduling in order to witness many different thread interleavings. Multiple noise heuristics (defining where, when and how to inject noise) are introduced, including several previously unpublished ones, and experimentally evaluated using concurrency coverage metrics. Further, recommendations for setting up noise‐based testing are given together with a novel use of the genetic algorithm for finding suitable parameters of noise‐based tests.</description><identifier>ISSN: 0960-0833</identifier><identifier>EISSN: 1099-1689</identifier><identifier>DOI: 10.1002/stvr.1546</identifier><identifier>CODEN: JTREET</identifier><language>eng</language><publisher>Chichester: Blackwell Publishing Ltd</publisher><subject>Computer programs ; Concurrency ; coverage metrics ; dynamic analysis ; genetic algorithm ; Genetic algorithms ; Heuristic ; Java (programming language) ; meta-heuristic algorithms ; multi-threaded software ; Noise ; Noise generation ; noise injection ; Scheduling ; Software ; testing</subject><ispartof>Software testing, verification &amp; reliability, 2015-05, Vol.25 (3), p.272-309</ispartof><rights>Copyright © 2014 John Wiley &amp; Sons, Ltd.</rights><rights>Copyright © 2015 John Wiley &amp; Sons, Ltd.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c4386-a277bff6390995971a0f93ec88f6c50c309508d84638a6625a869d4c02cf779b3</citedby><cites>FETCH-LOGICAL-c4386-a277bff6390995971a0f93ec88f6c50c309508d84638a6625a869d4c02cf779b3</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fstvr.1546$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fstvr.1546$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,777,781,1412,27905,27906,45555,45556</link.rule.ids></links><search><creatorcontrib>Fiedor, J.</creatorcontrib><creatorcontrib>Hrubá, V.</creatorcontrib><creatorcontrib>Křena, B.</creatorcontrib><creatorcontrib>Letko, Z.</creatorcontrib><creatorcontrib>Ur, S.</creatorcontrib><creatorcontrib>Vojnar, T.</creatorcontrib><title>Advances in noise-based testing of concurrent software</title><title>Software testing, verification &amp; reliability</title><addtitle>Softw. Test. Verif. Reliab</addtitle><description>SummaryTesting of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright © 2014 John Wiley &amp; Sons, Ltd. The paper presents multiple recent achievements from the area of noise‐based testing of concurrent software, which is based on influencing the scheduling in order to witness many different thread interleavings. Multiple noise heuristics (defining where, when and how to inject noise) are introduced, including several previously unpublished ones, and experimentally evaluated using concurrency coverage metrics. Further, recommendations for setting up noise‐based testing are given together with a novel use of the genetic algorithm for finding suitable parameters of noise‐based tests.</description><subject>Computer programs</subject><subject>Concurrency</subject><subject>coverage metrics</subject><subject>dynamic analysis</subject><subject>genetic algorithm</subject><subject>Genetic algorithms</subject><subject>Heuristic</subject><subject>Java (programming language)</subject><subject>meta-heuristic algorithms</subject><subject>multi-threaded software</subject><subject>Noise</subject><subject>Noise generation</subject><subject>noise injection</subject><subject>Scheduling</subject><subject>Software</subject><subject>testing</subject><issn>0960-0833</issn><issn>1099-1689</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2015</creationdate><recordtype>article</recordtype><recordid>eNp10DtPwzAUBWALgUQpDPyDSCwwhF7H8bU9FsRLVDzLY7Nc10YpbQJ2AvTfkyqIAYnJy3eujg8huxQOKUA2iPVHOKQ8xzXSo6BUSlGqddIDhZCCZGyTbMU4AwBUqHoEh9MPU1oXk6JMyqqILp2Y6KZJ7WJdlC9J5RNblbYJwZV1Eitff5rgtsmGN_Podn7ePnk4PRkfn6ej67OL4-EotTmTmJpMiIn3yFRbhStBDXjFnJXSo-VgGSgOcipzZNIgZtxIVNPcQma9EGrC-mS_u_sWqvemraQXRbRuPjelq5qo299xIZBKbOneHzqrmlC27VolMgmcZ6JVB52yoYoxOK_fQrEwYakp6NWCerWgXi3Y2kFnP4u5W_4P9f348e4nkXaJItbu6zdhwqtGwQTXT1dn-hnvb25P6ZG-ZN-6MIBZ</recordid><startdate>201505</startdate><enddate>201505</enddate><creator>Fiedor, J.</creator><creator>Hrubá, V.</creator><creator>Křena, B.</creator><creator>Letko, Z.</creator><creator>Ur, S.</creator><creator>Vojnar, T.</creator><general>Blackwell Publishing Ltd</general><general>Wiley Subscription Services, Inc</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201505</creationdate><title>Advances in noise-based testing of concurrent software</title><author>Fiedor, J. ; Hrubá, V. ; Křena, B. ; Letko, Z. ; Ur, S. ; Vojnar, T.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c4386-a277bff6390995971a0f93ec88f6c50c309508d84638a6625a869d4c02cf779b3</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2015</creationdate><topic>Computer programs</topic><topic>Concurrency</topic><topic>coverage metrics</topic><topic>dynamic analysis</topic><topic>genetic algorithm</topic><topic>Genetic algorithms</topic><topic>Heuristic</topic><topic>Java (programming language)</topic><topic>meta-heuristic algorithms</topic><topic>multi-threaded software</topic><topic>Noise</topic><topic>Noise generation</topic><topic>noise injection</topic><topic>Scheduling</topic><topic>Software</topic><topic>testing</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Fiedor, J.</creatorcontrib><creatorcontrib>Hrubá, V.</creatorcontrib><creatorcontrib>Křena, B.</creatorcontrib><creatorcontrib>Letko, Z.</creatorcontrib><creatorcontrib>Ur, S.</creatorcontrib><creatorcontrib>Vojnar, T.</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology 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 testing, verification &amp; reliability</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Fiedor, J.</au><au>Hrubá, V.</au><au>Křena, B.</au><au>Letko, Z.</au><au>Ur, S.</au><au>Vojnar, T.</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Advances in noise-based testing of concurrent software</atitle><jtitle>Software testing, verification &amp; reliability</jtitle><addtitle>Softw. Test. Verif. Reliab</addtitle><date>2015-05</date><risdate>2015</risdate><volume>25</volume><issue>3</issue><spage>272</spage><epage>309</epage><pages>272-309</pages><issn>0960-0833</issn><eissn>1099-1689</eissn><coden>JTREET</coden><abstract>SummaryTesting of concurrent software written in programming languages like Java and C/C++ is a highly challenging task owing to the many possible interactions among threads. A simple, cheap, and effective approach that addresses this challenge is testing with noise injection, which influences the scheduling so that different interleavings of concurrent actions are witnessed. In this paper, multiple results achieved recently in the area of noise‐injection‐based testing by the authors are presented in a unified and extended way. In particular, various concurrency coverage metrics are presented first. Then, multiple heuristics for solving the noise placement problem (i.e. where and when to generate noise) as well as the noise seeding problem (i.e. how to generate the noise) are introduced and experimentally evaluated. In addition, several new heuristics are proposed and included into the evaluation too. Recommendations on how to set up noise‐based testing for particular scenarios are then given. Finally, a novel use of the genetic algorithm for finding suitable combinations of the many parameters of tests and noise techniques is presented. Copyright © 2014 John Wiley &amp; Sons, Ltd. The paper presents multiple recent achievements from the area of noise‐based testing of concurrent software, which is based on influencing the scheduling in order to witness many different thread interleavings. Multiple noise heuristics (defining where, when and how to inject noise) are introduced, including several previously unpublished ones, and experimentally evaluated using concurrency coverage metrics. Further, recommendations for setting up noise‐based testing are given together with a novel use of the genetic algorithm for finding suitable parameters of noise‐based tests.</abstract><cop>Chichester</cop><pub>Blackwell Publishing Ltd</pub><doi>10.1002/stvr.1546</doi><tpages>38</tpages></addata></record>
fulltext fulltext
identifier ISSN: 0960-0833
ispartof Software testing, verification & reliability, 2015-05, Vol.25 (3), p.272-309
issn 0960-0833
1099-1689
language eng
recordid cdi_proquest_miscellaneous_1685776186
source Wiley Online Library Journals Frontfile Complete
subjects Computer programs
Concurrency
coverage metrics
dynamic analysis
genetic algorithm
Genetic algorithms
Heuristic
Java (programming language)
meta-heuristic algorithms
multi-threaded software
Noise
Noise generation
noise injection
Scheduling
Software
testing
title Advances in noise-based testing of concurrent software
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-20T04%3A37%3A14IST&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=Advances%20in%20noise-based%20testing%20of%20concurrent%20software&rft.jtitle=Software%20testing,%20verification%20&%20reliability&rft.au=Fiedor,%20J.&rft.date=2015-05&rft.volume=25&rft.issue=3&rft.spage=272&rft.epage=309&rft.pages=272-309&rft.issn=0960-0833&rft.eissn=1099-1689&rft.coden=JTREET&rft_id=info:doi/10.1002/stvr.1546&rft_dat=%3Cproquest_cross%3E1685776186%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=1672805527&rft_id=info:pmid/&rfr_iscdi=true