{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:19:23Z","timestamp":1750306763096,"version":"3.41.0"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2014,5,1]],"date-time":"2014-05-01T00:00:00Z","timestamp":1398902400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1017305 and 1117369"],"award-info":[{"award-number":["1017305 and 1117369"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2014,5]]},"abstract":"<jats:p>Automatic test case generation for software programs is very powerful but suffers from a key limitation. That is, most current test case generation techniques fail to cover testee code when covering that code requires additional pieces of code not yet part of the program under test. To address some of these cases, the Pex state-of-the-art test case generator can generate basic mock code. However, current test case generators cannot handle cases in which the code under test uses multiple interfaces, annotations, or reflection.<\/jats:p>\n          <jats:p>To cover such code in an object-oriented setting, we describe a novel technique for generating test cases and mock classes. The technique consists of collecting constraints on interfaces, annotations, and reflection, combining them with program constraints collected during dynamic symbolic execution, encoding them in a constraint system, solving them with an off-the-shelf constraint solver, and mapping constraint solutions to test cases and custom mock classes. We demonstrate the value of this technique on open-source applications. Our approach covered such third-party code with generated mock classes, while competing approaches failed to cover the code and sometimes produced unintended side-effects such as filling the screen with dialog boxes and writing into the file system.<\/jats:p>","DOI":"10.1145\/2544135","type":"journal-article","created":{"date-parts":[[2014,5,27]],"date-time":"2014-05-27T12:56:59Z","timestamp":1401195419000},"page":"1-38","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":9,"title":["Generating Test Cases for Programs that Are Coded against Interfaces and Annotations"],"prefix":"10.1145","volume":"23","author":[{"given":"Mainul","family":"Islam","sequence":"first","affiliation":[{"name":"University of Texas at Arlington"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christoph","family":"Csallner","sequence":"additional","affiliation":[{"name":"University of Texas at Arlington"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2014,6,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.5555\/1763507.1763522"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-30569-9_3"},{"key":"e_1_2_1_3_1","first-page":"37","article-title":"Test infected: Programmers love writing tests","volume":"3","author":"Beck Kent","year":"1998","unstructured":"Kent Beck and Erich Gamma . 1998 . Test infected: Programmers love writing tests . Java Rep. 3 , 7, 37 -- 50 . Kent Beck and Erich Gamma. 1998. Test infected: Programmers love writing tests. Java Rep. 3, 7, 37--50.","journal-title":"Java Rep."},{"key":"e_1_2_1_4_1","volume-title":"Software Testing Techniques","author":"Beizer Boris","unstructured":"Boris Beizer . 1990. Software Testing Techniques 2 nd Ed. Van Nostrand Reinhold . Boris Beizer. 1990. Software Testing Techniques 2nd Ed. Van Nostrand Reinhold.","edition":"2"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1646353.1646374"},{"volume-title":"Next Generation Java Testing: TestNG and Advanced Concepts","author":"Beust C\u00e9dric","key":"e_1_2_1_6_1","unstructured":"C\u00e9dric Beust and Hani Suleiman . 2007. Next Generation Java Testing: TestNG and Advanced Concepts . Addison-Wesley . C\u00e9dric Beust and Hani Suleiman. 2007. Next Generation Java Testing: TestNG and Advanced Concepts. Addison-Wesley."},{"key":"e_1_2_1_7_1","doi-asserted-by":"crossref","unstructured":"Eric Bodden Andreas Sewe Jan Sinschek and Mira Mezini. 2010. Taming reflection (extended version). Tech. rep. TUD-CS-2010-0066. TU Darmstadt. http:\/\/www.bodden.de\/pubs\/tr-tamiflex.pdf.  Eric Bodden Andreas Sewe Jan Sinschek and Mira Mezini. 2010. Taming reflection (extended version). Tech. rep. TUD-CS-2010-0066. TU Darmstadt. http:\/\/www.bodden.de\/pubs\/tr-tamiflex.pdf.","DOI":"10.1145\/1985793.1985827"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985827"},{"key":"e_1_2_1_9_1","volume-title":"The Unified Modeling Language User Guide","author":"Booch Grady","unstructured":"Grady Booch , James Rumbaugh , and Ivar Jacobson . 2005. The Unified Modeling Language User Guide 2 nd Ed. Addison-Wesley . Grady Booch, James Rumbaugh, and Ivar Jacobson. 2005. The Unified Modeling Language User Guide 2nd Ed. Addison-Wesley.","edition":"2"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/566172.566191"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28891-3_7"},{"volume-title":"Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI'08)","author":"Cadar Cristian","key":"e_1_2_1_12_1","unstructured":"Cristian Cadar , Daniel Dunbar , and Dawson R. Engler . 2008. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs . In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI'08) . USENIX, 209--224. Cristian Cadar, Daniel Dunbar, and Dawson R. Engler. 2008. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI'08). USENIX, 209--224."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1180405.1180445"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542517"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233817"},{"key":"e_1_2_1_16_1","volume-title":"Kiniry","author":"Cok David R.","year":"2004","unstructured":"David R. Cok and Joseph R . Kiniry . 2004 . ESC\/Java2: Uniting esc\/java and jml: Progress and issues in building and using esc\/java2. Tech. rep. NIII-R0413, Nijmegen Institute for Computing and Information Science . David R. Cok and Joseph R. Kiniry. 2004. ESC\/Java2: Uniting esc\/java and jml: Progress and issues in building and using esc\/java2. Tech. rep. NIII-R0413, Nijmegen Institute for Computing and Information Science."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.v37:6"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.602"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1062455.1062533"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1348250.1348254"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/1894386.1894400"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/1792734.1792766"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-005-3861-2"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1572272.1572288"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512558"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028664.1028667"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028664.1028765"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1176617.1176735"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1109\/SEFM.2010.33"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190226"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065010.1065036"},{"key":"e_1_2_1_32_1","volume-title":"Proceedings of the Network and Distributed System Security Symposium (NDSS'08)","author":"Godefroid Patrice","year":"2008","unstructured":"Patrice Godefroid , Michael Y. Levin , and David Molnar . 2008 . Automated whitebox fuzz testing . In Proceedings of the Network and Distributed System Security Symposium (NDSS'08) . The Internet Society. Patrice Godefroid, Michael Y. Levin, and David Molnar. 2008. Automated whitebox fuzz testing. In Proceedings of the Network and Distributed System Security Symposium (NDSS'08). The Internet Society."},{"key":"e_1_2_1_33_1","volume-title":"The Java Language Specification","author":"Gosling James","unstructured":"James Gosling , Bill Joy , Guy L. Steele , and Gilad Bracha . 2005. The Java Language Specification 3 rd Ed. Prentice Hall . James Gosling, Bill Joy, Guy L. Steele, and Gilad Bracha. 2005. The Java Language Specification 3rd Ed. Prentice Hall.","edition":"3"},{"key":"e_1_2_1_34_1","unstructured":"Mark Hapner Rich Burridge Rahul Sharma and Joseph Fialli. 2002. Java Message Service: Version 1.1. Sun Microsystems.  Mark Hapner Rich Burridge Rahul Sharma and Joseph Fialli. 2002. Java Message Service: Version 1.1. Sun Microsystems."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/379605.379665"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/1868321.1868326"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1831708.1831729"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0053381"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/360248.360252"},{"key":"e_1_2_1_40_1","unstructured":"Joseph R. Kiniry. 2004. The logics and calculi of ESC\/Java2. http:\/\/kindsoftware.com\/products\/opensource\/ESCJava2\/ESCTools\/docs\/Escjava2-Logics.pdf.  Joseph R. Kiniry. 2004. The logics and calculi of ESC\/Java2. http:\/\/kindsoftware.com\/products\/opensource\/ESCJava2\/ESCTools\/docs\/Escjava2-Logics.pdf."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11219-011-9157-4"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/IWAST.2009.5069054"},{"key":"e_1_2_1_43_1","volume-title":"Code Complete","author":"Mcconnell Steve","unstructured":"Steve Mcconnell . 2004. Code Complete 2 nd Ed. Microsoft Press . Steve Mcconnell. 2004. Code Complete 2nd Ed. Microsoft Press.","edition":"2"},{"volume-title":"xUnit Test Patterns: Refactoring Test Code","author":"Meszaros Gerard","key":"e_1_2_1_44_1","unstructured":"Gerard Meszaros . 2007. xUnit Test Patterns: Refactoring Test Code . Addison-Wesley . Gerard Meszaros. 2007. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/567793.567795"},{"key":"e_1_2_1_46_1","unstructured":"National Institute of Standards and Technology. 2002. The economic impacts of inadequate infrastructure for software testing: Planning report 02-3. http:\/\/www.nist.gov\/director\/planning\/upload\/report02- 3.pdf.  National Institute of Standards and Technology. 2002. The economic impacts of inadequate infrastructure for software testing: Planning report 02-3. http:\/\/www.nist.gov\/director\/planning\/upload\/report02- 3.pdf."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2007.37"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10009-009-0115-4"},{"volume-title":"Software Testing and Analysis: Process, Principles and Techniques","author":"Pezze Mauro","key":"e_1_2_1_49_1","unstructured":"Mauro Pezze and Michal Young . 2007. Software Testing and Analysis: Process, Principles and Techniques . Wiley . Mauro Pezze and Michal Young. 2007. Software Testing and Analysis: Process, Principles and Techniques. Wiley."},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/1101908.1101927"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/996821.996838"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.5555\/1894403.1894415"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.5555\/1792786.1792798"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2006.51"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2006.117"},{"key":"e_1_2_1_56_1","unstructured":"Gina D. Venolia Robert Deline and Thomas Latoza. 2005. Software development at microsoft observed. Tech. rep. MSR-TR-2005-140 Microsoft Research.  Gina D. Venolia Robert Deline and Thomas Latoza. 2005. Software development at microsoft observed. Tech. rep. MSR-TR-2005-140 Microsoft Research."},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1007\/11430230_4"},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESEM.2011.65"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE.2009.32"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1985876"},{"key":"e_1_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2009.5270315"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-010-9143-7"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/1029894.1029911"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2544135","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2544135","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:28:46Z","timestamp":1750231726000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2544135"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,5]]},"references-count":63,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2014,5]]}},"alternative-id":["10.1145\/2544135"],"URL":"https:\/\/doi.org\/10.1145\/2544135","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"type":"print","value":"1049-331X"},{"type":"electronic","value":"1557-7392"}],"subject":[],"published":{"date-parts":[[2014,5]]},"assertion":[{"value":"2012-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-06-02","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}