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...
Autores principales: | , , |
---|---|
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 |