{"title":"Encoding Test Cases using Execution Traces","authors":"Ziad Al-Sharif, Wafa F. Abdalrahman, C. Jeffery","doi":"10.1109/ICICS52457.2021.9464569","DOIUrl":null,"url":null,"abstract":"Test case minimization can be critical to meeting the release date of a software product. Identifying redundant test cases can help improve the quality of the test suite and speed up the testing process. Thus, there is a need to uniquely characterize test cases. This identification can support the test engineer to remove redundancy in the test suite and prioritize test cases that are highly affected by the most recent modification in source code. This paper proposes a test case encoding approach that allows engineers to facilitate execution traces to classify and identify their test cases. It will empower test engineers and allow them to minimize the time and cost of testing by reducing the number of test cases, especially in regression testing. Furthermore, it enhances the documentation of the testing process by providing a one-to-one mapping between test cases and their corresponding execution traces, each of which is a sequence of execution events triggered during the execution of the test case. The one-to-one mapping allows the approach to uniquely represent the control-flow and data-flow within the source code. This trace can be used as a signature for the test case. Whenever a modification occurred in the source code, the newly captured signatures are compared against the previous ones; any mismatch indicates that the test case has been affected by the modification. Repeating this process will help classify the test suite into four groups of test cases. This provides the ability to put the testing efforts where it is needed. Additionally, keeping a hashed value for each of the captured sequences simplifies the comparison and unifies the mapping between test cases and captured traces. It also allows detection of minor modifications in the traced events, and reduces the lengthy traces to a set of fixed size hashed values.","PeriodicalId":421803,"journal":{"name":"2021 12th International Conference on Information and Communication Systems (ICICS)","volume":"11 4 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-05-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 12th International Conference on Information and Communication Systems (ICICS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ICICS52457.2021.9464569","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1
Abstract
Test case minimization can be critical to meeting the release date of a software product. Identifying redundant test cases can help improve the quality of the test suite and speed up the testing process. Thus, there is a need to uniquely characterize test cases. This identification can support the test engineer to remove redundancy in the test suite and prioritize test cases that are highly affected by the most recent modification in source code. This paper proposes a test case encoding approach that allows engineers to facilitate execution traces to classify and identify their test cases. It will empower test engineers and allow them to minimize the time and cost of testing by reducing the number of test cases, especially in regression testing. Furthermore, it enhances the documentation of the testing process by providing a one-to-one mapping between test cases and their corresponding execution traces, each of which is a sequence of execution events triggered during the execution of the test case. The one-to-one mapping allows the approach to uniquely represent the control-flow and data-flow within the source code. This trace can be used as a signature for the test case. Whenever a modification occurred in the source code, the newly captured signatures are compared against the previous ones; any mismatch indicates that the test case has been affected by the modification. Repeating this process will help classify the test suite into four groups of test cases. This provides the ability to put the testing efforts where it is needed. Additionally, keeping a hashed value for each of the captured sequences simplifies the comparison and unifies the mapping between test cases and captured traces. It also allows detection of minor modifications in the traced events, and reduces the lengthy traces to a set of fixed size hashed values.