{"id":"https://openalex.org/W2100122438","doi":"https://doi.org/10.1145/996821.996838","title":"Mock object creation for test factoring","display_name":"Mock object creation for test factoring","publication_year":2004,"publication_date":"2004-06-07","ids":{"openalex":"https://openalex.org/W2100122438","doi":"https://doi.org/10.1145/996821.996838","mag":"2100122438"},"language":"en","primary_location":{"is_oa":false,"landing_page_url":"https://doi.org/10.1145/996821.996838","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false},"type":"article","type_crossref":"proceedings-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/A5084895565","display_name":"David Saff","orcid":null},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"David Saff","raw_affiliation_strings":["MIT, Cambridge, Ma.#TAB#"],"affiliations":[{"raw_affiliation_string":"MIT, Cambridge, Ma.#TAB#","institution_ids":["https://openalex.org/I63966007"]}]},{"author_position":"last","author":{"id":"https://openalex.org/A5032068969","display_name":"Michael D. Ernst","orcid":"https://orcid.org/0000-0001-9379-277X"},"institutions":[{"id":"https://openalex.org/I63966007","display_name":"Massachusetts Institute of Technology","ror":"https://ror.org/042nb2s44","country_code":"US","type":"education","lineage":["https://openalex.org/I63966007"]}],"countries":["US"],"is_corresponding":false,"raw_author_name":"Michael D. Ernst","raw_affiliation_strings":["MIT, Cambridge, Ma.#TAB#"],"affiliations":[{"raw_affiliation_string":"MIT, Cambridge, Ma.#TAB#","institution_ids":["https://openalex.org/I63966007"]}]}],"institution_assertions":[],"countries_distinct_count":1,"institutions_distinct_count":1,"corresponding_author_ids":[],"corresponding_institution_ids":[],"apc_list":null,"apc_paid":null,"fwci":2.263,"has_fulltext":true,"fulltext_origin":"ngrams","cited_by_count":33,"citation_normalized_percentile":{"value":0.864903,"is_in_top_1_percent":false,"is_in_top_10_percent":false},"cited_by_percentile_year":{"min":90,"max":91},"biblio":{"volume":null,"issue":null,"first_page":null,"last_page":null},"is_retracted":false,"is_paratext":false,"primary_topic":{"id":"https://openalex.org/T10743","display_name":"Software Testing and Debugging Techniques","score":1.0,"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":1.0,"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/T12423","display_name":"Software Reliability and Analysis Research","score":0.9982,"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.9979,"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/unit-testing","display_name":"Unit testing","score":0.83853805},{"id":"https://openalex.org/keywords/factoring","display_name":"Factoring","score":0.8267127},{"id":"https://openalex.org/keywords/test-suite","display_name":"Test suite","score":0.78024757},{"id":"https://openalex.org/keywords/component","display_name":"Component (thermodynamics)","score":0.62327385}],"concepts":[{"id":"https://openalex.org/C148027188","wikidata":"https://www.wikidata.org/wiki/Q907375","display_name":"Unit testing","level":3,"score":0.83853805},{"id":"https://openalex.org/C177225278","wikidata":"https://www.wikidata.org/wiki/Q192674","display_name":"Factoring","level":2,"score":0.8267127},{"id":"https://openalex.org/C151552104","wikidata":"https://www.wikidata.org/wiki/Q7705809","display_name":"Test suite","level":4,"score":0.78024757},{"id":"https://openalex.org/C41008148","wikidata":"https://www.wikidata.org/wiki/Q21198","display_name":"Computer science","level":0,"score":0.7497584},{"id":"https://openalex.org/C2777267654","wikidata":"https://www.wikidata.org/wiki/Q3519023","display_name":"Test (biology)","level":2,"score":0.65046096},{"id":"https://openalex.org/C168167062","wikidata":"https://www.wikidata.org/wiki/Q1117970","display_name":"Component (thermodynamics)","level":2,"score":0.62327385},{"id":"https://openalex.org/C2780586882","wikidata":"https://www.wikidata.org/wiki/Q7520643","display_name":"Simple (philosophy)","level":2,"score":0.5809646},{"id":"https://openalex.org/C2781238097","wikidata":"https://www.wikidata.org/wiki/Q175026","display_name":"Object (grammar)","level":2,"score":0.43233883},{"id":"https://openalex.org/C128942645","wikidata":"https://www.wikidata.org/wiki/Q1568346","display_name":"Test case","level":3,"score":0.362842},{"id":"https://openalex.org/C199360897","wikidata":"https://www.wikidata.org/wiki/Q9143","display_name":"Programming language","level":1,"score":0.3342422},{"id":"https://openalex.org/C154945302","wikidata":"https://www.wikidata.org/wiki/Q11660","display_name":"Artificial intelligence","level":1,"score":0.12843609},{"id":"https://openalex.org/C2777904410","wikidata":"https://www.wikidata.org/wiki/Q7397","display_name":"Software","level":2,"score":0.12813216},{"id":"https://openalex.org/C119857082","wikidata":"https://www.wikidata.org/wiki/Q2539","display_name":"Machine learning","level":1,"score":0.11633825},{"id":"https://openalex.org/C151730666","wikidata":"https://www.wikidata.org/wiki/Q7205","display_name":"Paleontology","level":1,"score":0.0},{"id":"https://openalex.org/C10138342","wikidata":"https://www.wikidata.org/wiki/Q43015","display_name":"Finance","level":1,"score":0.0},{"id":"https://openalex.org/C162324750","wikidata":"https://www.wikidata.org/wiki/Q8134","display_name":"Economics","level":0,"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/C121332964","wikidata":"https://www.wikidata.org/wiki/Q413","display_name":"Physics","level":0,"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/C111472728","wikidata":"https://www.wikidata.org/wiki/Q9471","display_name":"Epistemology","level":1,"score":0.0},{"id":"https://openalex.org/C86803240","wikidata":"https://www.wikidata.org/wiki/Q420","display_name":"Biology","level":0,"score":0.0},{"id":"https://openalex.org/C97355855","wikidata":"https://www.wikidata.org/wiki/Q11473","display_name":"Thermodynamics","level":1,"score":0.0}],"mesh":[],"locations_count":1,"locations":[{"is_oa":false,"landing_page_url":"https://doi.org/10.1145/996821.996838","pdf_url":null,"source":null,"license":null,"license_id":null,"version":null,"is_accepted":false,"is_published":false}],"best_oa_location":null,"sustainable_development_goals":[],"grants":[],"datasets":[],"versions":[],"referenced_works_count":7,"referenced_works":["https://openalex.org/W1493688518","https://openalex.org/W1928770023","https://openalex.org/W2073433262","https://openalex.org/W2116525104","https://openalex.org/W2119861793","https://openalex.org/W2153887189","https://openalex.org/W2153956429"],"related_works":["https://openalex.org/W3092867575","https://openalex.org/W3011836377","https://openalex.org/W2404183746","https://openalex.org/W2197029028","https://openalex.org/W2131742774","https://openalex.org/W2112592805","https://openalex.org/W2101501696","https://openalex.org/W2100122438","https://openalex.org/W1553907134","https://openalex.org/W1524028411"],"abstract_inverted_index":{"Test":[0],"factoring":[1,172],"creates":[2],"fast,":[3],"focused":[4],"unit":[5,13,33,136],"tests":[6,137,147],"from":[7,153],"slow":[8,161],"system-wide":[9],"tests;":[10],"each":[11],"new":[12],"test":[14,29,45,51,59,111,127,165,171],"exercises":[15,60],"only":[16],"a":[17,28,44,50,58,61,84,109,117,178],"subset":[18],"of":[19,78,119,192],"the":[20,24,37,76,125,194],"functionality":[21],"exercised":[22],"by":[23,83],"system":[25,110,126],"tests.":[26,204],"Augmenting":[27],"suite":[30],"with":[31,173],"factored":[32,146,187,203],"tests,":[34,38,188],"and":[35,101,114,116,121,189],"prioritizing":[36],"should":[39],"catch":[40],"errors":[41],"earlier":[42],"in":[43,106,140,151,155],"run.One":[46],"way":[47],"to":[48,53,67,96,133,199],"factor":[49],"is":[52,65,128,143,160],"introduce":[54],"mock":[55,87,184],"objects.":[56],"If":[57],"component":[62,74],"A,":[63],"which":[64,141],"designed":[66],"issue":[68],"queries":[69],"against":[70],"or":[71,162,167],"mutate":[72],"another":[73],"B,":[75,115],"implementation":[77],"B":[79,97,142,156,159],"can":[80,148,196],"be":[81,197],"replaced":[82],"mock.":[85],"The":[86,145],"has":[88],"two":[89],"purposes:":[90],"it":[91,102],"checks":[92],"that":[93],"A's":[94,120],"calls":[95],"are":[98],"as":[99],"expected,":[100],"simulates":[103],"B's":[104,122],"behavior":[105,123],"response.":[107],"Given":[108],"for":[112,138,181,186],"A":[113,139,152],"record":[118],"when":[124],"run,":[129],"we":[130],"would":[131],"like":[132],"automatically":[134,182],"generate":[135],"mocked.":[144],"isolate":[149],"bugs":[150,154],"and,":[157],"if":[158],"expensive,":[163],"improve":[164],"performance":[166],"cost.This":[168],"paper":[169],"motivates":[170],"an":[174],"illustrative":[175],"example,":[176],"proposes":[177],"simple":[179],"procedure":[180,195],"generating":[183],"objects":[185],"gives":[190],"examples":[191],"how":[193],"extended":[198],"produce":[200],"more":[201],"robust":[202]},"cited_by_api_url":"https://api.openalex.org/works?filter=cites:W2100122438","counts_by_year":[{"year":2024,"cited_by_count":2},{"year":2023,"cited_by_count":2},{"year":2022,"cited_by_count":1},{"year":2020,"cited_by_count":1},{"year":2018,"cited_by_count":1},{"year":2015,"cited_by_count":2},{"year":2014,"cited_by_count":3},{"year":2012,"cited_by_count":1}],"updated_date":"2025-01-17T22:49:26.804771","created_date":"2016-06-24"}