Cargando…

Applying test case prioritization to software microbenchmarks

Regression testing comprises techniques which are applied during software evolution to uncover faults effectively and efficiently. While regression testing is widely studied for functional tests, performance regression testing, e.g., with software microbenchmarks, is hardly investigated. Applying te...

Descripción completa

Detalles Bibliográficos
Autores principales: Laaber, Christoph, Gall, Harald C., Leitner, Philipp
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Springer US 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8550681/
https://www.ncbi.nlm.nih.gov/pubmed/34776757
http://dx.doi.org/10.1007/s10664-021-10037-x
_version_ 1784591007350784000
author Laaber, Christoph
Gall, Harald C.
Leitner, Philipp
author_facet Laaber, Christoph
Gall, Harald C.
Leitner, Philipp
author_sort Laaber, Christoph
collection PubMed
description Regression testing comprises techniques which are applied during software evolution to uncover faults effectively and efficiently. While regression testing is widely studied for functional tests, performance regression testing, e.g., with software microbenchmarks, is hardly investigated. Applying test case prioritization (TCP), a regression testing technique, to software microbenchmarks may help capturing large performance regressions sooner upon new versions. This may especially be beneficial for microbenchmark suites, because they take considerably longer to execute than unit test suites. However, it is unclear whether traditional unit testing TCP techniques work equally well for software microbenchmarks. In this paper, we empirically study coverage-based TCP techniques, employing total and additional greedy strategies, applied to software microbenchmarks along multiple parameterization dimensions, leading to 54 unique technique instantiations. We find that TCP techniques have a mean APFD-P (average percentage of fault-detection on performance) effectiveness between 0.54 and 0.71 and are able to capture the three largest performance changes after executing 29% to 66% of the whole microbenchmark suite. Our efficiency analysis reveals that the runtime overhead of TCP varies considerably depending on the exact parameterization. The most effective technique has an overhead of 11% of the total microbenchmark suite execution time, making TCP a viable option for performance regression testing. The results demonstrate that the total strategy is superior to the additional strategy. Finally, dynamic-coverage techniques should be favored over static-coverage techniques due to their acceptable analysis overhead; however, in settings where the time for prioritzation is limited, static-coverage techniques provide an attractive alternative.
format Online
Article
Text
id pubmed-8550681
institution National Center for Biotechnology Information
language English
publishDate 2021
publisher Springer US
record_format MEDLINE/PubMed
spelling pubmed-85506812021-11-10 Applying test case prioritization to software microbenchmarks Laaber, Christoph Gall, Harald C. Leitner, Philipp Empir Softw Eng Article Regression testing comprises techniques which are applied during software evolution to uncover faults effectively and efficiently. While regression testing is widely studied for functional tests, performance regression testing, e.g., with software microbenchmarks, is hardly investigated. Applying test case prioritization (TCP), a regression testing technique, to software microbenchmarks may help capturing large performance regressions sooner upon new versions. This may especially be beneficial for microbenchmark suites, because they take considerably longer to execute than unit test suites. However, it is unclear whether traditional unit testing TCP techniques work equally well for software microbenchmarks. In this paper, we empirically study coverage-based TCP techniques, employing total and additional greedy strategies, applied to software microbenchmarks along multiple parameterization dimensions, leading to 54 unique technique instantiations. We find that TCP techniques have a mean APFD-P (average percentage of fault-detection on performance) effectiveness between 0.54 and 0.71 and are able to capture the three largest performance changes after executing 29% to 66% of the whole microbenchmark suite. Our efficiency analysis reveals that the runtime overhead of TCP varies considerably depending on the exact parameterization. The most effective technique has an overhead of 11% of the total microbenchmark suite execution time, making TCP a viable option for performance regression testing. The results demonstrate that the total strategy is superior to the additional strategy. Finally, dynamic-coverage techniques should be favored over static-coverage techniques due to their acceptable analysis overhead; however, in settings where the time for prioritzation is limited, static-coverage techniques provide an attractive alternative. Springer US 2021-09-30 2021 /pmc/articles/PMC8550681/ /pubmed/34776757 http://dx.doi.org/10.1007/s10664-021-10037-x Text en © The Author(s) 2021 https://creativecommons.org/licenses/by/4.0/Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article's Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article's Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://creativecommons.org/licenses/by/4.0/ (https://creativecommons.org/licenses/by/4.0/) .
spellingShingle Article
Laaber, Christoph
Gall, Harald C.
Leitner, Philipp
Applying test case prioritization to software microbenchmarks
title Applying test case prioritization to software microbenchmarks
title_full Applying test case prioritization to software microbenchmarks
title_fullStr Applying test case prioritization to software microbenchmarks
title_full_unstemmed Applying test case prioritization to software microbenchmarks
title_short Applying test case prioritization to software microbenchmarks
title_sort applying test case prioritization to software microbenchmarks
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8550681/
https://www.ncbi.nlm.nih.gov/pubmed/34776757
http://dx.doi.org/10.1007/s10664-021-10037-x
work_keys_str_mv AT laaberchristoph applyingtestcaseprioritizationtosoftwaremicrobenchmarks
AT gallharaldc applyingtestcaseprioritizationtosoftwaremicrobenchmarks
AT leitnerphilipp applyingtestcaseprioritizationtosoftwaremicrobenchmarks