We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Identifying Performance Changes Using Peass

Formal Metadata

Title
Identifying Performance Changes Using Peass
Title of Series
Number of Parts
637
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Performance is a crucial property of software for both closed and open source software. Assuring that performance requirements are met in the CI process using benchmarks or load tests requires heavy manual effort for benchmark and load test specification. Unit tests often cover a big share of the use cases of a software and are maintained anyway. While they have some downsides for measuring the performance, e.g. since they test corner cases or use functional utilities like mocks, they still are a way of measuring realistic use cases with nearly no manual effort. Therefore, we develop the tool Peass (https://github.com/DaGeRe/peass), which transforms unit tests into performance unit tests and measures their performance. The stand-alone tool Peass can be integrated into the CI-process using Peass-CI, which makes it possible to run performance tests with every build in Jenkins. The talk starts by introducing the basic idea of Peass. Then, the steps of the current prototype of Peass are presented: - a regression test selection, which prunes all unit tests that can not have a performance change by comparison of the execution traces of the same unit tests in two software versions and the source code of the called methods, - a measurement method, which repeats VM starts and measurement iterations inside the VM until the performance change can be statistically reliably detected and - a root cause analysis, which identified the node of the call tree which causes a performance change by measurement of individual nodes. Finally, the talk demonstrates the usage of Peass in a running Jenkins instance.