{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,2]],"date-time":"2026-06-02T08:49:05Z","timestamp":1780390145925,"version":"3.54.1"},"reference-count":32,"publisher":"Springer Science and Business Media LLC","issue":"4","license":[{"start":{"date-parts":[[2021,6,2]],"date-time":"2021-06-02T00:00:00Z","timestamp":1622592000000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"},{"start":{"date-parts":[[2021,6,2]],"date-time":"2021-06-02T00:00:00Z","timestamp":1622592000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0"}],"funder":[{"DOI":"10.13039\/501100005416","name":"Research Council of Norway","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\/501100005416","name":"Research Council of Norway","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\/501100005416","name":"Research Council of Norway","doi-asserted-by":"crossref","award":["274385"],"award-info":[{"award-number":["274385"]}],"id":[{"id":"10.13039\/501100005416","id-type":"DOI","asserted-by":"crossref"}]},{"name":"Kristiania University College"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Empir Software Eng"],"published-print":{"date-parts":[[2021,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Nowadays, RESTful web services are widely used for building enterprise applications. REST is not a protocol, but rather it defines a set of guidelines on how to design APIs to access and manipulate resources using HTTP over a network. In this paper, we propose an enhanced search-based method for automated system test generation for RESTful web services, by exploiting domain knowledge on the handling of HTTP resources. The proposed techniques use domain knowledge specific to RESTful web services and a set of effective templates to structure test actions (i.e., ordered sequences of HTTP calls) within an individual in the evolutionary search. The action templates are developed based on the semantics of HTTP methods and are used to manipulate the web services\u2019 resources. In addition, we propose five novel sampling strategies with four sampling methods (i.e., resource-based sampling) for the test cases that can use one or more of these templates. The strategies are further supported with a set of new, specialized mutation operators (i.e., resource-based mutation) in the evolutionary search that take into account the use of these resources in the generated test cases. Moreover, we propose a novel dependency handling to detect possible dependencies among the resources in the tested applications. The resource-based sampling and mutations are then enhanced by exploiting the information of these detected dependencies. To evaluate our approach, we implemented it as an extension to the <jats:sc>EvoMaster<\/jats:sc> tool, and conducted an empirical study with two selected baselines on 7 open-source and 12 synthetic RESTful web services. Results show that our novel resource-based approach with dependency handling obtains a significant improvement in performance over the baselines, e.g., up to +\u2009130.7% relative improvement (growing from +\u200927.9% to +\u200964.3%) on line coverage.<\/jats:p>","DOI":"10.1007\/s10664-020-09937-1","type":"journal-article","created":{"date-parts":[[2021,6,2]],"date-time":"2021-06-02T09:04:59Z","timestamp":1622624699000},"update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":33,"title":["Resource and dependency based test case generation for RESTful Web services"],"prefix":"10.1007","volume":"26","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-1204-9322","authenticated-orcid":false,"given":"Man","family":"Zhang","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bogdan","family":"Marculescu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Andrea","family":"Arcuri","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2021,6,2]]},"reference":[{"issue":"6","key":"9937_CR1","doi-asserted-by":"publisher","first-page":"742","DOI":"10.1109\/TSE.2009.52","volume":"36","author":"S Ali","year":"2010","unstructured":"Ali S, Briand L, Hemmati H, Panesar-Walawege R (2010) A systematic review of the application and empirical investigation of search-based test-case generation. IEEE Trans Softw Eng (TSE) 36(6):742\u2013762","journal-title":"IEEE Trans Softw Eng (TSE)"},{"key":"9937_CR2","unstructured":"Allamaraju S (2010) Restful web services cookbook: solutions for improving scalability and simplicity. O\u2019Reilly Media Inc."},{"issue":"3","key":"9937_CR3","doi-asserted-by":"publisher","first-page":"175","DOI":"10.1002\/stvr.354","volume":"16","author":"M Alshraideh","year":"2006","unstructured":"Alshraideh M, Bottaci L (2006) Search-based software test data generation for string data using program-specific search operators. Softw Test Verification Reliab 16(3):175\u2013203. https:\/\/doi.org\/10.1002\/stvr.v16:3","journal-title":"Softw Test Verification Reliab"},{"key":"9937_CR4","doi-asserted-by":"crossref","unstructured":"Arcuri A (2017) RESTful API Automated Test Case Generation. In: IEEE International Conference on Software Quality, Reliability and Security (QRS), pp. 9\u201320. IEEE","DOI":"10.1109\/QRS.2017.11"},{"key":"9937_CR5","doi-asserted-by":"crossref","unstructured":"Arcuri A (2018) Evomaster: evolutionary multi-context automated system test generation. In: IEEE International conference on software testing, verification and validation (ICST). IEEE","DOI":"10.1109\/ICST.2018.00046"},{"key":"9937_CR6","doi-asserted-by":"publisher","first-page":"195","DOI":"10.1016\/j.infsof.2018.05.003","volume":"104","author":"A Arcuri","year":"2018","unstructured":"Arcuri A (2018) Test suite generation with the Many Independent Objective (MIO) algorithm. Inform Softw Technol (IST) 104:195\u2013206","journal-title":"Inform Softw Technol (IST)"},{"issue":"1","key":"9937_CR7","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1145\/3293455","volume":"28","author":"A Arcuri","year":"2019","unstructured":"Arcuri A (2019) Restful api automated test case generation with evomaster. ACM Trans Softw Eng Methodol (TOSEM) 28(1):3","journal-title":"ACM Trans Softw Eng Methodol (TOSEM)"},{"key":"9937_CR8","doi-asserted-by":"crossref","unstructured":"Arcuri A, Briand L (2011) Adaptive random testing: an illusion of effectiveness?. In: ACM Int. Symposium on software testing and analysis (ISSTA), pp 265\u2013275","DOI":"10.1145\/2001420.2001452"},{"issue":"3","key":"9937_CR9","doi-asserted-by":"publisher","first-page":"219","DOI":"10.1002\/stvr.1486","volume":"24","author":"A Arcuri","year":"2014","unstructured":"Arcuri A, Briand L (2014) A hitchhiker\u2019s guide to statistical tests for assessing randomized algorithms in software engineering. Softw Testing Verif Reliab (STVR) 24(3):219\u2013250","journal-title":"Softw Testing Verif Reliab (STVR)"},{"key":"9937_CR10","doi-asserted-by":"publisher","unstructured":"Arcuri A, Galeotti JP (2019) Sql data generation to enhance search-based system testing. In: Proceedings of the genetic and evolutionary computation conference, GECCO \u201919. Association for Computing Machinery, New York, pp 1390\u20131398, DOI https:\/\/doi.org\/10.1145\/3321707.3321732, (to appear in print)","DOI":"10.1145\/3321707.3321732"},{"issue":"4","key":"9937_CR11","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/3391533","volume":"29","author":"A Arcuri","year":"2020","unstructured":"Arcuri A, Galeotti JP (2020) Handling sql databases in automated system test generation. ACM Trans Softw Eng Methodol (TOSEM) 29(4):1\u201331","journal-title":"ACM Trans Softw Eng Methodol (TOSEM)"},{"key":"9937_CR12","doi-asserted-by":"publisher","unstructured":"Atlidakis V, Godefroid P, Polishchuk M (2019) Restler: Stateful rest api fuzzing. In: Proceedings of the 41st international conference on software engineering, ICSE \u201919, p 748\u2013758. IEEE Press. https:\/\/doi.org\/10.1109\/ICSE.2019.00083","DOI":"10.1109\/ICSE.2019.00083"},{"issue":"4","key":"9937_CR13","doi-asserted-by":"publisher","first-page":"261","DOI":"10.1002\/stvr.1470","volume":"23","author":"M Bozkurt","year":"2013","unstructured":"Bozkurt M, Harman M, Hassoun Y (2013) Testing and verification in service-oriented architecture: a survey. Softw Test Verif Reliab (STVR) 23 (4):261\u2013313","journal-title":"Softw Test Verif Reliab (STVR)"},{"key":"9937_CR14","doi-asserted-by":"crossref","unstructured":"Canfora G, Di Penta M (2009) Service-oriented architectures testing: a survey. In: Software engineering. Springer, pp 78\u2013105","DOI":"10.1007\/978-3-540-95888-8_4"},{"key":"9937_CR15","doi-asserted-by":"crossref","unstructured":"Chakrabarti SK, Kumar P (2009) Test-the-rest: an approach to testing restful web-services. In: Future computing, service computation, cognitive, adaptive, content, patterns, 2009. COMPUTATIONWORLD\u201909. Computation World. IEEE, pp 302\u2013308","DOI":"10.1109\/ComputationWorld.2009.116"},{"key":"9937_CR16","doi-asserted-by":"crossref","unstructured":"Chakrabarti SK, Rodriquez R (2010) Connectedness testing of restful web-services. In: Proceedings of the 3rd India software engineering conference. ACM, pp 143\u2013152","DOI":"10.1145\/1730874.1730902"},{"key":"9937_CR17","doi-asserted-by":"crossref","unstructured":"Droste S, Jansen T, Wegener I (1998) On the optimization of unimodal functions with the (1 + 1) evolutionary algorithm. In: Proceedings of the international conference on parallel problem solving from nature, pp 13\u201322","DOI":"10.1007\/BFb0056845"},{"key":"9937_CR18","doi-asserted-by":"crossref","unstructured":"Ed-douibi H, C\u00e1novas Izquierdo JL, Cabot J (2018) Automatic generation of test cases for rest apis: a specification-based approach. In: 2018 IEEE 22nd international enterprise distributed object computing conference (EDOC), pp 181\u2013190","DOI":"10.1109\/EDOC.2018.00031"},{"key":"9937_CR19","doi-asserted-by":"crossref","unstructured":"Fertig T, Braun P (2015) Model-driven testing of restful apis. In: Proceedings of the 24th international conference on World Wide Web. ACM, pp 1497\u20131502","DOI":"10.1145\/2740908.2743045"},{"key":"9937_CR20","unstructured":"Fielding RT (2000) Architectural styles and the design of network-based software architectures. Ph.D. thesis, University of California, Irvine"},{"key":"9937_CR21","doi-asserted-by":"crossref","unstructured":"Fraser G, Arcuri A (2012) Sound empirical evidence in software testing. In: ACM\/IEEE International conference on software engineering (ICSE), pp 178\u2013188","DOI":"10.1109\/ICSE.2012.6227195"},{"issue":"1","key":"9937_CR22","doi-asserted-by":"publisher","first-page":"11","DOI":"10.1145\/2379776.2379787","volume":"45","author":"M Harman","year":"2012","unstructured":"Harman M, Mansouri SA, Zhang Y (2012) Search-based software engineering: trends, techniques and applications. ACM Comput Surv (CSUR) 45(1):11","journal-title":"ACM Comput Surv (CSUR)"},{"key":"9937_CR23","doi-asserted-by":"crossref","unstructured":"Karlsson S, Causevic A, Sundmark D (2020) Quickrest: property-based test generation of openapi described restful apis. In: IEEE International conference on software testing, verification and validation (ICST). IEEE","DOI":"10.1109\/ICST46399.2020.00023"},{"key":"9937_CR24","doi-asserted-by":"publisher","unstructured":"Kay M, Wobbrock J (2019) Artool: aligned rank transform for nonparametric factorial anovas. R package version 0.10.6.9000. https:\/\/doi.org\/10.5281\/zenodo.594511. https:\/\/github.com\/mjskay\/ARTool","DOI":"10.5281\/zenodo.594511"},{"key":"9937_CR25","doi-asserted-by":"crossref","unstructured":"Lamela Seijas P, Li H, Thompson S (2013) Towards property-based testing of restful web services. In: Proceedings of the twelfth ACM SIGPLAN workshop on Erlang. ACM, pp 77\u201378","DOI":"10.1145\/2505305.2505317"},{"issue":"1","key":"9937_CR26","doi-asserted-by":"publisher","first-page":"19","DOI":"10.1016\/S0167-6393(97)00062-9","volume":"24","author":"S Martin","year":"1998","unstructured":"Martin S, Liermann J, Ney H (1998) Algorithms for bigram and trigram word clustering. Speech Commun 24(1):19\u201337","journal-title":"Speech Commun"},{"key":"9937_CR27","unstructured":"Pinheiro PVP, Endo AT, Simao A (2013) Model-based testing of restful web services using uml protocol state machines. In: Brazilian workshop on systematic and automated software testing"},{"issue":"2","key":"9937_CR28","doi-asserted-by":"publisher","first-page":"852","DOI":"10.1007\/s10664-015-9424-2","volume":"22","author":"JM Rojas","year":"2017","unstructured":"Rojas JM, Vivanti M, Arcuri A, Fraser G (2017) A detailed investigation of the effectiveness of whole test suite generation. Empir Softw Eng (EMSE) 22(2):852\u2013893","journal-title":"Empir Softw Eng (EMSE)"},{"key":"9937_CR29","doi-asserted-by":"crossref","unstructured":"Segura S, Parejo JA, Troya J, Ruiz-Cort\u00e9s A (2017) Metamorphic testing of RESTful web APIs. IEEE Transactions on Software Engineering (TSE)","DOI":"10.1145\/3180155.3182528"},{"key":"9937_CR30","doi-asserted-by":"crossref","unstructured":"Viglianisi E, Dallago M, Ceccato M (2020) Resttestgen: automated black-box testing of restful apis. In: IEEE International conference on software testing, verification and validation (ICST). IEEE","DOI":"10.1109\/ICST46399.2020.00024"},{"key":"9937_CR31","doi-asserted-by":"publisher","unstructured":"Wobbrock JO, Findlater L, Gergle D, Higgins JJ (2011) The aligned rank transform for nonparametric factorial analyses using only anova procedures. In: Proceedings of the SIGCHI conference on human factors in computing systems. ACM Press, pp 143\u2013146. https:\/\/doi.org\/10.1145\/1978942.1978963, http:\/\/depts.washington.edu\/aimgroup\/proj\/art\/","DOI":"10.1145\/1978942.1978963"},{"key":"9937_CR32","doi-asserted-by":"crossref","unstructured":"Zhang M, Marculescu B, Arcuri A (2019) Resource-based test case generation for restful web services. In: Proceedings of the genetic and evolutionary computation conference, pp 1426\u20131434","DOI":"10.1145\/3321707.3321815"}],"container-title":["Empirical Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-020-09937-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/article\/10.1007\/s10664-020-09937-1\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/s10664-020-09937-1.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,6,23]],"date-time":"2021-06-23T12:35:45Z","timestamp":1624451745000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/s10664-020-09937-1"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2021,6,2]]},"references-count":32,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2021,7]]}},"alternative-id":["9937"],"URL":"https:\/\/doi.org\/10.1007\/s10664-020-09937-1","relation":{},"ISSN":["1382-3256","1573-7616"],"issn-type":[{"value":"1382-3256","type":"print"},{"value":"1573-7616","type":"electronic"}],"subject":[],"published":{"date-parts":[[2021,6,2]]},"assertion":[{"value":"30 December 2020","order":1,"name":"accepted","label":"Accepted","group":{"name":"ArticleHistory","label":"Article History"}},{"value":"2 June 2021","order":2,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}],"article-number":"76"}}