{"id":{"repo_id":"uiuc","oai_identifier":"oai:www.ideals.illinois.edu:2142/106384"},"canonical_url":"https://search.dev.ndltd.org/etd/uiuc/oai:www.ideals.illinois.edu:2142/106384","repository":{"repo_id":"uiuc","name":"University of Illinois - Urbana-Champaign","base_url":"https://www.ideals.illinois.edu/oai-pmh"},"display":{"title":"Reusing software tests for configuration testing: A case study of the Hadoop project","abstract":"Configuration is an inseparable piece of today’s software development. Due to its dynamic nature and lack of standardized checking procedure, misconfiguration has been one of the dominant factors contributing to software failures in production and wide spread outages. Existing techniques (static validation, system tests, canaries, etc.) for detecting misconfigurations have limitations, either being too coarse grained and unable to precisely exercise the changed configuration value, or not considering the interaction between configuration and software source code. Configuration testing takes pages from traditional software testing practices to test software configurations in a similar vein as how software code is tested. This thesis makes a first step exploration towards configuration testing, focusing on analyzing feasibility and effectiveness of reusing existing source code tests to test configuration values. Through building a semi-automated infrastructure associating unit tests with configuration parameters, and later run the associated tests against injected correct and incorrect configuration values for each parameter, this thesis shows that reusing existing software test for configuration testing directly could yield an effective rate of 41.7% and 48.8%, for Hadoop Common and HDFS, respectively. Further, this thesis conducts in-depth analysis on tests that cannot be effectively reused, categorizes code patterns of these tests that have false positives or negatives, and provides examples on rewriting these tests.","abstract_html":"Configuration is an inseparable piece of today’s software development. Due to its dynamic nature and lack of standardized checking procedure, misconfiguration has been one of the dominant factors contributing to software failures in production and wide spread outages. Existing techniques (static validation, system tests, canaries, etc.) for detecting misconfigurations have limitations, either being too coarse grained and unable to precisely exercise the changed configuration value, or not considering the interaction between configuration and software source code. Configuration testing takes pages from traditional software testing practices to test software configurations in a similar vein as how software code is tested. This thesis makes a first step exploration towards configuration testing, focusing on analyzing feasibility and effectiveness of reusing existing source code tests to test configuration values. Through building a semi-automated infrastructure associating unit tests with configuration parameters, and later run the associated tests against injected correct and incorrect configuration values for each parameter, this thesis shows that reusing existing software test for configuration testing directly could yield an effective rate of 41.7% and 48.8%, for Hadoop Common and HDFS, respectively. Further, this thesis conducts in-depth analysis on tests that cannot be effectively reused, categorizes code patterns of these tests that have false positives or negatives, and provides examples on rewriting these tests.","abstract_has_math":false,"creators":["Ang, Ran"],"institution":"University of Illinois at Urbana-Champaign","degree_name":"M.S.","degree_level":"Thesis","degree_discipline":"Computer Science","degree_department":null,"school":null,"contributors":["Xu, Tianyin"],"advisors":[],"committee_chairs":[],"committee_members":[],"year":2020,"date_issued":"2020-03-02T22:15:15Z","date_published":"2020-03-02T22:15:15Z","updated_at":"2026-07-22T22:24:45Z","subjects":["Configuration Testing","Hadoop"],"languages":["en"],"rights":["Copyright 2019 Ran Ang"],"rights_urls":[],"identifier_entries":[]},"links":{"outbound_url":"http://hdl.handle.net/2142/106384","outbound_label":"Handle","outbound_source":"dc:identifier"},"metadata_groups":[{"id":"people","label":"People","entries":[{"key":"dc:contributor","label":"Contributor","values":["Xu, Tianyin"]},{"key":"dc:creator","label":"Author","values":["Ang, Ran"]}]},{"id":"academic_context","label":"Academic Context","entries":[{"key":"dc:date","label":"Dc Date","values":["2020-03-02T22:15:15Z","2022-03-03T10:15:27Z","2019-12-09","2019-12"]},{"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":["Configuration Testing","Hadoop"]}]},{"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 Ran Ang"]}]},{"id":"identifiers","label":"Identifiers","entries":[{"key":"dc:identifier","label":"Identifier","values":["http://hdl.handle.net/2142/106384"]}]},{"id":"additional","label":"Additional Metadata","entries":[{"key":"dc:description","label":"Description","values":["Configuration is an inseparable piece of today’s software development. Due to its dynamic nature and lack of standardized checking procedure, misconfiguration has been one of the dominant factors contributing to software failures in production and wide spread outages. Existing techniques (static validation, system tests, canaries, etc.) for detecting misconfigurations have limitations, either being too coarse grained and unable to precisely exercise the changed configuration value, or not considering the interaction between configuration and software source code. Configuration testing takes pages from traditional software testing practices to test software configurations in a similar vein as how software code is tested. This thesis makes a first step exploration towards configuration testing, focusing on analyzing feasibility and effectiveness of reusing existing source code tests to test configuration values. Through building a semi-automated infrastructure associating unit tests with configuration parameters, and later run the associated tests against injected correct and incorrect configuration values for each parameter, this thesis shows that reusing existing software test for configuration testing directly could yield an effective rate of 41.7% and 48.8%, for Hadoop Common and HDFS, respectively. Further, this thesis conducts in-depth analysis on tests that cannot be effectively reused, categorizes code patterns of these tests that have false positives or negatives, and provides examples on rewriting these tests.","Submission published under a 24 month embargo labeled 'U of I Access', the embargo will last until 2021-12-01","The student, Ran Ang, accepted the attached license on 2019-12-07 at 18:18.","The student, Ran Ang, submitted this Thesis for approval on 2019-12-07 at 18:24.","This Thesis was approved for publication on 2019-12-09 at 10:22.","DSpace SAF Submission Ingestion Package generated from Vireo submission #14752 on 2020-02-28 at 17:23:55","Made available in DSpace on 2020-03-02T22:15:15Z (GMT). No. of bitstreams: 2 ANG-THESIS-2019.pdf: 332563 bytes, checksum: 5c6b0e2ddb8e223120457924257604ef (MD5) LICENSE.txt: 4207 bytes, checksum: 81549f2d6af3e2133985795635e865f8 (MD5) Previous issue date: 2019-12-09","Embargo set by: Seth Robbins for item 113926 Lift date: 2022-03-02T22:15:21Z Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","Embargo set by: Seth Robbins for item 113926 Lift date: 2022-03-02T22:18:25Z Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","U of I Only Restriction Lifted for Item 113926 on 2022-03-03T10:15:27Z."]},{"key":"dc:format","label":"Dc Format","values":["application/pdf"]},{"key":"dc:title","label":"Title","values":["Reusing software tests for configuration testing: A case study of the Hadoop project"]}]}],"canonical_facts":{"dc:contributor":["Xu, Tianyin"],"dc:creator":["Ang, Ran"],"dc:date":["2020-03-02T22:15:15Z","2022-03-03T10:15:27Z","2019-12-09","2019-12"],"dc:description":["Configuration is an inseparable piece of today’s software development. Due to its dynamic nature and lack of standardized checking procedure, misconfiguration has been one of the dominant factors contributing to software failures in production and wide spread outages. Existing techniques (static validation, system tests, canaries, etc.) for detecting misconfigurations have limitations, either being too coarse grained and unable to precisely exercise the changed configuration value, or not considering the interaction between configuration and software source code. Configuration testing takes pages from traditional software testing practices to test software configurations in a similar vein as how software code is tested. This thesis makes a first step exploration towards configuration testing, focusing on analyzing feasibility and effectiveness of reusing existing source code tests to test configuration values. Through building a semi-automated infrastructure associating unit tests with configuration parameters, and later run the associated tests against injected correct and incorrect configuration values for each parameter, this thesis shows that reusing existing software test for configuration testing directly could yield an effective rate of 41.7% and 48.8%, for Hadoop Common and HDFS, respectively. Further, this thesis conducts in-depth analysis on tests that cannot be effectively reused, categorizes code patterns of these tests that have false positives or negatives, and provides examples on rewriting these tests.","Submission published under a 24 month embargo labeled 'U of I Access', the embargo will last until 2021-12-01","The student, Ran Ang, accepted the attached license on 2019-12-07 at 18:18.","The student, Ran Ang, submitted this Thesis for approval on 2019-12-07 at 18:24.","This Thesis was approved for publication on 2019-12-09 at 10:22.","DSpace SAF Submission Ingestion Package generated from Vireo submission #14752 on 2020-02-28 at 17:23:55","Made available in DSpace on 2020-03-02T22:15:15Z (GMT). No. of bitstreams: 2 ANG-THESIS-2019.pdf: 332563 bytes, checksum: 5c6b0e2ddb8e223120457924257604ef (MD5) LICENSE.txt: 4207 bytes, checksum: 81549f2d6af3e2133985795635e865f8 (MD5) Previous issue date: 2019-12-09","Embargo set by: Seth Robbins for item 113926 Lift date: 2022-03-02T22:15:21Z Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","Embargo set by: Seth Robbins for item 113926 Lift date: 2022-03-02T22:18:25Z Reason: Author requested U of Illinois access only (OA after 2yrs) in Vireo ETD system","U of I Only Restriction Lifted for Item 113926 on 2022-03-03T10:15:27Z."],"dc:format":["application/pdf"],"dc:identifier":["http://hdl.handle.net/2142/106384"],"dc:language":["en"],"dc:rights":["Copyright 2019 Ran Ang"],"dc:subject":["Configuration Testing","Hadoop"],"dc:title":["Reusing software tests for configuration testing: A case study of the Hadoop project"],"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:45Z"}