accomplishments and challenges - york...

Post on 13-Oct-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Performance Regression AnalysisPerformance Regression Analysis

Cor-Paul Bezemer

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 codeExecute regressiontest

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 ensure Performance regression testing helps ensure we are not breaking performancewe are not breaking performance

Write codeExecute 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

- 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 performance Visualization of performance regression analysis resultsregression analysis 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 performance Availability of performance teststests

Execution time of testsExecution time of tests

Performance regression testing helps ensure Performance regression testing helps ensure we are not breaking performancewe are not breaking performance

Write codeExecute 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 performance Availability of performance teststests

Execution time of testsExecution time of tests

top related