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...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Veröffentlicht in:Software testing, verification & reliability verification & reliability, 2017-09, Vol.27 (6), p.n/a
Hauptverfasser: Midtgaard, Jan, Møller, Anders
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 &amp; reliability, 2017-09, Vol.27 (6), p.n/a</ispartof><rights>Copyright © 2017 John Wiley &amp; 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 &amp; 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 &amp; 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 &amp; 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