QuickChecking static analysis properties
Summary A static analysis can check programs for potential errors. A natural question that arises is therefore: who checks the checker? Researchers have given this question varying attention, ranging from basic testing techniques, informal monotonicity arguments, thorough pen‐and‐paper soundness pro...
Gespeichert in:
Veröffentlicht in: | Software testing, verification & reliability verification & reliability, 2017-09, Vol.27 (6), p.n/a |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | n/a |
---|---|
container_issue | 6 |
container_start_page | |
container_title | Software testing, verification & reliability |
container_volume | 27 |
creator | Midtgaard, Jan Møller, Anders |
description | Summary
A static analysis can check programs for potential errors. A natural question that arises is therefore: who checks the checker? Researchers have given this question varying attention, ranging from basic testing techniques, informal monotonicity arguments, thorough pen‐and‐paper soundness proofs, to verified fixed point checking. In this paper, we demonstrate how quickchecking can be useful to test a range of static analysis properties with limited effort. We show how to check a range of algebraic lattice properties, to help ensure that an implementation follows the formal specification of a lattice. Moreover, we offer a number of generic, type‐safe combinators to check transfer functions and operators on lattices, to help ensure that these are, eg, monotone, strict, or invariant. We substantiate our claims by quickchecking a type analysis for the Lua programming language.
The combination of QuickCheck (property‐based testing) with (1) a reusable test suite of common algebraic properties and (2) a domain‐specific language of test signatures is effective for locating errors in a static analysis implementation and for increased test coverage of the underlying source code. |
doi_str_mv | 10.1002/stvr.1640 |
format | Article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_1933858027</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>1933858027</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3320-3ede2548affe7780b47b557efe44f102ad9a6e35f67414fac749dc6d9ad32f813</originalsourceid><addsrcrecordid>eNp1kE1LAzEQhoMouFYP_oOCFz1sO9lk83GUxapQELV6DWl2omlrtyZbpf_erevV08DLM_MODyHnFEYUoBin9iuOqOBwQDIKWudUKH1IMtACclCMHZOTlBYAILTQGbl83Aa3rN7RLcP6bZha2wY3tGu72qWQhpvYbDC2AdMpOfJ2lfDsbw7Iy-RmVt3l04fb--p6mjvGCsgZ1liUXFnvUUoFcy7nZSnRI-eeQmFrbQWy0gvJKffWSa5rJ7q0ZoVXlA3IRX-3q_7cYmrNotnG7p9kqGZMlQoK2VFXPeVik1JEbzYxfNi4MxTMXoTZizB7ER077tnvsMLd_6B5nr0-_W78AMGAX9I</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1933858027</pqid></control><display><type>article</type><title>QuickChecking static analysis properties</title><source>Access via Wiley Online Library</source><creator>Midtgaard, Jan ; Møller, Anders</creator><creatorcontrib>Midtgaard, Jan ; Møller, Anders</creatorcontrib><description>Summary
A static analysis can check programs for potential errors. A natural question that arises is therefore: who checks the checker? Researchers have given this question varying attention, ranging from basic testing techniques, informal monotonicity arguments, thorough pen‐and‐paper soundness proofs, to verified fixed point checking. In this paper, we demonstrate how quickchecking can be useful to test a range of static analysis properties with limited effort. We show how to check a range of algebraic lattice properties, to help ensure that an implementation follows the formal specification of a lattice. Moreover, we offer a number of generic, type‐safe combinators to check transfer functions and operators on lattices, to help ensure that these are, eg, monotone, strict, or invariant. We substantiate our claims by quickchecking a type analysis for the Lua programming language.
The combination of QuickCheck (property‐based testing) with (1) a reusable test suite of common algebraic properties and (2) a domain‐specific language of test signatures is effective for locating errors in a static analysis implementation and for increased test coverage of the underlying source code.</description><identifier>ISSN: 0960-0833</identifier><identifier>EISSN: 1099-1689</identifier><identifier>DOI: 10.1002/stvr.1640</identifier><language>eng</language><publisher>Chichester: Wiley Subscription Services, Inc</publisher><subject>domain‐specific languages ; Formal specifications ; Lattices ; monotonicity ; Object oriented programming ; Programming languages ; Properties (attributes) ; quickchecking ; Static code analysis ; static program analysis ; Transfer functions</subject><ispartof>Software testing, verification & reliability, 2017-09, Vol.27 (6), p.n/a</ispartof><rights>Copyright © 2017 John Wiley & Sons, Ltd.</rights><lds50>peer_reviewed</lds50><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3320-3ede2548affe7780b47b557efe44f102ad9a6e35f67414fac749dc6d9ad32f813</citedby><cites>FETCH-LOGICAL-c3320-3ede2548affe7780b47b557efe44f102ad9a6e35f67414fac749dc6d9ad32f813</cites><orcidid>0000-0002-6506-5468</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%2Fstvr.1640$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fstvr.1640$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,780,784,1417,27924,27925,45574,45575</link.rule.ids></links><search><creatorcontrib>Midtgaard, Jan</creatorcontrib><creatorcontrib>Møller, Anders</creatorcontrib><title>QuickChecking static analysis properties</title><title>Software testing, verification & reliability</title><description>Summary
A static analysis can check programs for potential errors. A natural question that arises is therefore: who checks the checker? Researchers have given this question varying attention, ranging from basic testing techniques, informal monotonicity arguments, thorough pen‐and‐paper soundness proofs, to verified fixed point checking. In this paper, we demonstrate how quickchecking can be useful to test a range of static analysis properties with limited effort. We show how to check a range of algebraic lattice properties, to help ensure that an implementation follows the formal specification of a lattice. Moreover, we offer a number of generic, type‐safe combinators to check transfer functions and operators on lattices, to help ensure that these are, eg, monotone, strict, or invariant. We substantiate our claims by quickchecking a type analysis for the Lua programming language.
The combination of QuickCheck (property‐based testing) with (1) a reusable test suite of common algebraic properties and (2) a domain‐specific language of test signatures is effective for locating errors in a static analysis implementation and for increased test coverage of the underlying source code.</description><subject>domain‐specific languages</subject><subject>Formal specifications</subject><subject>Lattices</subject><subject>monotonicity</subject><subject>Object oriented programming</subject><subject>Programming languages</subject><subject>Properties (attributes)</subject><subject>quickchecking</subject><subject>Static code analysis</subject><subject>static program analysis</subject><subject>Transfer functions</subject><issn>0960-0833</issn><issn>1099-1689</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2017</creationdate><recordtype>article</recordtype><recordid>eNp1kE1LAzEQhoMouFYP_oOCFz1sO9lk83GUxapQELV6DWl2omlrtyZbpf_erevV08DLM_MODyHnFEYUoBin9iuOqOBwQDIKWudUKH1IMtACclCMHZOTlBYAILTQGbl83Aa3rN7RLcP6bZha2wY3tGu72qWQhpvYbDC2AdMpOfJ2lfDsbw7Iy-RmVt3l04fb--p6mjvGCsgZ1liUXFnvUUoFcy7nZSnRI-eeQmFrbQWy0gvJKffWSa5rJ7q0ZoVXlA3IRX-3q_7cYmrNotnG7p9kqGZMlQoK2VFXPeVik1JEbzYxfNi4MxTMXoTZizB7ER077tnvsMLd_6B5nr0-_W78AMGAX9I</recordid><startdate>201709</startdate><enddate>201709</enddate><creator>Midtgaard, Jan</creator><creator>Møller, Anders</creator><general>Wiley Subscription Services, Inc</general><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><orcidid>https://orcid.org/0000-0002-6506-5468</orcidid></search><sort><creationdate>201709</creationdate><title>QuickChecking static analysis properties</title><author>Midtgaard, Jan ; Møller, Anders</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3320-3ede2548affe7780b47b557efe44f102ad9a6e35f67414fac749dc6d9ad32f813</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2017</creationdate><topic>domain‐specific languages</topic><topic>Formal specifications</topic><topic>Lattices</topic><topic>monotonicity</topic><topic>Object oriented programming</topic><topic>Programming languages</topic><topic>Properties (attributes)</topic><topic>quickchecking</topic><topic>Static code analysis</topic><topic>static program analysis</topic><topic>Transfer functions</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Midtgaard, Jan</creatorcontrib><creatorcontrib>Møller, Anders</creatorcontrib><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 & reliability</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Midtgaard, Jan</au><au>Møller, Anders</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>QuickChecking static analysis properties</atitle><jtitle>Software testing, verification & reliability</jtitle><date>2017-09</date><risdate>2017</risdate><volume>27</volume><issue>6</issue><epage>n/a</epage><issn>0960-0833</issn><eissn>1099-1689</eissn><abstract>Summary
A static analysis can check programs for potential errors. A natural question that arises is therefore: who checks the checker? Researchers have given this question varying attention, ranging from basic testing techniques, informal monotonicity arguments, thorough pen‐and‐paper soundness proofs, to verified fixed point checking. In this paper, we demonstrate how quickchecking can be useful to test a range of static analysis properties with limited effort. We show how to check a range of algebraic lattice properties, to help ensure that an implementation follows the formal specification of a lattice. Moreover, we offer a number of generic, type‐safe combinators to check transfer functions and operators on lattices, to help ensure that these are, eg, monotone, strict, or invariant. We substantiate our claims by quickchecking a type analysis for the Lua programming language.
The combination of QuickCheck (property‐based testing) with (1) a reusable test suite of common algebraic properties and (2) a domain‐specific language of test signatures is effective for locating errors in a static analysis implementation and for increased test coverage of the underlying source code.</abstract><cop>Chichester</cop><pub>Wiley Subscription Services, Inc</pub><doi>10.1002/stvr.1640</doi><tpages>23</tpages><orcidid>https://orcid.org/0000-0002-6506-5468</orcidid><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | ISSN: 0960-0833 |
ispartof | Software testing, verification & reliability, 2017-09, Vol.27 (6), p.n/a |
issn | 0960-0833 1099-1689 |
language | eng |
recordid | cdi_proquest_journals_1933858027 |
source | Access via Wiley Online Library |
subjects | domain‐specific languages Formal specifications Lattices monotonicity Object oriented programming Programming languages Properties (attributes) quickchecking Static code analysis static program analysis Transfer functions |
title | QuickChecking static analysis properties |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2024-12-26T12%3A37%3A25IST&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=QuickChecking%20static%20analysis%20properties&rft.jtitle=Software%20testing,%20verification%20&%20reliability&rft.au=Midtgaard,%20Jan&rft.date=2017-09&rft.volume=27&rft.issue=6&rft.epage=n/a&rft.issn=0960-0833&rft.eissn=1099-1689&rft_id=info:doi/10.1002/stvr.1640&rft_dat=%3Cproquest_cross%3E1933858027%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=1933858027&rft_id=info:pmid/&rfr_iscdi=true |