Cargando…

PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects

Software performance testing is an essential quality assurance mechanism that can identify optimization opportunities. Automating this process requires strong tool support, especially in the case of Continuous Integration (CI) where tests need to run completely automatically and it is desirable to p...

Descripción completa

Detalles Bibliográficos
Autores principales: Javed, Omar, Dawes, Joshua Heneage, Han, Marta, Franzoni, Giovanni, Pfeiffer, Andreas, Reger, Giles, Binder, Walter
Publicado: 2020
Acceso en línea:https://dx.doi.org/10.1145/3324884.3415288
http://cds.cern.ch/record/2799941
_version_ 1780972599723950080
author Javed, Omar
Dawes, Joshua Heneage
Han, Marta
Franzoni, Giovanni
Pfeiffer, Andreas
Reger, Giles
Binder, Walter
author_facet Javed, Omar
Dawes, Joshua Heneage
Han, Marta
Franzoni, Giovanni
Pfeiffer, Andreas
Reger, Giles
Binder, Walter
author_sort Javed, Omar
collection CERN
description Software performance testing is an essential quality assurance mechanism that can identify optimization opportunities. Automating this process requires strong tool support, especially in the case of Continuous Integration (CI) where tests need to run completely automatically and it is desirable to provide developers with actionable feedback. A lack of existing tools means that performance testing is normally left out of the scope of CI. In this paper, we propose a toolchain - PerfCI - to pave the way for developers to easily set up and carry out automated performance testing under CI. Our toolchain is based on allowing users to (1) specify performance testing tasks, (2) analyze unit tests on a variety of python projects ranging from scripts to full-blown flask-based web services, by extending a performance analysis framework (VyPR) and (3) evaluate performance data to get feedback on the code. We demonstrate the feasibility of our toolchain by using it on a web service running at the Compact Muon Solenoid (CMS) experiment at the world's largest particle physics laboratory --- CERN. Package. Source code, example and documentation of PerfCI are available: https://gitlab.cern.ch/omjaved/perfci. Tool demonstration can be viewed on YouTube: https://youtu.be/RDmXMKA1v7g. We also provide the data set used in the analysis: https://gitlab.cern.ch/omjaved/perfci-dataset.
id cern-2799941
institution Organización Europea para la Investigación Nuclear
publishDate 2020
record_format invenio
spelling cern-27999412022-01-27T12:45:59Zdoi:10.1145/3324884.3415288http://cds.cern.ch/record/2799941Javed, OmarDawes, Joshua HeneageHan, MartaFranzoni, GiovanniPfeiffer, AndreasReger, GilesBinder, WalterPerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python ProjectsSoftware performance testing is an essential quality assurance mechanism that can identify optimization opportunities. Automating this process requires strong tool support, especially in the case of Continuous Integration (CI) where tests need to run completely automatically and it is desirable to provide developers with actionable feedback. A lack of existing tools means that performance testing is normally left out of the scope of CI. In this paper, we propose a toolchain - PerfCI - to pave the way for developers to easily set up and carry out automated performance testing under CI. Our toolchain is based on allowing users to (1) specify performance testing tasks, (2) analyze unit tests on a variety of python projects ranging from scripts to full-blown flask-based web services, by extending a performance analysis framework (VyPR) and (3) evaluate performance data to get feedback on the code. We demonstrate the feasibility of our toolchain by using it on a web service running at the Compact Muon Solenoid (CMS) experiment at the world's largest particle physics laboratory --- CERN. Package. Source code, example and documentation of PerfCI are available: https://gitlab.cern.ch/omjaved/perfci. Tool demonstration can be viewed on YouTube: https://youtu.be/RDmXMKA1v7g. We also provide the data set used in the analysis: https://gitlab.cern.ch/omjaved/perfci-dataset.oai:cds.cern.ch:27999412020
spellingShingle Javed, Omar
Dawes, Joshua Heneage
Han, Marta
Franzoni, Giovanni
Pfeiffer, Andreas
Reger, Giles
Binder, Walter
PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title_full PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title_fullStr PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title_full_unstemmed PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title_short PerfCI: A Toolchain for Automated Performance Testing during Continuous Integration of Python Projects
title_sort perfci: a toolchain for automated performance testing during continuous integration of python projects
url https://dx.doi.org/10.1145/3324884.3415288
http://cds.cern.ch/record/2799941
work_keys_str_mv AT javedomar perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT dawesjoshuaheneage perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT hanmarta perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT franzonigiovanni perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT pfeifferandreas perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT regergiles perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects
AT binderwalter perfciatoolchainforautomatedperformancetestingduringcontinuousintegrationofpythonprojects