AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite

Due to the incremental and iterative nature of the software testing process, a test suite may become bloated with redundant, overlapping, and similar test cases. This paper aims to optimize a bloated test suite by employing an execution trace that encodes runtime events into a sequence of characters...

Full description

Saved in:
Bibliographic Details
Main Authors: Ziad A. Al-Sharif, Clinton L. Jeffery
Format: Article
Language:English
Published: MDPI AG 2024-11-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/14/23/11168
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1846124421383716864
author Ziad A. Al-Sharif
Clinton L. Jeffery
author_facet Ziad A. Al-Sharif
Clinton L. Jeffery
author_sort Ziad A. Al-Sharif
collection DOAJ
description Due to the incremental and iterative nature of the software testing process, a test suite may become bloated with redundant, overlapping, and similar test cases. This paper aims to optimize a bloated test suite by employing an execution trace that encodes runtime events into a sequence of characters forming a string. A dataset of strings, each of which represents the code coverage and execution behavior of a test case, is analyzed to identify similarities between test cases. This facilitates the <i>de-bloating</i> process by providing a formal mechanism to identify, remove, and reduce <i>extra</i> test cases without compromising software quality. This form of analysis allows for the clustering and classification of test cases based on their code coverage and similarity score. This paper explores three levels of execution traces and evaluates different techniques to measure their similarities. Test cases with the same code coverage should generate the exact string representation of runtime events. Various string similarity metrics are assessed to find the similarity score, which is used to classify, detect, and rank test cases accordingly. Additionally, this paper demonstrates the validity of the approach with two case studies. The first shows how to classify the execution behavior of various test cases, which can provide insight into each test case’s internal behavior. The second shows how to identify similar test cases based on their code coverage.
format Article
id doaj-art-346db059e8094602bca848a0d4c92816
institution Kabale University
issn 2076-3417
language English
publishDate 2024-11-01
publisher MDPI AG
record_format Article
series Applied Sciences
spelling doaj-art-346db059e8094602bca848a0d4c928162024-12-13T16:23:02ZengMDPI AGApplied Sciences2076-34172024-11-0114231116810.3390/app142311168AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test SuiteZiad A. Al-Sharif0Clinton L. Jeffery1Department of Software Engineering, Faculty of Computer and Information Technology, Jordan University of Science and Technology (JUST), Irbid 22110, JordanDepartment of Computer Science and Engineering, New Mexico Institute of Mining and Technology, Socorro, NM 87801, USADue to the incremental and iterative nature of the software testing process, a test suite may become bloated with redundant, overlapping, and similar test cases. This paper aims to optimize a bloated test suite by employing an execution trace that encodes runtime events into a sequence of characters forming a string. A dataset of strings, each of which represents the code coverage and execution behavior of a test case, is analyzed to identify similarities between test cases. This facilitates the <i>de-bloating</i> process by providing a formal mechanism to identify, remove, and reduce <i>extra</i> test cases without compromising software quality. This form of analysis allows for the clustering and classification of test cases based on their code coverage and similarity score. This paper explores three levels of execution traces and evaluates different techniques to measure their similarities. Test cases with the same code coverage should generate the exact string representation of runtime events. Various string similarity metrics are assessed to find the similarity score, which is used to classify, detect, and rank test cases accordingly. Additionally, this paper demonstrates the validity of the approach with two case studies. The first shows how to classify the execution behavior of various test cases, which can provide insight into each test case’s internal behavior. The second shows how to identify similar test cases based on their code coverage.https://www.mdpi.com/2076-3417/14/23/11168software engineeringsoftware testingexecution tracetest suitebloated testingmachine learning
spellingShingle Ziad A. Al-Sharif
Clinton L. Jeffery
AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
Applied Sciences
software engineering
software testing
execution trace
test suite
bloated testing
machine learning
title AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
title_full AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
title_fullStr AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
title_full_unstemmed AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
title_short AbstractTrace: The Use of Execution Traces to Cluster, Classify, Prioritize, and Optimize a Bloated Test Suite
title_sort abstracttrace the use of execution traces to cluster classify prioritize and optimize a bloated test suite
topic software engineering
software testing
execution trace
test suite
bloated testing
machine learning
url https://www.mdpi.com/2076-3417/14/23/11168
work_keys_str_mv AT ziadaalsharif abstracttracetheuseofexecutiontracestoclusterclassifyprioritizeandoptimizeabloatedtestsuite
AT clintonljeffery abstracttracetheuseofexecutiontracestoclusterclassifyprioritizeandoptimizeabloatedtestsuite