{"id":"https://openalex.org/W4414978328","doi":"https://doi.org/10.1145/3764068","title":"An Empirical Evaluation of Property-Based Testing in Python","display_name":"An Empirical Evaluation of Property-Based Testing in Python","publication_year":2025,"publication_date":"2025-10-09","ids":{"openalex":"https://openalex.org/W4414978328","doi":"https://doi.org/10.1145/3764068"},"language":"en","primary_location":{"id":"doi:10.1145/3764068","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3764068","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"type":"article","indexed_in":["crossref"],"open_access":{"is_oa":true,"oa_status":"diamond","oa_url":"https://doi.org/10.1145/3764068","any_repository_has_fulltext":false},"authorships":[{"author_position":"first","author":{"id":null,"display_name":"Savitha Ravi","orcid":"https://orcid.org/0009-0006-9756-8832"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Savitha Ravi","raw_affiliation_strings":["University of California San Diego, La Jolla, USA"],"raw_orcid":"https://orcid.org/0009-0006-9756-8832","affiliations":[{"raw_affiliation_string":"University of California San Diego, La Jolla, USA","institution_ids":["https://openalex.org/I36258959"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5044646652","display_name":"Michael Coblenz","orcid":"https://orcid.org/0000-0002-9369-4069"},"institutions":[{"id":"https://openalex.org/I36258959","display_name":"University of California San Diego","ror":"https://ror.org/0168r3w48","country_code":"US","type":"education","lineage":["https://openalex.org/I36258959"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael Coblenz","raw_affiliation_strings":["University of California San Diego, La Jolla, USA"],"raw_orcid":"https://orcid.org/0000-0002-9369-4069","affiliations":[{"raw_affiliation_string":"University of California San Diego, La Jolla, USA","institution_ids":["https://openalex.org/I36258959"]}]}],"institutions":[],"countries_distinct_count":1,"institutions_distinct_count":2,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":0.0,"has_fulltext":false,"cited_by_count":0,"citation_normalized_percentile":{"value":0.25014937,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"9","issue":"OOPSLA2","first_page":"3897","last_page":"3923"},"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.9991999864578247,"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.9991999864578247,"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/T11241","display_name":"Advanced Malware Detection Techniques","score":0.9954000115394592,"subfield":{"id":"https://openalex.org/subfields/1711","display_name":"Signal Processing"},"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/T10260","display_name":"Software Engineering Research","score":0.9878000020980835,"subfield":{"id":"https://openalex.org/subfields/1710","display_name":"Information Systems"},"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/python","display_name":"Python (programming language)","score":0.753600001335144},{"id":"https://openalex.org/keywords/unit-testing","display_name":"Unit testing","score":0.6678000092506409},{"id":"https://openalex.org/keywords/random-testing","display_name":"Random testing","score":0.527999997138977},{"id":"https://openalex.org/keywords/software-testing","display_name":"Software testing","score":0.42320001125335693},{"id":"https://openalex.org/keywords/test","display_name":"Test (biology)","score":0.36730000376701355},{"id":"https://openalex.org/keywords/statistical-hypothesis-testing","display_name":"Statistical hypothesis testing","score":0.3379000127315521},{"id":"https://openalex.org/keywords/empirical-research","display_name":"Empirical research","score":0.3167000114917755},{"id":"https://openalex.org/keywords/mutation-testing","display_name":"Mutation testing","score":0.304500013589859}],"concepts":[{"id":"https://openalex.org/C519991488","wikidata":"https://www.wikidata.org/wiki/Q28865","display_name":"Python (programming language)","level":2,"score":0.753600001335144},{"id":"https://openalex.org/C148027188","wikidata":"https://www.wikidata.org/wiki/Q907375","display_name":"Unit testing","level":3,"score":0.6678000092506409},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.6517999768257141},{"id":"https://openalex.org/C106159264","wikidata":"https://www.wikidata.org/wiki/Q17146789","display_name":"Random testing","level":4,"score":0.527999997138977},{"id":"https://openalex.org/C2984328558","wikidata":"https://www.wikidata.org/wiki/Q188522","display_name":"Software testing","level":3,"score":0.42320001125335693},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.39340001344680786},{"id":"https://openalex.org/C2777267654","wikidata":"https://www.wikidata.org/wiki/Q3519023","display_name":"Test (biology)","level":2,"score":0.36730000376701355},{"id":"https://openalex.org/C87007009","wikidata":"https://www.wikidata.org/wiki/Q210832","display_name":"Statistical hypothesis testing","level":2,"score":0.3379000127315521},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.3328999876976013},{"id":"https://openalex.org/C120936955","wikidata":"https://www.wikidata.org/wiki/Q2155640","display_name":"Empirical research","level":2,"score":0.3167000114917755},{"id":"https://openalex.org/C163565370","wikidata":"https://www.wikidata.org/wiki/Q4308623","display_name":"Mutation testing","level":4,"score":0.304500013589859},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.3005000054836273},{"id":"https://openalex.org/C165825675","wikidata":"https://www.wikidata.org/wiki/Q1399743","display_name":"Model-based testing","level":4,"score":0.28209999203681946},{"id":"https://openalex.org/C109086967","wikidata":"https://www.wikidata.org/wiki/Q2509100","display_name":"Test script","level":4,"score":0.28049999475479126},{"id":"https://openalex.org/C501734568","wikidata":"https://www.wikidata.org/wiki/Q42918","display_name":"Mutation","level":3,"score":0.2793000042438507},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.2786000072956085},{"id":"https://openalex.org/C162443782","wikidata":"https://www.wikidata.org/wiki/Q1066228","display_name":"White-box testing","level":5,"score":0.2718999981880188},{"id":"https://openalex.org/C124101348","wikidata":"https://www.wikidata.org/wiki/Q172491","display_name":"Data mining","level":1,"score":0.26739999651908875},{"id":"https://openalex.org/C80823478","wikidata":"https://www.wikidata.org/wiki/Q4493432","display_name":"Functional testing","level":3,"score":0.2574000060558319},{"id":"https://openalex.org/C169168650","wikidata":"https://www.wikidata.org/wiki/Q1675637","display_name":"Keyword-driven testing","level":5,"score":0.2549999952316284},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.2506999969482422},{"id":"https://openalex.org/C188598960","wikidata":"https://www.wikidata.org/wiki/Q7705805","display_name":"Test strategy","level":3,"score":0.25049999356269836}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3764068","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3764068","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"}],"best_oa_location":{"id":"doi:10.1145/3764068","is_oa":true,"landing_page_url":"https://doi.org/10.1145/3764068","pdf_url":null,"source":{"id":"https://openalex.org/S4210216081","display_name":"Proceedings of the ACM on Programming Languages","issn_l":"2475-1421","issn":["2475-1421"],"is_oa":true,"is_in_doaj":false,"is_core":true,"host_organization":"https://openalex.org/P4310319798","host_organization_name":"Association for Computing Machinery","host_organization_lineage":["https://openalex.org/P4310319798"],"host_organization_lineage_names":["Association for Computing Machinery"],"type":"journal"},"license":"cc-by","license_id":"https://openalex.org/licenses/cc-by","version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Proceedings of the ACM on Programming Languages","raw_type":"journal-article"},"sustainable_development_goals":[],"awards":[],"funders":[],"has_content":{"pdf":false,"grobid_xml":false},"content_urls":null,"referenced_works_count":19,"referenced_works":["https://openalex.org/W2075592454","https://openalex.org/W2121077396","https://openalex.org/W2147002252","https://openalex.org/W2396983327","https://openalex.org/W2888495597","https://openalex.org/W2990912491","https://openalex.org/W3125937743","https://openalex.org/W4232430867","https://openalex.org/W4236393930","https://openalex.org/W4238623774","https://openalex.org/W4239249613","https://openalex.org/W4242126179","https://openalex.org/W4242273806","https://openalex.org/W4248284780","https://openalex.org/W4250325350","https://openalex.org/W4405602523","https://openalex.org/W6898816282","https://openalex.org/W7077055100","https://openalex.org/W7077081618"],"related_works":[],"abstract_inverted_index":{"Property-based":[0],"testing":[1,5],"(PBT)":[2],"is":[3,31],"a":[4,62,178,190],"methodology":[6],"with":[7,136],"origins":[8],"in":[9,154],"the":[10,100,127,134,137,184,193,208],"functional":[11],"programming":[12],"community.":[13],"In":[14],"recent":[15],"years,":[16],"PBT":[17],"libraries":[18],"have":[19],"been":[20],"developed":[21,79],"for":[22,76,82,149],"non-functional":[23],"languages,":[24],"including":[25],"Python.":[26],"However,":[27],"to":[28,182],"date,":[29],"there":[30],"little":[32],"evidence":[33],"regarding":[34],"how":[35],"effective":[36,53,140,165],"property-based":[37,48,86,117,173,187],"tests":[38,49,138,146,188],"are":[39,160],"at":[40,141,166],"finding":[41,142,144,167,199],"bugs,":[42],"and":[43,88,111,156],"whether":[44],"some":[45],"kinds":[46,171],"of":[47,65,85,102,105,172,186,192,195,202],"might":[50],"be":[51],"more":[52,164],"than":[54,169],"others.":[55],"To":[56],"gather":[57],"this":[58],"evidence,":[59],"we":[60,98,176],"conducted":[61,177],"corpus":[63],"study":[64,181],"426":[66],"Python":[67],"programs":[68],"that":[69,94,113,145,147,151,157,200],"use":[70],"Hypothesis,":[71],"Python\u2019s":[72],"most":[73,139],"popular":[74],"library":[75],"PBT.":[77],"We":[78,131],"formal":[80],"definitions":[81],"12":[83],"categories":[84,135],"test":[87,103,118,152],"implemented":[89],"an":[90],"intraprocedural":[91],"static":[92],"analysis":[93],"categorizes":[95],"tests.":[96,174],"Then,":[97],"evaluated":[99],"efficacy":[101],"suites":[104],"40":[106],"projects":[107],"using":[108],"mutation":[109],"testing,":[110],"found":[112,204,206],"on":[114],"average,":[115],"each":[116],"finds":[119],"about":[120],"50":[121],"times":[122,163],"as":[123,126,189],"many":[124],"mutations":[125,168,203],"average":[128],"unit":[129],"test.":[130],"also":[132],"identified":[133],"mutations,":[143],"look":[148],"exceptions,":[150],"inclusion":[153],"collections,":[155],"check":[158],"types":[159],"over":[161],"19":[162],"other":[170],"Finally,":[175],"parameter":[179],"sweep":[180],"assess":[183],"strength":[185],"function":[191],"number":[194],"random":[196],"inputs":[197],"generated,":[198],"76%":[201],"were":[205],"within":[207],"first":[209],"20":[210],"inputs.":[211]},"counts_by_year":[],"updated_date":"2026-06-11T09:08:48.828518","created_date":"2025-10-10T00:00:00"}
