Performance Regression Analysis: Accomplishments and Challenges

corpaulbezemer 928 views 33 slides Mar 13, 2016
Slide 1
Slide 1 of 33
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33

About This Presentation

My invited talk at the The Fifth International Workshop on Large-Scale Testing (LT 2016, co-located with ICPE).


Slide Content

Performance Regression AnalysisPerformance Regression Analysis
Cor-Paul Bezemer
Title:QueensLogo_colour.eps
Creator:Adobe Illustrator(R) 12
CreationDate:9/10/08
LanguageLevel:2
Accomplishments and ChallengesAccomplishments and Challenges

““A burnt child dreads fire”A burnt child dreads fire”

Regression testing makes sure we do Regression testing makes sure we do
not make the same mistake twicenot make the same mistake twice
Write code
Execute
regression
test
Deploy or fix changes

Regression testing also helps us to make Regression testing also helps us to make
sure we are not re-introducing more bugs sure we are not re-introducing more bugs

Performance regression testing helps Performance regression testing helps
ensure we are not breaking performanceensure we are not breaking performance
Write code
Execute
performance
test
Deploy if performance is OK or fix changes

Performance regression testing Performance regression testing
can/should be done on several metricscan/should be done on several metrics

Performance regression testing Performance regression testing
can/should be done on several metricscan/should be done on several metrics

Performance regression testing Performance regression testing
can/should be done on several metricscan/should be done on several metrics

Performance regression testing Performance regression testing
can/should be done on several metricscan/should be done on several metrics

Directions in research on Directions in research on
performance regression analysisperformance regression analysis

Directions in performance Directions in performance
regression analysis researchregression analysis research
1. Execution profile comparison
2. Source code analysis
3. Visualization

Execution profile comparisonExecution profile comparison

Execution profile comparisonExecution profile comparison

Disadvantages of execution Disadvantages of execution
profile comparisonprofile comparison
- Actually needs performance tests
- Need to run performance tests
several times because of variation
- Small changes may be difficult to
interpret

Source code analysisSource code analysis
Identify risky commits and recommend
those for testing (Huang et al. @ ICSE 2014)

Disadvantages of source Disadvantages of source
code analysiscode analysis
- Can not replace 'real' performance
measurements (yet)

Visualization of Visualization of
performance regression performance regression
analysis resultsanalysis results

Control charts Control charts
(Nguyen et al. @ MSR 2014)(Nguyen et al. @ MSR 2014)

Differential flame graphsDifferential flame graphs
(Bezemer et al. @ SANER 2015)(Bezemer et al. @ SANER 2015)

Deciding on the baseline Deciding on the baseline
performanceperformance

Deciding on the acceptable Deciding on the acceptable
performance deviationperformance deviation

Reporting results to the Reporting results to the
developerdeveloper

Availability of Availability of
performance testsperformance tests

Execution time of testsExecution time of tests

Performance regression testing helps Performance regression testing helps
ensure we are not breaking performanceensure we are not breaking performance
Write code
Execute
performance
test
Deploy if performance is OK or fix changes

Directions in performance Directions in performance
regression analysis researchregression analysis research
1. Execution profile comparison
2. Source code analysis
3. Visualization

Availability of Availability of
performance testsperformance tests

Execution time of testsExecution time of tests