{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,17]],"date-time":"2026-07-17T15:27:40Z","timestamp":1784302060481,"version":"3.55.0"},"reference-count":59,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2023,11,24]],"date-time":"2023-11-24T00:00:00Z","timestamp":1700784000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001809","name":"National Science Foundation of China","doi-asserted-by":"crossref","award":["61932021"],"award-info":[{"award-number":["61932021"]}],"id":[{"id":"10.13039\/501100001809","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Hong Kong Research Grant Council\/General Research Fund","award":["16205821"],"award-info":[{"award-number":["16205821"]}]},{"name":"Hong Kong Research Grant Council\/Research Impact Fund","award":["R5034-18"],"award-info":[{"award-number":["R5034-18"]}]},{"name":"Natural Sciences and Engineering Research Council of Canada Discovery Grant","award":["RGPIN-2022-03744 and DGECR-2022-00378"],"award-info":[{"award-number":["RGPIN-2022-03744 and DGECR-2022-00378"]}]},{"name":"WeBank-HKUST Joint Laboratory"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2024,1,31]]},"abstract":"<jats:p>\n            Mocking is an essential unit testing technique for isolating the class under test from its dependencies. Developers often leverage mocking frameworks to develop stub code that specifies the behaviors of mock objects. However, developing and maintaining stub code is labor-intensive and error-prone. In this article, we present\n            <jats:sc>StubCoder<\/jats:sc>\n            to automatically generate and repair stub code for regression testing.\n            <jats:sc>StubCoder<\/jats:sc>\n            implements a novel evolutionary algorithm that synthesizes test-passing stub code guided by the runtime behavior of test cases. We evaluated our proposed approach on 59 test cases from 13 open source projects. Our evaluation results show that\n            <jats:sc>StubCoder<\/jats:sc>\n            can effectively generate stub code for incomplete test cases without stub code and repair obsolete test cases with broken stub code.\n          <\/jats:p>","DOI":"10.1145\/3617171","type":"journal-article","created":{"date-parts":[[2023,8,21]],"date-time":"2023-08-21T12:16:46Z","timestamp":1692620206000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":14,"title":["<scp>StubCoder<\/scp>\n            : Automated Generation and Repair of Stub Code for Mock Objects"],"prefix":"10.1145","volume":"33","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-3082-5957","authenticated-orcid":false,"given":"Hengcheng","family":"Zhu","sequence":"first","affiliation":[{"name":"The Hong Kong University of Science and Technology, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2428-4111","authenticated-orcid":false,"given":"Lili","family":"Wei","sequence":"additional","affiliation":[{"name":"McGill University, Canada"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5885-9297","authenticated-orcid":false,"given":"Valerio","family":"Terragni","sequence":"additional","affiliation":[{"name":"The University of Auckland, New Zealand"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-8147-8126","authenticated-orcid":false,"given":"Yepang","family":"Liu","sequence":"additional","affiliation":[{"name":"Southern University of Science and Technology, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3508-7172","authenticated-orcid":false,"given":"Shing-Chi","family":"Cheung","sequence":"additional","affiliation":[{"name":"The Hong Kong University of Science and Technology, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6126-303X","authenticated-orcid":false,"given":"Jiarong","family":"Wu","sequence":"additional","affiliation":[{"name":"The Hong Kong University of Science and Technology, China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-8527-9297","authenticated-orcid":false,"given":"Qin","family":"Sheng","sequence":"additional","affiliation":[{"name":"WeBank Co. Ltd., China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0007-5862-136X","authenticated-orcid":false,"given":"Bing","family":"Zhang","sequence":"additional","affiliation":[{"name":"WeBank Co. Ltd., China"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0004-9452-4741","authenticated-orcid":false,"given":"Lihong","family":"Song","sequence":"additional","affiliation":[{"name":"WeBank Co. Ltd., China"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2023,11,24]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"Dagstuhl Seminar Proceedings Practical Software Testing: Tool Automation and Human Factors. 10111 Nadia Alshahwan Yue Jia Kiran Lakhotia Gordon Fraser David Shuler Paolo Tonella AUTOMOCK: Automated synthesis of a mock environment for test case generation 2010"},{"key":"e_1_3_2_3_2","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511809163"},{"key":"e_1_3_2_4_2","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2642986"},{"key":"e_1_3_2_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/2786805.2786828"},{"key":"e_1_3_2_6_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2017.19"},{"key":"e_1_3_2_7_2","doi-asserted-by":"publisher","DOI":"10.1109\/APSEC48747.2019.00033"},{"key":"e_1_3_2_8_2","doi-asserted-by":"publisher","DOI":"10.1162\/evco.1996.4.4.361"},{"key":"e_1_3_2_9_2","volume-title":"Effective Java","author":"Bloch Joshua","year":"2008","unstructured":"Joshua Bloch. 2008. Effective Java. Addison-Wesley Professional."},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/2002931.2002935"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/2931037.2948707"},{"key":"e_1_3_2_12_2","unstructured":"EasyMock Contributors. 2022. EasyMock. Retrieved August 28 2023 from https:\/\/site.mockito.org"},{"key":"e_1_3_2_13_2","unstructured":"Mockito Contributors. 2022. Mockito Framework Site. Retrieved August 28 2023 from https:\/\/mockito.org"},{"key":"e_1_3_2_14_2","unstructured":"Moq Contributors. 2022. Moq4. Retrieved August 28 2023 from https:\/\/github.com\/moq\/moq4"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/363958.363994"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1145\/1831708.1831734"},{"key":"e_1_3_2_17_2","doi-asserted-by":"crossref","first-page":"433","DOI":"10.1109\/ASE.2009.17","volume-title":"Proceedings of the 2009 IEEE\/ACM International Conference on Automated Software Engineering","author":"Daniel Brett","year":"2009","unstructured":"Brett Daniel, Vilas Jagannath, Danny Dig, and Darko Marinov. 2009. ReAssert: Suggesting repairs for broken unit tests. In Proceedings of the 2009 IEEE\/ACM International Conference on Automated Software Engineering. IEEE, Los Alamitos, CA, 433\u2013444."},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1109\/4235.996017"},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/1181775.1181806"},{"key":"e_1_3_2_20_2","doi-asserted-by":"publisher","DOI":"10.1145\/2642937.2642982"},{"key":"e_1_3_2_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510175"},{"key":"e_1_3_2_22_2","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3418927"},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/2025113.2025179"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1145\/1831708.1831728"},{"key":"e_1_3_2_26_2","unstructured":"Apache. 2022. Apache Commons. Retrieved August 28 2023 from https:\/\/commons.apache.org"},{"issue":"2","key":"e_1_3_2_27_2","first-page":"170","article-title":"SITAR: GUI test script repair","volume":"42","author":"Gao Zebao","year":"2015","unstructured":"Zebao Gao, Zhenyu Chen, Yunxiao Zou, and Atif M. Memon. 2015. SITAR: GUI test script repair. IEEE Trans. Softw. Eng. 42, 2 (2015), 170\u2013186.","journal-title":"IEEE Trans. Softw. Eng."},{"key":"e_1_3_2_28_2","unstructured":"GitHub. 2022. CloudFoundryApplicationFactoryTest of Spring Boot Admin. Retrieved August 28 2023 from https:\/\/github.com\/codecentric\/spring-boot-admin\/blob\/d0085edfc757e1a83eb2ad4bf8f4764d2819eb6d\/spring-boot-admin-client\/src\/test\/java\/de\/codecentric\/boot\/admin\/client\/registration\/CloudFoundryApplicationFactoryTest.java#L52"},{"key":"e_1_3_2_29_2","volume-title":"The Java\u00ae Language Specification: Java SE 11 Edition","author":"Gosling James","year":"2018","unstructured":"James Gosling, Bill Joy, Guy Steele, Gilad Bracha, Alex Buckley, and Daniel Smith. 2018. The Java\u00ae Language Specification: Java SE 11 Edition. Retrieved August 28, 2023 from https:\/\/docs.oracle.com\/javase\/specs\/jls\/se11\/html\/index.html"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2011.104"},{"key":"e_1_3_2_31_2","unstructured":"GitHub.2022. Home Page. Retrieved August 28 2023 from https:\/\/github.com"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.62"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2007.4362636"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/SMC.2018.00617"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/CEC.2004.1331162"},{"key":"e_1_3_2_36_2","first-page":"217","volume-title":"Proceedings of the 2019 12th IEEE Conference on Software Testing, Validation, and Verification (ICST\u201919)","author":"Li Xiangyu","year":"2019","unstructured":"Xiangyu Li, Marcelo d\u2019Amorim, and Alessandro Orso. 2019. Intent-preserving test repair. In Proceedings of the 2019 12th IEEE Conference on Software Testing, Validation, and Verification (ICST\u201919). IEEE, Los Alamitos, CA, 217\u2013227."},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/IWAST.2009.5069054"},{"key":"e_1_3_2_38_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-99241-9_3"},{"key":"e_1_3_2_39_2","doi-asserted-by":"crossref","first-page":"159","DOI":"10.1007\/978-1-4842-6951-0_8","volume-title":"Automated Unit Testing with ABAP","author":"McDonough James E.","year":"2021","unstructured":"James E. McDonough. 2021. Test doubles. In Automated Unit Testing with ABAP. Springer, 159\u2013210."},{"issue":"3","key":"e_1_3_2_40_2","article-title":"Genetic algorithms, tournament selection, and the effects of noise","volume":"9","author":"Miller Brad L.","year":"1995","unstructured":"Brad L. Miller and David E. Goldberg. 1995. Genetic algorithms, tournament selection, and the effects of noise. Complex Syst. 9, 3 (1995), 193\u2013212. http:\/\/www.complex-systems.com\/abstracts\/v09_i03_a02.html","journal-title":"Complex Syst."},{"key":"e_1_3_2_41_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2012.103"},{"key":"e_1_3_2_42_2","doi-asserted-by":"publisher","DOI":"10.1109\/QSIC.2014.19"},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1175\/1520-0434(1996)011<0003:TFAASE>2.0.CO;2"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/375360.375365"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2014.2364175"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/1101908.1101927"},{"key":"e_1_3_2_47_2","doi-asserted-by":"publisher","DOI":"10.1145\/996821.996838"},{"key":"e_1_3_2_48_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-018-9663-0"},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1145\/3236024.3236063"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICEC.1996.542653"},{"key":"e_1_3_2_51_2","doi-asserted-by":"publisher","DOI":"10.1145\/1858996.1859053"},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/3368089.3409758"},{"key":"e_1_3_2_53_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2002.1003449"},{"key":"e_1_3_2_54_2","doi-asserted-by":"publisher","DOI":"10.48550\/arXiv.2208.01321"},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468590"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(01)00190-2"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2019.00084"},{"key":"e_1_3_2_58_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2018.2874648"},{"key":"e_1_3_2_59_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2011.158"},{"key":"e_1_3_2_60_2","doi-asserted-by":"publisher","DOI":"10.1145\/3324884.3416539"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3617171","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3617171","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T16:36:07Z","timestamp":1750178167000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3617171"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,11,24]]},"references-count":59,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2024,1,31]]}},"alternative-id":["10.1145\/3617171"],"URL":"https:\/\/doi.org\/10.1145\/3617171","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,11,24]]},"assertion":[{"value":"2022-08-10","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-07-23","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-11-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}