{"id":"https://openalex.org/W7204255262","doi":"https://doi.org/10.1145/3793869","title":"Combining Tests and Proofs with Contracts for Better Software Verification","display_name":"Combining Tests and Proofs with Contracts for Better Software Verification","publication_year":2026,"publication_date":"2026-08-26","ids":{"openalex":"https://openalex.org/W7204255262","doi":"https://doi.org/10.1145/3793869"},"language":"en","primary_location":{"id":"doi:10.1145/3793869","doi":"https://doi.org/10.1145/3793869","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3793869","pdf_url":null,"source":{"id":"https://openalex.org/S103482838","display_name":"Communications of the ACM","issn_l":"0001-0782","issn":["0001-0782","1557-7317"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["anvur-scientific","cwts-core","dongbi-b","fnege-3","jufo-3","norway-2","poland-140","russia-white-list-1","vabb-shw"],"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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Communications of the ACM","raw_type":"journal-article"},"volume":null,"type":"article","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/A5148266528","display_name":"Li Huang","orcid":null,"observed_orcids":[]},"institutions":[{"id":"https://openalex.org/I4399657974","display_name":"Constructor Institute","ror":"https://ror.org/02f3v7194","country_code":null,"type":"education","lineage":["https://openalex.org/I4399657974"]}],"countries":[],"is_corresponding":false,"raw_author_name":"Li Huang","raw_affiliation_strings":["Constructor Institute of Technology, Schaffhausen, SH, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Constructor Institute of Technology, Schaffhausen, SH, Switzerland","institution_ids":["https://openalex.org/I4399657974"]}]},{"author_position":"middle","author":{"id":"https://openalex.org/A5073925128","display_name":"Bertrand Meyer","orcid":"https://orcid.org/0000-0002-5985-7434","observed_orcids":["https://orcid.org/0000-0002-5985-7434"]},"institutions":[{"id":"https://openalex.org/I35440088","display_name":"ETH Zurich","ror":"https://ror.org/05a28rw58","country_code":"CH","type":"education","lineage":["https://openalex.org/I2799323385","https://openalex.org/I35440088"]}],"countries":["CH"],"is_corresponding":false,"raw_author_name":"Bertrand Meyer","raw_affiliation_strings":["ETH Zurich, Chair of Software Engineering, Zurich, ZH, Switzerland","Eiffel Software, Goleta, California, United States"],"raw_orcid":"https://orcid.org/0000-0002-5985-7434","affiliations":[{"raw_affiliation_string":"ETH Zurich, Chair of Software Engineering, Zurich, ZH, Switzerland","institution_ids":["https://openalex.org/I35440088"]},{"raw_affiliation_string":"Eiffel Software, Goleta, California, United States","institution_ids":[]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5101704762","display_name":"Manuel Oriol","orcid":"https://orcid.org/0000-0003-4069-7626","observed_orcids":["https://orcid.org/0000-0003-4069-7626","https://orcid.org/0000-0001-7827-8457"]},"institutions":[{"id":"https://openalex.org/I4399657974","display_name":"Constructor Institute","ror":"https://ror.org/02f3v7194","country_code":null,"type":"education","lineage":["https://openalex.org/I4399657974"]}],"countries":[],"is_corresponding":false,"raw_author_name":"Manuel Oriol","raw_affiliation_strings":["Constructor Institute of Technology, Schaffhausen, SH, Switzerland"],"raw_orcid":null,"affiliations":[{"raw_affiliation_string":"Constructor Institute of Technology, Schaffhausen, SH, Switzerland","institution_ids":["https://openalex.org/I4399657974"]}]}],"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.61666831,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":null,"biblio":{"volume":"69","issue":"9","first_page":"76","last_page":"85"},"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.9961000084877014,"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.9961000084877014,"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.0027000000700354576,"subfield":{"id":"https://openalex.org/subfields/1702","display_name":"Artificial Intelligence"},"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.000699999975040555,"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/software-verification","display_name":"software verification","score":0.8040000200271606},{"id":"https://openalex.org/keywords/design-by-contract","display_name":"design by contract","score":0.9279999732971191},{"id":"https://openalex.org/keywords/eiffel","display_name":"Eiffel","score":0.9049999713897705},{"id":"https://openalex.org/keywords/satisfiability-modulo-theories","display_name":"satisfiability modulo theories","score":0.9039999842643738},{"id":"https://openalex.org/keywords/smt-solvers","display_name":"SMT solvers","score":0.843999981880188},{"id":"https://openalex.org/keywords/counterexample-generation","display_name":"counterexample generation","score":0.9980000257492065},{"id":"https://openalex.org/keywords/automatic-test-generation","display_name":"automated test generation","score":0.9399999976158142},{"id":"https://openalex.org/keywords/regression-testing","display_name":"regression testing","score":0.8029999732971191},{"id":"https://openalex.org/keywords/program-repair","display_name":"program repair","score":0.6190000176429749},{"id":"https://openalex.org/keywords/software-maintenance","display_name":"software maintenance","score":0.6470000147819519}],"concepts":[{"id":"https://openalex.org/C162838799","wikidata":"https://www.wikidata.org/wiki/Q596077","display_name":"Counterexample","level":2,"score":0.8727999925613403},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7809000015258789},{"id":"https://openalex.org/C108710211","wikidata":"https://www.wikidata.org/wiki/Q11538","display_name":"Mathematical proof","level":2,"score":0.6744999885559082},{"id":"https://openalex.org/C33054407","wikidata":"https://www.wikidata.org/wiki/Q6504747","display_name":"Software verification","level":5,"score":0.6532999873161316},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.5857999920845032},{"id":"https://openalex.org/C164155591","wikidata":"https://www.wikidata.org/wiki/Q2067766","display_name":"Satisfiability modulo theories","level":2,"score":0.5328999757766724},{"id":"https://openalex.org/C186362262","wikidata":"https://www.wikidata.org/wiki/Q732089","display_name":"Eiffel","level":3,"score":0.5120999813079834},{"id":"https://openalex.org/C161821725","wikidata":"https://www.wikidata.org/wiki/Q917415","display_name":"Regression testing","level":5,"score":0.4975999891757965},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.44269999861717224},{"id":"https://openalex.org/C151552104","wikidata":"https://www.wikidata.org/wiki/Q7705809","display_name":"Test suite","level":4,"score":0.4221999943256378},{"id":"https://openalex.org/C80291951","wikidata":"https://www.wikidata.org/wiki/Q1200691","display_name":"Design by contract","level":5,"score":0.40939998626708984},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.3702999949455261},{"id":"https://openalex.org/C98183937","wikidata":"https://www.wikidata.org/wiki/Q2112188","display_name":"Program analysis","level":2,"score":0.3625999987125397},{"id":"https://openalex.org/C80444323","wikidata":"https://www.wikidata.org/wiki/Q2878974","display_name":"Theoretical computer science","level":1,"score":0.35100001096725464},{"id":"https://openalex.org/C106159264","wikidata":"https://www.wikidata.org/wiki/Q17146789","display_name":"Random testing","level":4,"score":0.3474000096321106},{"id":"https://openalex.org/C62460635","wikidata":"https://www.wikidata.org/wiki/Q5508853","display_name":"Functional verification","level":3,"score":0.3328999876976013},{"id":"https://openalex.org/C115903868","wikidata":"https://www.wikidata.org/wiki/Q80993","display_name":"Software engineering","level":1,"score":0.32580000162124634},{"id":"https://openalex.org/C75606506","wikidata":"https://www.wikidata.org/wiki/Q1049183","display_name":"Formal methods","level":2,"score":0.32179999351501465},{"id":"https://openalex.org/C12713177","wikidata":"https://www.wikidata.org/wiki/Q1900281","display_name":"Perspective (graphical)","level":2,"score":0.3188999891281128},{"id":"https://openalex.org/C110251889","wikidata":"https://www.wikidata.org/wiki/Q1569697","display_name":"Model checking","level":2,"score":0.31869998574256897},{"id":"https://openalex.org/C11413529","wikidata":"https://www.wikidata.org/wiki/Q8366","display_name":"Algorithm","level":1,"score":0.3160000145435333},{"id":"https://openalex.org/C54732982","wikidata":"https://www.wikidata.org/wiki/Q1415345","display_name":"Modulo","level":2,"score":0.3100999891757965},{"id":"https://openalex.org/C111498074","wikidata":"https://www.wikidata.org/wiki/Q173326","display_name":"Formal verification","level":2,"score":0.3084000051021576},{"id":"https://openalex.org/C2777267654","wikidata":"https://www.wikidata.org/wiki/Q3519023","display_name":"Test (biology)","level":2,"score":0.29409998655319214},{"id":"https://openalex.org/C168065819","wikidata":"https://www.wikidata.org/wiki/Q845566","display_name":"Debugging","level":2,"score":0.29339998960494995},{"id":"https://openalex.org/C149091818","wikidata":"https://www.wikidata.org/wiki/Q2429814","display_name":"Software system","level":3,"score":0.2922999858856201},{"id":"https://openalex.org/C3406870","wikidata":"https://www.wikidata.org/wiki/Q6044160","display_name":"Intelligent verification","level":5,"score":0.2892000079154968},{"id":"https://openalex.org/C2776401178","wikidata":"https://www.wikidata.org/wiki/Q12050496","display_name":"Feature (linguistics)","level":2,"score":0.2831999957561493},{"id":"https://openalex.org/C202269582","wikidata":"https://www.wikidata.org/wiki/Q2644277","display_name":"Complementarity (molecular biology)","level":2,"score":0.28299999237060547},{"id":"https://openalex.org/C97686452","wikidata":"https://www.wikidata.org/wiki/Q7604153","display_name":"Static analysis","level":2,"score":0.27549999952316284},{"id":"https://openalex.org/C53942775","wikidata":"https://www.wikidata.org/wiki/Q1211721","display_name":"Code coverage","level":3,"score":0.27309998869895935},{"id":"https://openalex.org/C529173508","wikidata":"https://www.wikidata.org/wiki/Q638608","display_name":"Software development","level":3,"score":0.2727999985218048},{"id":"https://openalex.org/C2778361913","wikidata":"https://www.wikidata.org/wiki/Q7248437","display_name":"Program transformation","level":2,"score":0.2694000005722046},{"id":"https://openalex.org/C94461902","wikidata":"https://www.wikidata.org/wiki/Q2762418","display_name":"Formal proof","level":3,"score":0.26910001039505005},{"id":"https://openalex.org/C116253237","wikidata":"https://www.wikidata.org/wiki/Q1437424","display_name":"Formal specification","level":2,"score":0.2628999948501587},{"id":"https://openalex.org/C203265346","wikidata":"https://www.wikidata.org/wiki/Q11387554","display_name":"Proof assistant","level":3,"score":0.25699999928474426},{"id":"https://openalex.org/C202973057","wikidata":"https://www.wikidata.org/wiki/Q7380130","display_name":"Runtime verification","level":3,"score":0.25589999556541443},{"id":"https://openalex.org/C206880738","wikidata":"https://www.wikidata.org/wiki/Q431667","display_name":"Automated theorem proving","level":2,"score":0.25369998812675476},{"id":"https://openalex.org/C1009929","wikidata":"https://www.wikidata.org/wiki/Q179550","display_name":"Software bug","level":3,"score":0.25189998745918274}],"mesh":[],"locations_count":1,"locations":[{"id":"doi:10.1145/3793869","doi":"https://doi.org/10.1145/3793869","is_oa":false,"landing_page_url":"https://doi.org/10.1145/3793869","pdf_url":null,"source":{"id":"https://openalex.org/S103482838","display_name":"Communications of the ACM","issn_l":"0001-0782","issn":["0001-0782","1557-7317"],"is_oa":false,"is_in_doaj":false,"is_core":true,"listed_in":["anvur-scientific","cwts-core","dongbi-b","fnege-3","jufo-3","norway-2","poland-140","russia-white-list-1","vabb-shw"],"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":null,"license_id":null,"version":"publishedVersion","is_accepted":true,"is_published":true,"raw_source_name":"Communications of the ACM","raw_type":"journal-article"}],"best_oa_location":null,"sustainable_development_goals":[],"sustainable_development_goals_aurora":[],"study_designs":[],"awards":[],"funders":[],"has_content":{"grobid_xml":false,"pdf":false},"content_urls":null,"referenced_works_count":32,"referenced_works":["https://openalex.org/W41329643","https://openalex.org/W327452528","https://openalex.org/W1495557642","https://openalex.org/W1514137089","https://openalex.org/W1533493347","https://openalex.org/W1656765819","https://openalex.org/W1928992408","https://openalex.org/W2005973420","https://openalex.org/W2030441548","https://openalex.org/W2037831800","https://openalex.org/W2051877193","https://openalex.org/W2055647675","https://openalex.org/W2110311336","https://openalex.org/W2110908283","https://openalex.org/W2157083801","https://openalex.org/W2610485112","https://openalex.org/W2962708851","https://openalex.org/W3033734688","https://openalex.org/W3181568802","https://openalex.org/W4211123598","https://openalex.org/W4234542549","https://openalex.org/W4239921445","https://openalex.org/W4286383581","https://openalex.org/W4288614128","https://openalex.org/W4312880625","https://openalex.org/W4386315151","https://openalex.org/W4386810511","https://openalex.org/W4400484724","https://openalex.org/W4402355170","https://openalex.org/W4410537906","https://openalex.org/W4411552046","https://openalex.org/W4414193981"],"related_works":[],"abstract_inverted_index":{"Test":[0],"or":[1],"prove?":[2],"These":[3],"two":[4],"approaches":[5],"to":[6,110,118,127,167,199],"software":[7,51,208],"verification":[8],"have":[9],"long":[10],"been":[11],"presented":[12],"as":[13,75,130],"opposites.":[14],"One":[15,121],"is":[16,36,97],"dynamic,":[17],"the":[18,24,30,58,103,149,179,188,203],"other":[19],"static:":[20],"A":[21,33,95],"test":[22,135,156],"executes":[23],"program,":[25],"a":[26,81,112,131,144,176],"proof":[27],"only":[28],"analyzes":[29],"program":[31,104,113,146,170,206,212],"text.":[32],"different":[34],"perspective":[35],"emerging,":[37],"in":[38,77],"which":[39],"testing":[40],"and":[41,62,79,147,192,210],"proving":[42],"are":[43,108,181],"complementary":[44],"rather":[45],"than":[46],"competing":[47],"techniques":[48],"for":[49,133,172],"producing":[50],"of":[52,71,83,190,202,205],"verified":[53],"quality.":[54],"Work":[55],"performed":[56],"over":[57],"past":[59],"few":[60],"years":[61],"reviewed":[63],"here":[64],"develops":[65],"this":[66],"complementarity":[67],"by":[68,73,194],"taking":[69],"advantage":[70],"\"design":[72],"contract,\"":[74],"available":[76],"Eiffel,":[78],"exploiting":[80],"feature":[82],"modern":[84],"program-proving":[85],"tools":[86],"based":[87],"on":[88,187],"\"satisfiability":[89],"modulo":[90],"theories\"":[91],"(SMT):":[92],"counterexample":[93,96,125],"generation.":[94],"an":[98,152],"input":[99],"combination":[100],"that":[101,178],"makes":[102],"fail.":[105],"If":[106],"we":[107,115,162],"trying":[109],"prove":[111],"correct,":[114],"hope":[116],"not":[117],"find":[119],"any.":[120],"can,":[122],"however,":[123],"apply":[124],"generation":[126,136],"incorrect":[128,173],"programs,":[129,174],"tool":[132],"automatic":[134,211],".":[137],"We":[138],"can":[139,163],"also":[140],"introduce":[141],"faults":[142],"into":[143,151],"correct":[145],"turn":[148],"counterexamples":[150],"automatically":[153],"generated":[154],"regression":[155],"suite":[157],"with":[158,175],"full":[159],"coverage.":[160],"Additionally,":[161],"use":[164],"these":[165],"mechanisms":[166,189],"help":[168],"produce":[169],"fixes":[171,180],"guarantee":[177],"correct.":[182],"All":[183],"three":[184],"applications,":[185],"leveraging":[186],"Eiffel":[191],"design":[193],"contract,":[195],"hold":[196],"significant":[197],"promise":[198],"address":[200],"some":[201],"challenges":[204],"testing,":[207],"maintenance,":[209],"repair.":[213]},"counts_by_year":[],"updated_date":"2026-10-13T10:08:12.033832","created_date":"2026-08-27T00:00:00"}
