{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/105244"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/105244","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"A study of testing a microservice system based on code coverage","abstract":"The microservice architecture is a service-oriented architecture that supports the development of small loosely-coupled software services. In contrast to the monolithic architecture, the microservice architecture is increasingly popular among developers since it allows for an easier development process, reduces the barrier to adding new technologies to a system, and increases the efficiency of a system's scalability. Testing a microservice system with a test suite (i.e., a collection of test cases) is an important means for improving the quality of the microservice system. To guide the assessment and improvement of the test suite, code-coverage information is commonly used. However, there exists no research on investigating how code-coverage information can be used to measure and improve a test suite for a microservice system. To fill this gap, we conduct an empirical study on testing a benchmark microservice system by measuring code-coverage achieved by its test suite based on a coverage-measurement infrastructure that we build. The line-coverage results show that covering a major portion of the lines not being covered is blocked by error-handling branches (i.e., branches related to error handling). Based on the code-coverage information, we explore ways of augmenting the existing test suite to achieve higher code-coverage. In particular, guided by the code-coverage information, we augment the existing test suite by adding new test cases to aim for covering those functionalities whose related code portions are not covered by the existing test suite. In addition, to covering those error-handling branches, we augment the test suite by manipulating its execution environment, i.e., mutating the messages sent by a microservice to another microservice in order to aim for covering not-covered error-handling branches. Such coverage-guided test-suite augmentation helps achieve higher code-coverage of the microservice system.","abstract_html":"The microservice architecture is a service-oriented architecture that supports the development of small loosely-coupled software services. In contrast to the monolithic architecture, the microservice architecture is increasingly popular among developers since it allows for an easier development process, reduces the barrier to adding new technologies to a system, and increases the efficiency of a system&#x27;s scalability. Testing a microservice system with a test suite (i.e., a collection of test cases) is an important means for improving the quality of the microservice system. To guide the assessment and improvement of the test suite, code-coverage information is commonly used. However, there exists no research on investigating how code-coverage information can be used to measure and improve a test suite for a microservice system. To fill this gap, we conduct an empirical study on testing a benchmark microservice system by measuring code-coverage achieved by its test suite based on a coverage-measurement infrastructure that we build. The line-coverage results show that covering a major portion of the lines not being covered is blocked by error-handling branches (i.e., branches related to error handling). Based on the code-coverage information, we explore ways of augmenting the existing test suite to achieve higher code-coverage. In particular, guided by the code-coverage information, we augment the existing test suite by adding new test cases to aim for covering those functionalities whose related code portions are not covered by the existing test suite. In addition, to covering those error-handling branches, we augment the test suite by manipulating its execution environment, i.e., mutating the messages sent by a microservice to another microservice in order to aim for covering not-covered error-handling branches. Such coverage-guided test-suite augmentation helps achieve higher code-coverage of the microservice system.","abstract_has_math":false,"creators":["Gorse, Shirdon Ismial"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Xie, Tao"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2019,"date_issued":"2019-08-23T20:48:23Z","date_published":"2019-08-23T20:48:23Z","updated_at":"2026-07-22T22:24:44Z","subjects":["Microservices","Coverage"],"languages":["en"],"rights":["Copyright 2019 Shirdon Gorse"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/105244","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Xie, Tao"]},{"key":"dc:creator","label":"Author","values":["Gorse, Shirdon Ismial"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2019-08-23T20:48:23Z","2021-08-24T09:15:11Z","2019-04-26","2019-05"]},{"key":"dc:type","label":"Dc Type","values":["text"]},{"key":"thesis:degree_discipline","label":"Discipline","values":["Computer Science"]},{"key":"thesis:degree_level","label":"Degree Level","values":["Thesis"]},{"key":"thesis:degree_name","label":"Degree Name","values":["M.S."]},{"key":"thesis:institution_name","label":"Thesis Institution Name","values":["University of Illinois at Urbana-Champaign"]}]},{"id":"subjects_keywords","label":"Subjects and Keywords","entries":[{"key":"dc:subject","label":"Dc Subject","values":["Microservices","Coverage"]}]},{"id":"language_rights","label":"Language and Rights","entries":[{"key":"dc:language","label":"Dc Language","values":["en"]},{"key":"dc:rights","label":"Dc Rights","values":["Copyright 2019 Shirdon Gorse"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/105244"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["The microservice architecture is a service-oriented architecture that supports the development of small loosely-coupled software services. In contrast to the monolithic architecture, the microservice architecture is increasingly popular among developers since it allows for an easier development process, reduces the barrier to adding new technologies to a system, and increases the efficiency of a system's scalability. Testing a microservice system with a test suite (i.e., a collection of test cases) is an important means for improving the quality of the microservice system. To guide the assessment and improvement of the test suite, code-coverage information is commonly used. However, there exists no research on investigating how code-coverage information can be used to measure and improve a test suite for a microservice system. To fill this gap, we conduct an empirical study on testing a benchmark microservice system by measuring code-coverage achieved by its test suite based on a coverage-measurement infrastructure that we build. The line-coverage results show that covering a major portion of the lines not being covered is blocked by error-handling branches (i.e., branches related to error handling). Based on the code-coverage information, we explore ways of augmenting the existing test suite to achieve higher code-coverage. In particular, guided by the code-coverage information, we augment the existing test suite by adding new test cases to aim for covering those functionalities whose related code portions are not covered by the existing test suite. In addition, to covering those error-handling branches, we augment the test suite by manipulating its execution environment, i.e., mutating the messages sent by a microservice to another microservice in order to aim for covering not-covered error-handling branches. Such coverage-guided test-suite augmentation helps achieve higher code-coverage of the microservice system.","Submission published under a 24 month embargo labeled 'Closed Access', the embargo will last until 2021-05-01","The student, Shirdon Gorse, accepted the attached license on 2019-04-26 at 15:00.","The student, Shirdon Gorse, submitted this Thesis for approval on 2019-04-26 at 15:17.","This Thesis was approved for publication on 2019-04-26 at 15:22.","DSpace SAF Submission Ingestion Package generated from Vireo submission #13825 on 2019-08-22 at 16:23:36","Made available in DSpace on 2019-08-23T20:48:23Z (GMT). No. of bitstreams: 2 GORSE-THESIS-2019.pdf: 508467 bytes, checksum: 342f49be7634a5426c661ffb37eede4c (MD5) LICENSE.txt: 4210 bytes, checksum: 5e2d2cade00d6d0dd2bb6582914b636e (MD5) Previous issue date: 2019-04-26","Embargo set by: Seth Robbins for item 112366 Lift date: 2021-08-23T20:48:32Z Reason: Author requested closed access (OA after 2yrs) in Vireo ETD system","Limited Restriction Lifted for Item 112366 on 2021-08-24T09:15:11Z."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["A study of testing a microservice system based on code coverage"]}]}],"canonical_facts":{"dc:contributor":["Xie, Tao"],"dc:creator":["Gorse, Shirdon Ismial"],"dc:date":["2019-08-23T20:48:23Z","2021-08-24T09:15:11Z","2019-04-26","2019-05"],"dc:description":["The microservice architecture is a service-oriented architecture that supports the development of small loosely-coupled software services. In contrast to the monolithic architecture, the microservice architecture is increasingly popular among developers since it allows for an easier development process, reduces the barrier to adding new technologies to a system, and increases the efficiency of a system's scalability. Testing a microservice system with a test suite (i.e., a collection of test cases) is an important means for improving the quality of the microservice system. To guide the assessment and improvement of the test suite, code-coverage information is commonly used. However, there exists no research on investigating how code-coverage information can be used to measure and improve a test suite for a microservice system. To fill this gap, we conduct an empirical study on testing a benchmark microservice system by measuring code-coverage achieved by its test suite based on a coverage-measurement infrastructure that we build. The line-coverage results show that covering a major portion of the lines not being covered is blocked by error-handling branches (i.e., branches related to error handling). Based on the code-coverage information, we explore ways of augmenting the existing test suite to achieve higher code-coverage. In particular, guided by the code-coverage information, we augment the existing test suite by adding new test cases to aim for covering those functionalities whose related code portions are not covered by the existing test suite. In addition, to covering those error-handling branches, we augment the test suite by manipulating its execution environment, i.e., mutating the messages sent by a microservice to another microservice in order to aim for covering not-covered error-handling branches. Such coverage-guided test-suite augmentation helps achieve higher code-coverage of the microservice system.","Submission published under a 24 month embargo labeled 'Closed Access', the embargo will last until 2021-05-01","The student, Shirdon Gorse, accepted the attached license on 2019-04-26 at 15:00.","The student, Shirdon Gorse, submitted this Thesis for approval on 2019-04-26 at 15:17.","This Thesis was approved for publication on 2019-04-26 at 15:22.","DSpace SAF Submission Ingestion Package generated from Vireo submission #13825 on 2019-08-22 at 16:23:36","Made available in DSpace on 2019-08-23T20:48:23Z (GMT). No. of bitstreams: 2 GORSE-THESIS-2019.pdf: 508467 bytes, checksum: 342f49be7634a5426c661ffb37eede4c (MD5) LICENSE.txt: 4210 bytes, checksum: 5e2d2cade00d6d0dd2bb6582914b636e (MD5) Previous issue date: 2019-04-26","Embargo set by: Seth Robbins for item 112366 Lift date: 2021-08-23T20:48:32Z Reason: Author requested closed access (OA after 2yrs) in Vireo ETD system","Limited Restriction Lifted for Item 112366 on 2021-08-24T09:15:11Z."],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/105244"],"dc:language":["en"],"dc:rights":["Copyright 2019 Shirdon Gorse"],"dc:subject":["Microservices","Coverage"],"dc:title":["A study of testing a microservice system based on code coverage"],"dc:type":["text"],"thesis:degree_discipline":["Computer Science"],"thesis:degree_level":["Thesis"],"thesis:degree_name":["M.S."],"thesis:institution_name":["University of Illinois at Urbana-Champaign"]},"updated_at":"2026-07-22T22:24:44Z"}