{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,1]],"date-time":"2026-07-01T03:43:38Z","timestamp":1782877418020,"version":"3.54.5"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2020,7,6]],"date-time":"2020-07-06T00:00:00Z","timestamp":1593993600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"PICT","award":["2015-2741"],"award-info":[{"award-number":["2015-2741"]}]},{"DOI":"10.13039\/501100005416","name":"Norges Forskningsr\u00e5d","doi-asserted-by":"crossref","award":["274385"],"award-info":[{"award-number":["274385"]}],"id":[{"id":"10.13039\/501100005416","id-type":"DOI","asserted-by":"crossref"}]},{"DOI":"10.13039\/501100010253","name":"Secretar\u00eda de Ciencia y T\u00e9cnica, Universidad de Buenos Aires","doi-asserted-by":"crossref","award":["20020170200249BA"],"award-info":[{"award-number":["20020170200249BA"]}],"id":[{"id":"10.13039\/501100010253","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2020,10,31]]},"abstract":"<jats:p>\n            Automated system test generation for web\/enterprise systems requires either a sequence of actions on a GUI (e.g., clicking on HTML links and form buttons) or direct HTTP calls when dealing with web services (e.g., REST and SOAP). When doing\n            <jats:italic>white-box<\/jats:italic>\n            testing of such systems, their code can be analyzed, and the same type of heuristics (e.g., the\n            <jats:italic>branch distance<\/jats:italic>\n            ) used in search-based unit testing can be employed to improve performance. However, web\/enterprise systems do often interact with a database. To obtain higher coverage and find new faults, the state of the databases needs to be taken into account when generating white-box tests. In this work, we present a novel heuristic to enhance search-based software testing of web\/enterprise systems, which takes into account the state of the accessed databases. Furthermore, we enable the generation of SQL data directly from the test cases. This is useful when it is too difficult or time consuming to generate the right sequence of events to put the database in the right state. Also, it is useful when dealing with databases that are \u201cread-only\u201d for the system under test, and the actual data are generated by other services. We implemented our technique as an extension of E\n            <jats:sc>VO<\/jats:sc>\n            M\n            <jats:sc>ASTER<\/jats:sc>\n            , where system tests are generated in the JUnit format. Experiments on six RESTful APIs (five open-source and one industrial) show that our novel techniques improve coverage significantly (up to +16.5%), finding seven new faults in those systems.\n          <\/jats:p>","DOI":"10.1145\/3391533","type":"journal-article","created":{"date-parts":[[2020,7,6]],"date-time":"2020-07-06T21:22:03Z","timestamp":1594070523000},"page":"1-31","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":44,"title":["Handling SQL Databases in Automated System Test Generation"],"prefix":"10.1145","volume":"29","author":[{"given":"Andrea","family":"Arcuri","sequence":"first","affiliation":[{"name":"Kristiania University College, Oslo, Norway"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Juan P.","family":"Galeotti","sequence":"additional","affiliation":[{"name":"Depto. de Computaci\u00f3n, FCEyN-UBA, and ICC, CONICET-UBA, Argentina"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2020,7,6]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"[n.d.]. Antlr. Retrieved from https:\/\/www.antlr.org\/.  [n.d.]. Antlr. Retrieved from https:\/\/www.antlr.org\/."},{"key":"e_1_2_1_2_1","unstructured":"[n.d.]. EclipseLink. Retrieved from http:\/\/www.eclipse.org\/eclipselink\/.  [n.d.]. EclipseLink. Retrieved from http:\/\/www.eclipse.org\/eclipselink\/."},{"key":"e_1_2_1_3_1","unstructured":"[n.d.]. Hibernate. Retrieved from http:\/\/hibernate.org.  [n.d.]. Hibernate. Retrieved from http:\/\/hibernate.org."},{"key":"e_1_2_1_4_1","unstructured":"[n.d.]. JDBI. Retrieved from http:\/\/jdbi.org\/.  [n.d.]. JDBI. Retrieved from http:\/\/jdbi.org\/."},{"key":"e_1_2_1_5_1","unstructured":"[n.d.]. JOOQ. Retrieved from https:\/\/www.jooq.org\/.  [n.d.]. JOOQ. Retrieved from https:\/\/www.jooq.org\/."},{"key":"e_1_2_1_6_1","unstructured":"[n.d.]. MongoDB. Retrieved from https:\/\/www.mongodb.com\/.  [n.d.]. MongoDB. Retrieved from https:\/\/www.mongodb.com\/."},{"key":"e_1_2_1_7_1","unstructured":"[n.d.]. P6Spy. Retrieved from https:\/\/github.com\/p6spy\/p6spy.  [n.d.]. P6Spy. Retrieved from https:\/\/github.com\/p6spy\/p6spy."},{"key":"e_1_2_1_8_1","unstructured":"[n.d.]. RestAssured. Retrieved from https:\/\/github.com\/rest-assured\/rest-assured.  [n.d.]. RestAssured. Retrieved from https:\/\/github.com\/rest-assured\/rest-assured."},{"key":"e_1_2_1_9_1","unstructured":"[n.d.]. Spring Framework. Retrieved from https:\/\/spring.io.  [n.d.]. Spring Framework. Retrieved from https:\/\/spring.io."},{"key":"e_1_2_1_10_1","unstructured":"[n.d.]. SQL. Retrieved from https:\/\/www.iso.org\/standard\/63555.html.  [n.d.]. SQL. Retrieved from https:\/\/www.iso.org\/standard\/63555.html."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.52"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2013.17"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.5555\/1152613.1152616"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2011.44"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2018.00046"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2018.05.003"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3293455"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.1486"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the International Symposium on Search Based Software Engineering (SSBSE\u201916)","author":"Arcuri A."},{"key":"e_1_2_1_20_1","volume-title":"Proceedings of the Genetic and Evolutionary Computation Conference (GECCO\u201919)","author":"Arcuri Andrea"},{"key":"e_1_2_1_21_1","volume-title":"Proceedings of the Genetic and Evolutionary Computation Conference (GECCO\u201903)","author":"Baresel A."},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/1247480.1247520"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2408776.2408795"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180202"},{"key":"e_1_2_1_25_1","volume-title":"Proceedings of the ACM International Symposium on Software Testing and Analysis (ISSTA\u201907)","author":"Emmi M."},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the ACM Symposium on the Foundations of Software Engineering (FSE\u201911)","author":"Fraser G."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.1495"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2012.14"},{"key":"e_1_2_1_29_1","volume-title":"Proceedings of the International Conference on Tests and Proofs. Springer, 59--76","author":"Fuchs A."},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11219-019-09453-6"},{"key":"e_1_2_1_31_1","volume-title":"Java SE 8 Edition","author":"Gosling James","edition":"1"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.1265732"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/2379776.2379787"},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the IEEE\/ACM International Conference on Automated Software Engineering (ASE\u201908)","author":"Khalek S."},{"key":"e_1_2_1_35_1","volume-title":"Proceedings of the ACM\/IEEE International Conference on Software Engineering (ICSE\u201909)","author":"Kieyzun A."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.57624"},{"key":"e_1_2_1_37_1","volume-title":"Langdon and Riccardo Poli","author":"William","year":"1998"},{"key":"e_1_2_1_38_1","doi-asserted-by":"crossref","unstructured":"Y.\n      Li\n     and \n      G.\n      Fraser\n  . \n  2011\n  . Bytecode testability transformation. In Proceedings of the 3rd International Symposium on Search Based Software Engineering (SSBSE\u201911) Lecture Notes in Computer Science Myra B. Cohen and Mel \u00d3. Cinn\u00e9ide (Eds.) Vol. \n  6956\n  . \n  Springer 237--251. DOI:https:\/\/doi.org\/10.1007\/978-3-642-23716-4_21  Y. Li and G. Fraser. 2011. Bytecode testability transformation. In Proceedings of the 3rd International Symposium on Search Based Software Engineering (SSBSE\u201911) Lecture Notes in Computer Science Myra B. Cohen and Mel \u00d3. Cinn\u00e9ide (Eds.) Vol. 6956. Springer 237--251. DOI:https:\/\/doi.org\/10.1007\/978-3-642-23716-4_21","DOI":"10.1007\/978-3-642-23716-4_21"},{"key":"e_1_2_1_39_1","volume-title":"Proceedings of the ACM International Symposium on Software Testing and Analysis (ISSTA\u201916)","author":"Mao K."},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.5555\/1077276.1077279"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2818639"},{"key":"e_1_2_1_42_1","volume-title":"Proceedings of the IEEE International Conference on Software Maintenance and Evolution (ICSME\u201916)","author":"McMinn P."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2109205.2109208"},{"key":"e_1_2_1_44_1","volume-title":"Building Microservices. O\u2019Reilly Media","author":"Newman S."},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2017.2663435"},{"key":"e_1_2_1_46_1","volume-title":"Proceedings of the International Symposium on Search Based Software Engineering (SSBSE\u201915)","author":"Rojas J. M."},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1002\/stvr.1601"},{"key":"e_1_2_1_48_1","volume-title":"Proceedings of the International Workshop on Search-Based Software Testing (SBST\u201914)","author":"Thom\u00e9 J."},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/1857982.1857985"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3391533","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3391533","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:41:41Z","timestamp":1750200101000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3391533"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,7,6]]},"references-count":49,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2020,10,31]]}},"alternative-id":["10.1145\/3391533"],"URL":"https:\/\/doi.org\/10.1145\/3391533","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,7,6]]},"assertion":[{"value":"2019-09-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-07-06","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}