{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,12,1]],"date-time":"2025-12-01T11:26:55Z","timestamp":1764588415235,"version":"3.44.0"},"reference-count":63,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2023,7,1]],"date-time":"2023-07-01T00:00:00Z","timestamp":1688169600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2023,7,1]],"date-time":"2023-07-01T00:00:00Z","timestamp":1688169600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2023,9,7]],"date-time":"2023-09-07T00:00:00Z","timestamp":1694044800000},"content-version":"vor","delay-in-days":68,"URL":"http:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Systems and Software"],"published-print":{"date-parts":[[2023,7]]},"DOI":"10.1016\/j.jss.2023.111674","type":"journal-article","created":{"date-parts":[[2023,3,13]],"date-time":"2023-03-13T03:13:20Z","timestamp":1678677200000},"page":"111674","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":2,"special_numbering":"C","title":["What makes test programs similar in microservices applications?"],"prefix":"10.1016","volume":"201","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-7319-8439","authenticated-orcid":false,"given":"Emanuele","family":"De Angelis","sequence":"first","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1076-0076","authenticated-orcid":false,"given":"Guglielmo","family":"De Angelis","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0179-9868","authenticated-orcid":false,"given":"Alessandro","family":"Pellegrini","sequence":"additional","affiliation":[]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3835-4931","authenticated-orcid":false,"given":"Maurizio","family":"Proietti","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"issue":"1","key":"10.1016\/j.jss.2023.111674_b1","doi-asserted-by":"crossref","first-page":"69","DOI":"10.1007\/s10009-008-0091-0","article-title":"Bounded model checking of software using SMT solvers instead of SAT solvers","volume":"11","author":"Armando","year":"2009","journal-title":"Int. J. Softw. Tools Technol. Transf."},{"issue":"3","key":"10.1016\/j.jss.2023.111674_b2","first-page":"50:1","article-title":"A survey of symbolic execution techniques","volume":"51","author":"Baldoni","year":"2018","journal-title":"ACM Comput. Surv."},{"key":"10.1016\/j.jss.2023.111674_b3","series-title":"Proc. of ISSRE Workshops, GAUSS","first-page":"144","article-title":"Governing regression testing in systems of systems","author":"Bertolino","year":"2019"},{"key":"10.1016\/j.jss.2023.111674_b4","series-title":"Proc. of ICSE","first-page":"21","article-title":"SUSHI: a test generator for programs with complex structured inputs","author":"Braione","year":"2018"},{"key":"10.1016\/j.jss.2023.111674_b5","series-title":"Proc. of FSE","first-page":"1018","article-title":"JBSE: A symbolic executor for Java programs with complex heap inputs","author":"Braione","year":"2016"},{"issue":"19","key":"10.1016\/j.jss.2023.111674_b6","article-title":"ASM: a code manipulation tool to implement adaptable systems","volume":"30","author":"Bruneton","year":"2002","journal-title":"Adaptable Extensible Compon. Syst."},{"key":"10.1016\/j.jss.2023.111674_b7","series-title":"Proc. of ICSOC","first-page":"87","article-title":"Using test cases as contract to ensure service compliance across releases","volume":"Vol.3826","author":"Bruno","year":"2005"},{"key":"10.1016\/j.jss.2023.111674_b8","series-title":"Proc. of Int. Workshop SPIN","first-page":"2","article-title":"Execution generated test cases: How to make systems code crash itself","volume":"Vol. 3639","author":"Cadar","year":"2005"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b9","doi-asserted-by":"crossref","first-page":"82","DOI":"10.1145\/2408776.2408795","article-title":"Symbolic execution for software testing: three decades later","volume":"56","author":"Cadar","year":"2013","journal-title":"Commun. ACM"},{"key":"10.1016\/j.jss.2023.111674_b10","series-title":"Software Engineering and Formal Methods","first-page":"187","article-title":"A formal framework for specifying and verifying microservices based process flows","author":"Camilli","year":"2018"},{"issue":"4","key":"10.1016\/j.jss.2023.111674_b11","doi-asserted-by":"crossref","first-page":"29","DOI":"10.1145\/3183628.3183631","article-title":"Contextual understanding of microservice architecture: current and future directions","volume":"17","author":"Cerny","year":"2018","journal-title":"ACM SIGAPP Appl. Comput. Rev."},{"key":"10.1016\/j.jss.2023.111674_b12","series-title":"ECOOP 2000 \u2014 Object-Oriented Programming","first-page":"313","article-title":"Load-Time structural reflection in java","volume":"Vol. 1850","author":"Chiba","year":"2000"},{"year":"2014","series-title":"Testing strategies in a microservice architecture","author":"Clemson","key":"10.1016\/j.jss.2023.111674_b13"},{"issue":"7","key":"10.1016\/j.jss.2023.111674_b14","doi-asserted-by":"crossref","first-page":"710","DOI":"10.1109\/TSE.2013.2297120","article-title":"Symbolic crosschecking of data-parallel floating-point code","volume":"40","author":"Collingbourne","year":"2014","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/j.jss.2023.111674_b15","series-title":"Proceedings of the 15th IEEE International Conference on Service Oriented Systems Engineering","first-page":"114","article-title":"Inferring relations among test programs in microservices applications","author":"De\u00a0Angelis","year":"2021"},{"key":"10.1016\/j.jss.2023.111674_b16","series-title":"Proc. of SAS","first-page":"147","article-title":"Relational verification through horn clause transformation","volume":"Vol. 9837","author":"De Angelis","year":"2016"},{"key":"10.1016\/j.jss.2023.111674_b17","series-title":"Proc. of ISSRE Workshops, GAUSS","first-page":"129","article-title":"Automatic extraction of behavioral features for test program similarity analysis","author":"De Angelis","year":"2021"},{"issue":"8","key":"10.1016\/j.jss.2023.111674_b18","doi-asserted-by":"crossref","first-page":"61","DOI":"10.1145\/859670.859699","article-title":"Grammar-based compression of interpreted code","volume":"46","author":"Evans","year":"2003","journal-title":"Commun. ACM"},{"key":"10.1016\/j.jss.2023.111674_b19","doi-asserted-by":"crossref","unstructured":"Felsing,\u00a0D., Grebing,\u00a0S., Klebanov,\u00a0V., R\u00fcmmer,\u00a0P., Ulbrich,\u00a0M., 2014. Automating regression verification. In: Proc. of ASE. pp. 349\u2013360.","DOI":"10.1145\/2642937.2642987"},{"key":"10.1016\/j.jss.2023.111674_b20","doi-asserted-by":"crossref","unstructured":"Garc\u00eda,\u00a0B., Lonetti,\u00a0F., Gallego,\u00a0M., Miranda,\u00a0B., Jim\u00e9nez,\u00a0E., De Angelis,\u00a0G., Moreira,\u00a0C.E., Marchetti,\u00a0E., 2018. A Proposal to Orchestrate Test Cases. In: Proc. of QUATIC. pp. 38\u201346.","DOI":"10.1109\/QUATIC.2018.00016"},{"key":"10.1016\/j.jss.2023.111674_b21","series-title":"Proc. of AST","first-page":"11","article-title":"Automatic ex-vivo regression testing of microservices","author":"Gazzola","year":"2020"},{"key":"10.1016\/j.jss.2023.111674_b22","series-title":"Proc. of PLDI","first-page":"213","article-title":"DART: directed automated random testing","author":"Godefroid","year":"2005"},{"key":"10.1016\/j.jss.2023.111674_b23","series-title":"ICSM","first-page":"299","article-title":"An approach to regression testing using slicing","volume":"Vol. 92","author":"Gupta","year":"1992"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b24","doi-asserted-by":"crossref","first-page":"207","DOI":"10.1007\/s10515-008-0025-9","article-title":"On similarity-awareness in testing-based fault localization","volume":"15","author":"Hao","year":"2008","journal-title":"Automated Softw. Eng."},{"key":"10.1016\/j.jss.2023.111674_b25","doi-asserted-by":"crossref","unstructured":"Harrold,\u00a0M.J., Orso,\u00a0A., 2008. Retesting software during development and maintenance. In: Proc. of Frontiers of Software Maintenance. pp. 99\u2013108.","DOI":"10.1109\/FOSM.2008.4659253"},{"issue":"3","key":"10.1016\/j.jss.2023.111674_b26","doi-asserted-by":"crossref","first-page":"281","DOI":"10.1007\/s10009-016-0440-3","article-title":"Automation and intelligent scheduling of distributed system functional testing","volume":"19","author":"Hillah","year":"2017","journal-title":"Int. J. Softw. Tools Technol. Transf."},{"year":"2022","series-title":"Jacoco code coverage library","author":"Hoffmann","key":"10.1016\/j.jss.2023.111674_b27"},{"year":"2012","series-title":"WebRTC: APIs and RTCWEB Protocols of the HTML5 Real-Time Web","author":"Johnston","key":"10.1016\/j.jss.2023.111674_b28"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b29","first-page":"29:1","article-title":"Effective regression test case selection: A systematic literature review","volume":"50","author":"Kazmi","year":"2017","journal-title":"ACM Comput. Surv."},{"key":"10.1016\/j.jss.2023.111674_b30","doi-asserted-by":"crossref","first-page":"74","DOI":"10.1016\/j.infsof.2017.08.014","article-title":"Test case prioritization approaches in regression testing: A systematic literature review","volume":"93","author":"Khatibsyarbini","year":"2018","journal-title":"Inf. Softw. Technol."},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b31","doi-asserted-by":"crossref","first-page":"101","DOI":"10.1080\/08993400412331363843","article-title":"A comparison of source code plagiarism detection engines","volume":"14","author":"Lancaster","year":"2004","journal-title":"Comput. Sci. Educ."},{"key":"10.1016\/j.jss.2023.111674_b32","series-title":"Proceedings Conference on Software Maintenance 1992","first-page":"282","article-title":"Identification of program modifications and its applications in software maintenance","author":"Laski","year":"1992"},{"issue":"1","key":"10.1016\/j.jss.2023.111674_b33","doi-asserted-by":"crossref","first-page":"65","DOI":"10.1007\/s10515-011-0093-0","article-title":"Prioritizing test cases with string distances","volume":"19","author":"Ledru","year":"2012","journal-title":"Autom. Softw. Eng."},{"year":"2014","series-title":"Microservices, a definition of this new architectural term","author":"Lewis","key":"10.1016\/j.jss.2023.111674_b34"},{"key":"10.1016\/j.jss.2023.111674_b35","doi-asserted-by":"crossref","first-page":"724","DOI":"10.1016\/j.future.2019.05.048","article-title":"Graph-based and scenario-driven microservice analysis, retrieval, and testing","volume":"100","author":"Ma","year":"2019","journal-title":"Future Gener. Comput. Syst."},{"key":"10.1016\/j.jss.2023.111674_b36","series-title":"Proc. of ICSE","first-page":"85","article-title":"Compatibility and regression testing of COTS-component-based software","author":"Mariani","year":"2007"},{"key":"10.1016\/j.jss.2023.111674_b37","series-title":"Proc. of SEFM 2015 Collocated Workshops","first-page":"3","article-title":"Learning-based testing of distributed microservice architectures: Correctness and fault injection","volume":"Vol. 9509","author":"Meinke","year":"2015"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b38","doi-asserted-by":"crossref","first-page":"81","DOI":"10.1002\/stvr.225","article-title":"ATGen: automatic test data generation using constraint logic programming and symbolic execution","volume":"11","author":"Meudec","year":"2001","journal-title":"Softw. Test. Verif. Reliab."},{"key":"10.1016\/j.jss.2023.111674_b39","series-title":"Proceedings of the 40th International Conference on Software Engineering","first-page":"222","article-title":"FAST approaches to scalable similarity-based test case prioritization","author":"Miranda","year":"2018"},{"issue":"08","key":"10.1016\/j.jss.2023.111674_b40","first-page":"81","article-title":"A brief survey on symbolic execution test-selection techniques","volume":"06","author":"Nivethithaa","year":"2018","journal-title":"Int. J. Comput. Sci. Eng."},{"key":"10.1016\/j.jss.2023.111674_b41","series-title":"Proceedings of the 26th International Symposium on Software Reliability Engineering","first-page":"58","article-title":"A similarity-based approach for test case prioritization using historical failure data","author":"Noor","year":"2015"},{"key":"10.1016\/j.jss.2023.111674_b42","series-title":"Proc. of ICST","first-page":"346","article-title":"An empirical study on the use of defect prediction for test case prioritization","author":"Paterson","year":"2019"},{"key":"10.1016\/j.jss.2023.111674_b43","series-title":"Proc. of SCC","first-page":"41","article-title":"Towards executable specifications for microservices","author":"Quenum","year":"2018"},{"key":"10.1016\/j.jss.2023.111674_b44","series-title":"2015 IEEE Symposium on Service-Oriented System Engineering","first-page":"153","article-title":"A service framework for parallel test execution on a developer\u2019s local development workstation","author":"Rahman","year":"2015"},{"key":"10.1016\/j.jss.2023.111674_b45","series-title":"Proceedings of the First International Conference on Computational Intelligence and Informatics","first-page":"321","article-title":"Static program behavior tracing for program similarity quantification","volume":"Vol. 507","author":"Raman","year":"2017"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b46","doi-asserted-by":"crossref","first-page":"173","DOI":"10.1145\/248233.248262","article-title":"A safe, efficient regression test selection technique","volume":"6","author":"Rothermel","year":"1997","journal-title":"ACM Trans. Softw. Eng. Methodol. (TOSEM)"},{"key":"10.1016\/j.jss.2023.111674_b47","series-title":"2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems","first-page":"323","article-title":"Microservice-tailored generation of session-based workload models for representative load testing","author":"Schulz","year":"2019"},{"key":"10.1016\/j.jss.2023.111674_b48","series-title":"Proc. of ASE","first-page":"571","article-title":"Concolic testing","author":"Sen","year":"2007"},{"issue":"10","key":"10.1016\/j.jss.2023.111674_b49","first-page":"1","article-title":"A survey of software clone detection techniques","volume":"137","author":"Sheneamer","year":"2016","journal-title":"Int. J. Comput. Appl."},{"key":"10.1016\/j.jss.2023.111674_b50","article-title":"Comparison of open-source runtime testing tools for microservices","author":"Sotomayor","year":"2022","journal-title":"Softw. Qual. J."},{"issue":"3","key":"10.1016\/j.jss.2023.111674_b51","doi-asserted-by":"crossref","first-page":"1461","DOI":"10.1007\/s10664-018-9663-0","article-title":"Mock objects for testing java systems","volume":"24","author":"Spadini","year":"2018","journal-title":"Empir. Softw. Eng."},{"key":"10.1016\/j.jss.2023.111674_b52","doi-asserted-by":"crossref","unstructured":"Vahabzadeh,\u00a0A., Stocco,\u00a0A., Mesbah,\u00a0A., 2018. Fine-grained Test Minimization. In: Proc. of ICSE. pp. 210\u2013221.","DOI":"10.1145\/3180155.3180203"},{"key":"10.1016\/j.jss.2023.111674_b53","series-title":"Proc. of ISSTA","first-page":"97","article-title":"Test input generation with java PathFinder","author":"Visser","year":"2004"},{"key":"10.1016\/j.jss.2023.111674_b54","series-title":"Reliability, Quality and Safety of Software-Intensive Systems","first-page":"3","article-title":"Pythia: A regression test selection tool based on textual differencing","author":"Vokolos","year":"1997"},{"key":"10.1016\/j.jss.2023.111674_b55","series-title":"Duplication, Redundancy, and Similarity in Software","first-page":"1","article-title":"Similarity in programs","volume":"Vol. 6301","author":"Walenstein","year":"2007"},{"key":"10.1016\/j.jss.2023.111674_b56","series-title":"Proceedings of the International Conference on Software Engineering and Knowledge Engineering","first-page":"6","article-title":"Similarity-based regression test case prioritization","author":"Wang","year":"2015"},{"key":"10.1016\/j.jss.2023.111674_b57","series-title":"Proceedings of the 32nd IEEE\/ACM International Conference on Automated Software Engineering","first-page":"319","article-title":"In-memory fuzzing for binary code similarity analysis","author":"Wang","year":"2017"},{"key":"10.1016\/j.jss.2023.111674_b58","series-title":"Proc. of APSEC","first-page":"119","article-title":"Testing microservices architecture-based applications: A systematic mapping study","author":"Waseem","year":"2020"},{"issue":"1\u20132","key":"10.1016\/j.jss.2023.111674_b59","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1017\/S1471068411000494","article-title":"Swi-prolog","volume":"12","author":"Wielemaker","year":"2012","journal-title":"Theory Pract. Logic Program."},{"key":"10.1016\/j.jss.2023.111674_b60","series-title":"Proc. of EDCC","first-page":"281","article-title":"PathCrawler: Automatic generation of path tests by combining static and dynamic analysis","volume":"Vol. 3463","author":"Williams","year":"2005"},{"issue":"5","key":"10.1016\/j.jss.2023.111674_b61","doi-asserted-by":"crossref","first-page":"589","DOI":"10.1093\/comjnl\/bxm021","article-title":"A survey of Coverage-Based testing tools","volume":"52","author":"Yang","year":"2009","journal-title":"Comput. J."},{"key":"10.1016\/j.jss.2023.111674_b62","series-title":"Proceedings-IEEE Computer Society\u2019s International Computer Software & Applications Conference","first-page":"272","article-title":"Method for revalidating modified programs in the maintenance phase","author":"Yau","year":"1987"},{"issue":"2","key":"10.1016\/j.jss.2023.111674_b63","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1002\/stv.430","article-title":"Regression testing minimization, selection and prioritization: a survey","volume":"22","author":"Yoo","year":"2012","journal-title":"Softw. Test. Verif. Reliab."}],"container-title":["Journal of Systems and Software"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121223000699?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S0164121223000699?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2025,9,27]],"date-time":"2025-09-27T23:32:42Z","timestamp":1759015962000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S0164121223000699"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,7]]},"references-count":63,"alternative-id":["S0164121223000699"],"URL":"https:\/\/doi.org\/10.1016\/j.jss.2023.111674","relation":{},"ISSN":["0164-1212"],"issn-type":[{"type":"print","value":"0164-1212"}],"subject":[],"published":{"date-parts":[[2023,7]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"What makes test programs similar in microservices applications?","name":"articletitle","label":"Article Title"},{"value":"Journal of Systems and Software","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jss.2023.111674","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2023 The Authors. Published by Elsevier Inc.","name":"copyright","label":"Copyright"}],"article-number":"111674"}}