Prioritizing versions for performance regression testing: the Pharo case
Author
dc.contributor.author
Sandoval Alcocer, Juan Pablo
Author
dc.contributor.author
Bergel, Alexandre
Author
dc.contributor.author
Valente, Marco Tulio
Admission date
dc.date.accessioned
2020-04-22T15:42:00Z
Available date
dc.date.available
2020-04-22T15:42:00Z
Publication date
dc.date.issued
2020
Cita de ítem
dc.identifier.citation
Science of Computer Programming 191 (2020) 102415
es_ES
Identifier
dc.identifier.other
10.1016/j.scico.2020.102415
Identifier
dc.identifier.uri
https://repositorio.uchile.cl/handle/2250/174011
Abstract
dc.description.abstract
Context: Software performance may suffer regressions caused by source code changes. Measuring performance at each new software version is useful for early detection of performance regressions. However, systematically running benchmarks is often impractical (e.g., long running execution, prioritizing functional correctness over non-functional).
Objective: In this article, we propose Horizontal Profiling, a sampling technique to predict when a new revision may cause a regression by analyzing the source code and using run-time information of a previous version. The goal of Horizontal Profiling is to reduce the performance testing overhead by benchmarking just software versions that contain costly source code changes.
Method: We present an evaluation in which we apply Horizontal Profiling to identify performance regressions of 17 software projects written in the Pharo programming language, totaling 1,288 software versions.
Results: Horizontal Profiling detects more than 80% of the regressions by benchmarking less than 20% of the versions. In addition, our experiments show that Horizontal Profiling has better precision and executes the benchmarks in less versions that the state of the art tools, under our benchmarks.
Conclusions: We conclude that by adequately characterizing the run-time information of a previous version, it is possible to determine if a new version is likely to introduce a performance regression or not. As a consequence, a significant fraction of the performance regressions are identified by benchmarking only a small fraction of the software versions.
es_ES
Patrocinador
dc.description.sponsorship
Lam Research
4800054170
4800043946
STICAmSud project
14STIC-02
Comision Nacional de Investigacion Cientifica y Tecnologica (CONICYT)
CONICYT FONDECYT
1200067
European Smalltalk User Group