{"id":"https://openalex.org/W2016320988","doi":"https://doi.org/10.1145/581690.581696","title":"Testing monadic code with QuickCheck","display_name":"Testing monadic code with QuickCheck","publication_year":2002,"publication_date":"2002-10-03","ids":{"openalex":"https://openalex.org/W2016320988","doi":"https://doi.org/10.1145/581690.581696","mag":"2016320988"},"language":"en","primary_location":{"id":"doi:10.1145/581690.581696","doi":"https://doi.org/10.1145/581690.581696","is_oa":false,"landing_page_url":"https://doi.org/10.1145/581690.581696","pdf_url":null,"source":{"id":"https://openalex.org/S4306420149","display_name":"International Symposium on Haskell","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2002 ACM SIGPLAN workshop on Haskell","raw_type":"proceedings-article"},"volume":null,"type":"conference-paper","is_traditional":true,"indexed_in":["crossref"],"open_access":{"is_oa":false,"oa_status":"closed","oa_url":null,"any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":"https://openalex.org/A5058771102","display_name":"Koen Claessen","orcid":"https://orcid.org/0000-0002-8113-4478","observed_orcids":["https://orcid.org/0000-0002-8113-4478"]},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"Koen Claessen","raw_affiliation_strings":["Chalmers University of Technology"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Chalmers University of Technology","institution_ids":["https://openalex.org/I66862912"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5068339489","display_name":"John Hughes","orcid":"https://orcid.org/0000-0001-8042-0969","observed_orcids":["https://orcid.org/0000-0001-8042-0969"]},"institutions":[{"id":"https://openalex.org/I66862912","display_name":"Chalmers University of Technology","ror":"https://ror.org/040wg7k59","country_code":"SE","type":"education","lineage":["https://openalex.org/I66862912"]}],"countries":["SE"],"is_corresponding":false,"raw_author_name":"John Hughes","raw_affiliation_strings":["Chalmers University of Technology"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Chalmers University of Technology","institution_ids":["https://openalex.org/I66862912"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":["https://openalex.org/I66862912"],"apc_list":null,"apc_paid":null,"fwci":2.91,"has_fulltext":false,"cited_by_count":53,"citation_normalized_percentile":{"value":0.91371939,"is_in_top_1_percent":false,"is_in_top_10_percent":true},"cited_by_percentile_year":{"min":87,"max":98},"biblio":{"volume":null,"issue":null,"first_page":"65","last_page":"77"},"is_retracted":false,"is_paratext":false,"is_xpac":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.8184000253677368,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},"topics":[{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":0.8184000253677368,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10126","display_name":"Logic, programming, and type systems","score":0.17829999327659607,"subfield":{"id":"https://openalex.org/subfields/1712","display_name":"Software"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}},{"id":"https://openalex.org/T10142","display_name":"Formal Methods in Verification","score":0.001500000013038516,"subfield":{"id":"https://openalex.org/subfields/1703","display_name":"Computational Theory and Mathematics"},"field":{"id":"https://openalex.org/fields/17","display_name":"Computer Science"},"domain":{"id":"https://openalex.org/domains/3","display_name":"Physical Sciences"}}],"keywords":[{"id":"https://openalex.org/keywords/quickcheck","display_name":"QuickCheck","score":0.9959999918937683},{"id":"https://openalex.org/keywords/random-testing","display_name":"random testing","score":0.878000020980835},{"id":"https://openalex.org/keywords/program-specification","display_name":"program specification","score":0.6140000224113464},{"id":"https://openalex.org/keywords/algebraic-specification","display_name":"algebraic specification","score":0.7710000276565552},{"id":"https://openalex.org/keywords/model-based-specification","display_name":"model-based specification","score":0.9269999861717224},{"id":"https://openalex.org/keywords/relational-specifications","display_name":"relational specifications","score":0.8289999961853027},{"id":"https://openalex.org/keywords/preconditions-and-postconditions","display_name":"preconditions and postconditions","score":0.796999990940094},{"id":"https://openalex.org/keywords/observational-equivalence","display_name":"observational equivalence","score":0.9390000104904175},{"id":"https://openalex.org/keywords/haskell","display_name":"Haskell","score":0.7639999985694885}],"concepts":[{"id":"https://openalex.org/C2780624054","wikidata":"https://www.wikidata.org/wiki/Q34010","display_name":"Haskell","level":3,"score":0.8212788105010986},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.7653312683105469},{"id":"https://openalex.org/C33959348","wikidata":"https://www.wikidata.org/wiki/Q1630568","display_name":"Monad (category theory)","level":3,"score":0.7643109560012817},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.749178409576416},{"id":"https://openalex.org/C2780069185","wikidata":"https://www.wikidata.org/wiki/Q7977945","display_name":"Equivalence (formal languages)","level":2,"score":0.5229935646057129},{"id":"https://openalex.org/C2988012377","wikidata":"https://www.wikidata.org/wiki/Q29966452","display_name":"Functional equivalence","level":2,"score":0.49933385848999023},{"id":"https://openalex.org/C42383842","wikidata":"https://www.wikidata.org/wiki/Q193076","display_name":"Functional programming","level":2,"score":0.46841493248939514},{"id":"https://openalex.org/C2776760102","wikidata":"https://www.wikidata.org/wiki/Q5139990","display_name":"Code (set theory)","level":3,"score":0.4559207558631897},{"id":"https://openalex.org/C201677973","wikidata":"https://www.wikidata.org/wiki/Q1209840","display_name":"Specification language","level":2,"score":0.4376939535140991},{"id":"https://openalex.org/C106159264","wikidata":"https://www.wikidata.org/wiki/Q17146789","display_name":"Random testing","level":4,"score":0.4155752658843994},{"id":"https://openalex.org/C116253237","wikidata":"https://www.wikidata.org/wiki/Q1437424","display_name":"Formal specification","level":2,"score":0.4138296842575073},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.37200087308883667},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.13823610544204712},{"id":"https://openalex.org/C33923547","wikidata":"https://www.wikidata.org/wiki/Q395","display_name":"Mathematics","level":0,"score":0.13784080743789673},{"id":"https://openalex.org/C118615104","wikidata":"https://www.wikidata.org/wiki/Q121416","display_name":"Discrete mathematics","level":1,"score":0.11580342054367065},{"id":"https://openalex.org/C177264268","wikidata":"https://www.wikidata.org/wiki/Q1514741","display_name":"Set (abstract data type)","level":2,"score":0.0},{"id":"https://openalex.org/C156772000","wikidata":"https://www.wikidata.org/wiki/Q864475","display_name":"Functor","level":2,"score":0.0},{"id":"https://openalex.org/C41895202","wikidata":"https://www.wikidata.org/wiki/Q8162","display_name":"Linguistics","level":1,"score":0.0},{"id":"https://openalex.org/C152877465","wikidata":"https://www.wikidata.org/wiki/Q208042","display_name":"Regression analysis","level":2,"score":0.0},{"id":"https://openalex.org/C138885662","wikidata":"https://www.wikidata.org/wiki/Q5891","display_name":"Philosophy","level":0,"score":0.0},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/581690.581696","doi":"https://doi.org/10.1145/581690.581696","is_oa":false,"landing_page_url":"https://doi.org/10.1145/581690.581696","pdf_url":null,"source":{"id":"https://openalex.org/S4306420149","display_name":"International Symposium on Haskell","issn_l":null,"issn":null,"is_oa":false,"is_in_doaj":false,"is_core":false,"listed_in":[],"host_organization":null,"host_organization_name":null,"host_organization_lineage":[],"host_organization_lineage_names":[],"type":"conference"},"license":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the 2002 ACM SIGPLAN workshop on Haskell","raw_type":"proceedings-article"}],"best_oa_location":null,"sustainable_development_goals":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":26,"referenced_works":["https://openalex.org/W625745975","https://openalex.org/W1483817851","https://openalex.org/W1581282328","https://openalex.org/W1595358535","https://openalex.org/W1600849051","https://openalex.org/W1839902311","https://openalex.org/W1980818933","https://openalex.org/W1985088747","https://openalex.org/W2018189360","https://openalex.org/W2054227324","https://openalex.org/W2071112258","https://openalex.org/W2074674709","https://openalex.org/W2078944436","https://openalex.org/W2117827650","https://openalex.org/W2119717320","https://openalex.org/W2125831829","https://openalex.org/W2141576692","https://openalex.org/W2146972408","https://openalex.org/W2157888382","https://openalex.org/W2162661340","https://openalex.org/W2188944230","https://openalex.org/W2276797782","https://openalex.org/W2486630259","https://openalex.org/W3137833434","https://openalex.org/W4244488020","https://openalex.org/W6638767560"],"related_works":["https://openalex.org/W7042839929","https://openalex.org/W7099923197","https://openalex.org/W7099928931","https://openalex.org/W2804983060","https://openalex.org/W161870302","https://openalex.org/W2083302545","https://openalex.org/W2518868348","https://openalex.org/W2160798394","https://openalex.org/W4242126179","https://openalex.org/W2404513458"],"abstract_inverted_index":{"QuickCheck":[0,34],"is":[1,47],"a":[2,36,39,78,86],"previously":[3],"published":[4],"random":[5],"testing":[6,21,90],"tool":[7],"for":[8,20,74],"Haskell":[9],"programs.":[10],"In":[11],"this":[12],"paper":[13],"we":[14,41],"show":[15,42],"how":[16],"to":[17,50],"use":[18],"it":[19],"monadic":[22,82],"code,":[23],"and":[24,60,62,84,91],"in":[25],"particular":[26],"imperative":[27],"code":[28],"written":[29],"using":[30],"the":[31,92],"ST":[32],"monad.":[33],"tests":[35],"program":[37,89],"against":[38],"specification:":[40],"that":[43],"QuickCheck's":[44],"specification":[45,69],"language":[46,80],"sufficiently":[48],"powerful":[49],"represent":[51],"common":[52],"forms":[53,67],"of":[54,68,81,94],"specifications:":[55],"algebraic,":[56],"model-based":[57],"(both":[58],"functional":[59],"relational),":[61],"pre-/post-conditional.":[63],"Moreover,":[64],"all":[65],"these":[66],"can":[70],"be":[71],"used":[72],"directly":[73],"testing.":[75],"We":[76],"define":[77],"new":[79],"properties,":[83],"make":[85],"link":[87],"between":[88],"notion":[93],"observational":[95],"equivalence.":[96]},"counts_by_year":[{"year":2025,"cited_by_count":3},{"year":2024,"cited_by_count":1},{"year":2021,"cited_by_count":1},{"year":2019,"cited_by_count":2},{"year":2018,"cited_by_count":2},{"year":2017,"cited_by_count":1},{"year":2016,"cited_by_count":1},{"year":2015,"cited_by_count":1},{"year":2014,"cited_by_count":5},{"year":2013,"cited_by_count":4},{"year":2012,"cited_by_count":5}],"updated_date":"2026-11-07T11:25:07.637180","created_date":"2016-06-24T00:00:00"}
