SlideShare a Scribd company logo
Predictive Performance Testing

Integrating Statistical Tests into Agile Development Lifecycles
Tom Kleingarn
Lead, Performance Engineering
Digital River
http://www.linkedin.com/in/tomkleingarn
http://www.perftom.com

©2010 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice
Agenda
> Introduction
> Performance engineering
> Agile
> Outputs from LoadRunner
> Basic statistics
> Advanced statistics
> Summary
> Practical application
About Me
> Tom Kleingarn
> Lead, Performance Engineering - Digital River

> 4 years in performance engineering
> Tested over 100 systems/applications
> 100’s of performance tests
> Tools
> LoadRunner
> JMeter
> Webmetrics, Keynote, Gomez
> ‘R’ and Excel
> Quality Center
> QuickTest Professional
> Leading provider of global e-commerce solutions
> Builds and manages online businesses for software and game
publishers, consumer electronics manufacturers, distributors,
online retailers and affiliates.
> Comprehensive platform offers
>
>
>
>
>
>
>
>

Site development and hosting
Order management
Fraud management
Export control
Tax management
Physical and digital product fulfillment
Multi-lingual customer service
Advanced reporting and strategic marketing
Performance Engineering
> The process of experimental design, test execution, and
results analysis, utilized to validate system performance as
part of the Software Development Lifecycle (SDLC).
> Performance requirements – measureable targets of speed,
reliability, and/or capacity used in performance validation.
> Latency < 10ms, measured at the 99th percentile
> 99.95% uptime
> Throughput of 1,000 requests per second
Performance Testing Cycle
1. Requirements Analysis
2. Create test plan
3. Create automated scripts
4. Define workload model
5. Execute scenarios
6. Analyze results
>

Rinse and repeat if…
> Defects identified
> Change in requirements
> Setup or environment issues
> Performance requirement not met

Digital River Test Automation
Agile
> A software development paradigm that emphasizes rapid
process cycles, cross-functional teams, frequent
examination of progress, and adaptability.
Initial Plan

Scrum

Deploy
Agile Performance Engineering
> Clear and constant communication
> Involvement in initial requirements and design phase
> Identify key business processes before they are built
> Coordinate with analysts and development to build key
business processes first
> Integrate load generation requirements into project schedule

> Test immediately with v1.0
> Schedule tests to auto-start, run independently
> Identify invalid test results before deep analysis
LoadRunner Results

> Measures of central tendency
> Average = ∑(all samples)/(sample size) =
> Median = 50th percentile
> Mode – highest frequency, the value that occurred the most

> Measures of variability
> Min, max
> Standard Deviation =
> 90th percentile
LoadRunner Results

90%
50%

50%

10%
Basic Statistics – Sample vs. Population
> Performance requirement: average latency < 3 seconds

> What if you ran 50 rounds? 100 rounds?
Basic Statistics – Sample vs. Population
> Sample – set of values, subset of population
> Population – all potentially observable values
> Measurements
> Statistic – the estimated value from a collection of samples
> Parameter – the “true” value you are attempting to estimate
Not a representative
sample!
Basic Statistics – Sample vs. Population
> Sampling distribution – the probability distribution of a given
statistic based on a random sample of size n
> Dependent on the underlying population

>

How do you know the system under test met the performance requirement?
Basic Statistics – Normal Distribution
> With larger samples, data tend to cluster around the mean
Basic Statistics – Normal Distribution

Sir Francis Galton’s “Bean Machine”
Confidence Intervals
> The probability that an interval made up of two endpoints
will contain the true mean parameter μ
>

95% confidence interval:

>

… where 1.96 is a score from the normal distribution associated with 95% probability:
Confidence Intervals
> In repeated rounds of testing, a confidence interval will contain the
true mean parameter with a certain probability:

True Average
Confidence Intervals in Excel
Statistic

Value 95%

Value 99%

Formula

Average

3.40

3.40

Standard Deviation

1.45

1.45

Sample size

500

500

Confidence Level

0.95

0.99

Significance Level

0.05

0.01

0.0127

0.167

=CONFIDENCE(Sig. Level, Std Dev, Sample Size)

Lower Bound

3.273

3.233

=Average - Margin of Error

Upper Bound

3.527

3.567

=Average + Margin of Error

Margin of Error

=1-(Confidence Level)

>

95% confidence - true average latency 3.273 to 3.527 seconds

>

99% confidence - true average latency 3.233 to 3.567 seconds

>

Our range is wider at 99% compared to 95%, 0.334 sec vs. 0.254 sec
The T-test
> Test that your sample mean is
greater than/less than a certain
value
> Performance requirement:
Mean latency < 3 seconds
> Null hypothesis:
Mean latency >= 3 seconds
> Alternative hypothesis:
Mean latency is < 3 seconds

Add pic
T-test – Raw Data from LoadRunner

n = 500
T-test in ‘R’
> ‘R’ for statistical analysis
> http://www.r-project.org/

Load test data from a file:
> datafile <- read.table("C:Datatest.data",
header = FALSE, col.names= c("latency"))

Attach the dataframe:
> attach(datafile)
Create a “vector” from the dataframe:
> latency <- datafile$latency
T.Test in ‘R’
> t.test(latency, alternative="less", mu=3, tails=1)
One Sample t-test
data:

latency

t = -2.9968, df = 499, p-value = 0.001432
alternative hypothesis: true mean is less than 3

> There is a 0.14% probability that the true average latency of the
system is greater than 3 seconds. In this case we would reject
the null hypothesis.
> There is a 99.86% probability that the true average latency is
less than 3 seconds
T-test – Number of Samples Required
> power.t.test(sd=sd, sig.level=0.05, power=0.90,
delta=mean(latency)*0.01, type="one.sample")
One-sample t test power calculation

n = 215.5319
delta = 0.03241267
sd = 0.1461401
sig.level = 0.05
power = 0.9
alternative = two.sided

> We need at least 216 samples
> Our sample size is 500, we have enough samples to proceed
Test for Normality
> Test that the data is “normal”
> Clustered around a central value, no outliers
> Roughly fits the normal distribution
> shapiro.test(latency)
Shapiro-Wilk normality test
data:

latency

p-value = 0.8943
> Our sample distribution is approximately normal
> p-value < 0.05 indicates the distribution is not normal
Review
> Sample vs. Population
> Normal distribution
> Confidence intervals
> T-test
> Sample size
> Test for normality
> Practical application
> Performance requirements
> Compare two code builds
> Compare system infrastructure changes
Case Study
> Engaged in a new web service project
> Average latency < 25ms
> Applied statistical analysis
> System did not meet requirement
> Identified problem transaction
> Development fix applied
> Additional test, requirement met

> Prevented a failure in production
Implementation in Agile Projects
> Involvement in early design stages
> Identify performance requirements
> Build key business processes first

> Calculate required sample size
> Apply statistical analysis

> Run fewer tests with greater confidence in your results
> Prevent performance defects from entering production
> Prevent SLA violations in production
Predictive Performance Testing: Integrating Statistical Tests into Agile Development Life-cycles

More Related Content

Viewers also liked

Using the Machine to predict Testability
Using the Machine to predict TestabilityUsing the Machine to predict Testability
Using the Machine to predict Testability
Miguel Lopez
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
Alaa Hamouda
 
Defect Prevention & Predictive Analytics - XBOSoft Webinar
Defect Prevention & Predictive Analytics - XBOSoft WebinarDefect Prevention & Predictive Analytics - XBOSoft Webinar
Defect Prevention & Predictive Analytics - XBOSoft Webinar
XBOSoft
 
Machine learning in software testing
Machine learning in software testingMachine learning in software testing
Machine learning in software testing
Thoughtworks
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
Tharinda Liyanage
 
Automated testing of software applications using machine learning edited
Automated testing of software applications using machine learning   editedAutomated testing of software applications using machine learning   edited
Automated testing of software applications using machine learning edited
Milind Kelkar
 

Viewers also liked (6)

Using the Machine to predict Testability
Using the Machine to predict TestabilityUsing the Machine to predict Testability
Using the Machine to predict Testability
 
Machine Learning in Software Engineering
Machine Learning in Software EngineeringMachine Learning in Software Engineering
Machine Learning in Software Engineering
 
Defect Prevention & Predictive Analytics - XBOSoft Webinar
Defect Prevention & Predictive Analytics - XBOSoft WebinarDefect Prevention & Predictive Analytics - XBOSoft Webinar
Defect Prevention & Predictive Analytics - XBOSoft Webinar
 
Machine learning in software testing
Machine learning in software testingMachine learning in software testing
Machine learning in software testing
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Automated testing of software applications using machine learning edited
Automated testing of software applications using machine learning   editedAutomated testing of software applications using machine learning   edited
Automated testing of software applications using machine learning edited
 

Similar to Predictive Performance Testing: Integrating Statistical Tests into Agile Development Life-cycles

Need for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie BhaumikNeed for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie Bhaumik
QA or the Highway
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
Davis Thomas
 
Statistical Process Control Part 2
Statistical Process Control Part 2Statistical Process Control Part 2
Statistical Process Control Part 2
Malay Pandya
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
Edureka!
 
PROCESS CAPABILITY
PROCESS CAPABILITYPROCESS CAPABILITY
PROCESS CAPABILITY
Pranav B. Gujjar
 
Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21
koolkampus
 
Six Sigma Overview
Six Sigma OverviewSix Sigma Overview
Measurement risk and the impact on your processes
Measurement risk and the impact on your processes  Measurement risk and the impact on your processes
Measurement risk and the impact on your processes
Transcat
 
Risk_Management_Poster
Risk_Management_PosterRisk_Management_Poster
Risk_Management_Poster
Rohan Sanas
 
Chap 9 A Process Capability & Spc Hk
Chap 9 A Process Capability & Spc HkChap 9 A Process Capability & Spc Hk
Chap 9 A Process Capability & Spc Hk
ajithsrc
 
Quality andc apability hand out 091123200010 Phpapp01
Quality andc apability hand out 091123200010 Phpapp01Quality andc apability hand out 091123200010 Phpapp01
Quality andc apability hand out 091123200010 Phpapp01
jasonhian
 
Software testing foundation
Software testing foundationSoftware testing foundation
Software testing foundation
Anirudh503501
 
Performance Testing and OBIEE by QuontraSolutions
Performance Testing and OBIEE by QuontraSolutionsPerformance Testing and OBIEE by QuontraSolutions
Performance Testing and OBIEE by QuontraSolutions
QUONTRASOLUTIONS
 
Process capability relation between yield and number of parts in assembly und...
Process capability relation between yield and number of parts in assembly und...Process capability relation between yield and number of parts in assembly und...
Process capability relation between yield and number of parts in assembly und...
REXMATTHEW1
 
GCSE ICT TESTING
GCSE ICT TESTING GCSE ICT TESTING
GCSE ICT TESTING
morgan98
 
Six Sigma Confidence Interval Analysis (CIA) Training Module
Six Sigma Confidence Interval Analysis (CIA) Training ModuleSix Sigma Confidence Interval Analysis (CIA) Training Module
Six Sigma Confidence Interval Analysis (CIA) Training Module
Frank-G. Adler
 
QM-026-Quality Management
QM-026-Quality ManagementQM-026-Quality Management
QM-026-Quality Management
handbook
 
Experience Sharing on School Pentest Project
Experience Sharing on School Pentest ProjectExperience Sharing on School Pentest Project
Experience Sharing on School Pentest Project
eLearning Consortium 電子學習聯盟
 
Keynote SBST 2014 - Search-Based Testing
Keynote SBST 2014 - Search-Based TestingKeynote SBST 2014 - Search-Based Testing
Keynote SBST 2014 - Search-Based Testing
Lionel Briand
 
Exposure Index
Exposure IndexExposure Index
Exposure Index
Holger Himmel
 

Similar to Predictive Performance Testing: Integrating Statistical Tests into Agile Development Life-cycles (20)

Need for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie BhaumikNeed for Speed: How to Performance Test the right way by Annie Bhaumik
Need for Speed: How to Performance Test the right way by Annie Bhaumik
 
Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
 
Statistical Process Control Part 2
Statistical Process Control Part 2Statistical Process Control Part 2
Statistical Process Control Part 2
 
What are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | EdurekaWhat are Software Testing Methodologies | Software Testing Techniques | Edureka
What are Software Testing Methodologies | Software Testing Techniques | Edureka
 
PROCESS CAPABILITY
PROCESS CAPABILITYPROCESS CAPABILITY
PROCESS CAPABILITY
 
Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21Critical System Validation in Software Engineering SE21
Critical System Validation in Software Engineering SE21
 
Six Sigma Overview
Six Sigma OverviewSix Sigma Overview
Six Sigma Overview
 
Measurement risk and the impact on your processes
Measurement risk and the impact on your processes  Measurement risk and the impact on your processes
Measurement risk and the impact on your processes
 
Risk_Management_Poster
Risk_Management_PosterRisk_Management_Poster
Risk_Management_Poster
 
Chap 9 A Process Capability & Spc Hk
Chap 9 A Process Capability & Spc HkChap 9 A Process Capability & Spc Hk
Chap 9 A Process Capability & Spc Hk
 
Quality andc apability hand out 091123200010 Phpapp01
Quality andc apability hand out 091123200010 Phpapp01Quality andc apability hand out 091123200010 Phpapp01
Quality andc apability hand out 091123200010 Phpapp01
 
Software testing foundation
Software testing foundationSoftware testing foundation
Software testing foundation
 
Performance Testing and OBIEE by QuontraSolutions
Performance Testing and OBIEE by QuontraSolutionsPerformance Testing and OBIEE by QuontraSolutions
Performance Testing and OBIEE by QuontraSolutions
 
Process capability relation between yield and number of parts in assembly und...
Process capability relation between yield and number of parts in assembly und...Process capability relation between yield and number of parts in assembly und...
Process capability relation between yield and number of parts in assembly und...
 
GCSE ICT TESTING
GCSE ICT TESTING GCSE ICT TESTING
GCSE ICT TESTING
 
Six Sigma Confidence Interval Analysis (CIA) Training Module
Six Sigma Confidence Interval Analysis (CIA) Training ModuleSix Sigma Confidence Interval Analysis (CIA) Training Module
Six Sigma Confidence Interval Analysis (CIA) Training Module
 
QM-026-Quality Management
QM-026-Quality ManagementQM-026-Quality Management
QM-026-Quality Management
 
Experience Sharing on School Pentest Project
Experience Sharing on School Pentest ProjectExperience Sharing on School Pentest Project
Experience Sharing on School Pentest Project
 
Keynote SBST 2014 - Search-Based Testing
Keynote SBST 2014 - Search-Based TestingKeynote SBST 2014 - Search-Based Testing
Keynote SBST 2014 - Search-Based Testing
 
Exposure Index
Exposure IndexExposure Index
Exposure Index
 

Recently uploaded

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
Miro Wengner
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
marufrahmanstratejm
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 

Recently uploaded (20)

Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
JavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green MasterplanJavaLand 2024: Application Development Green Masterplan
JavaLand 2024: Application Development Green Masterplan
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Public CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptxPublic CyberSecurity Awareness Presentation 2024.pptx
Public CyberSecurity Awareness Presentation 2024.pptx
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 

Predictive Performance Testing: Integrating Statistical Tests into Agile Development Life-cycles

  • 1. Predictive Performance Testing Integrating Statistical Tests into Agile Development Lifecycles Tom Kleingarn Lead, Performance Engineering Digital River http://www.linkedin.com/in/tomkleingarn http://www.perftom.com ©2010 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice
  • 2. Agenda > Introduction > Performance engineering > Agile > Outputs from LoadRunner > Basic statistics > Advanced statistics > Summary > Practical application
  • 3. About Me > Tom Kleingarn > Lead, Performance Engineering - Digital River > 4 years in performance engineering > Tested over 100 systems/applications > 100’s of performance tests > Tools > LoadRunner > JMeter > Webmetrics, Keynote, Gomez > ‘R’ and Excel > Quality Center > QuickTest Professional
  • 4. > Leading provider of global e-commerce solutions > Builds and manages online businesses for software and game publishers, consumer electronics manufacturers, distributors, online retailers and affiliates. > Comprehensive platform offers > > > > > > > > Site development and hosting Order management Fraud management Export control Tax management Physical and digital product fulfillment Multi-lingual customer service Advanced reporting and strategic marketing
  • 5. Performance Engineering > The process of experimental design, test execution, and results analysis, utilized to validate system performance as part of the Software Development Lifecycle (SDLC). > Performance requirements – measureable targets of speed, reliability, and/or capacity used in performance validation. > Latency < 10ms, measured at the 99th percentile > 99.95% uptime > Throughput of 1,000 requests per second
  • 6. Performance Testing Cycle 1. Requirements Analysis 2. Create test plan 3. Create automated scripts 4. Define workload model 5. Execute scenarios 6. Analyze results > Rinse and repeat if… > Defects identified > Change in requirements > Setup or environment issues > Performance requirement not met Digital River Test Automation
  • 7. Agile > A software development paradigm that emphasizes rapid process cycles, cross-functional teams, frequent examination of progress, and adaptability. Initial Plan Scrum Deploy
  • 8. Agile Performance Engineering > Clear and constant communication > Involvement in initial requirements and design phase > Identify key business processes before they are built > Coordinate with analysts and development to build key business processes first > Integrate load generation requirements into project schedule > Test immediately with v1.0 > Schedule tests to auto-start, run independently > Identify invalid test results before deep analysis
  • 9. LoadRunner Results > Measures of central tendency > Average = ∑(all samples)/(sample size) = > Median = 50th percentile > Mode – highest frequency, the value that occurred the most > Measures of variability > Min, max > Standard Deviation = > 90th percentile
  • 11. Basic Statistics – Sample vs. Population > Performance requirement: average latency < 3 seconds > What if you ran 50 rounds? 100 rounds?
  • 12. Basic Statistics – Sample vs. Population > Sample – set of values, subset of population > Population – all potentially observable values > Measurements > Statistic – the estimated value from a collection of samples > Parameter – the “true” value you are attempting to estimate Not a representative sample!
  • 13. Basic Statistics – Sample vs. Population > Sampling distribution – the probability distribution of a given statistic based on a random sample of size n > Dependent on the underlying population > How do you know the system under test met the performance requirement?
  • 14. Basic Statistics – Normal Distribution > With larger samples, data tend to cluster around the mean
  • 15. Basic Statistics – Normal Distribution Sir Francis Galton’s “Bean Machine”
  • 16. Confidence Intervals > The probability that an interval made up of two endpoints will contain the true mean parameter μ > 95% confidence interval: > … where 1.96 is a score from the normal distribution associated with 95% probability:
  • 17. Confidence Intervals > In repeated rounds of testing, a confidence interval will contain the true mean parameter with a certain probability: True Average
  • 18. Confidence Intervals in Excel Statistic Value 95% Value 99% Formula Average 3.40 3.40 Standard Deviation 1.45 1.45 Sample size 500 500 Confidence Level 0.95 0.99 Significance Level 0.05 0.01 0.0127 0.167 =CONFIDENCE(Sig. Level, Std Dev, Sample Size) Lower Bound 3.273 3.233 =Average - Margin of Error Upper Bound 3.527 3.567 =Average + Margin of Error Margin of Error =1-(Confidence Level) > 95% confidence - true average latency 3.273 to 3.527 seconds > 99% confidence - true average latency 3.233 to 3.567 seconds > Our range is wider at 99% compared to 95%, 0.334 sec vs. 0.254 sec
  • 19. The T-test > Test that your sample mean is greater than/less than a certain value > Performance requirement: Mean latency < 3 seconds > Null hypothesis: Mean latency >= 3 seconds > Alternative hypothesis: Mean latency is < 3 seconds Add pic
  • 20. T-test – Raw Data from LoadRunner n = 500
  • 21. T-test in ‘R’ > ‘R’ for statistical analysis > http://www.r-project.org/ Load test data from a file: > datafile <- read.table("C:Datatest.data", header = FALSE, col.names= c("latency")) Attach the dataframe: > attach(datafile) Create a “vector” from the dataframe: > latency <- datafile$latency
  • 22. T.Test in ‘R’ > t.test(latency, alternative="less", mu=3, tails=1) One Sample t-test data: latency t = -2.9968, df = 499, p-value = 0.001432 alternative hypothesis: true mean is less than 3 > There is a 0.14% probability that the true average latency of the system is greater than 3 seconds. In this case we would reject the null hypothesis. > There is a 99.86% probability that the true average latency is less than 3 seconds
  • 23. T-test – Number of Samples Required > power.t.test(sd=sd, sig.level=0.05, power=0.90, delta=mean(latency)*0.01, type="one.sample") One-sample t test power calculation n = 215.5319 delta = 0.03241267 sd = 0.1461401 sig.level = 0.05 power = 0.9 alternative = two.sided > We need at least 216 samples > Our sample size is 500, we have enough samples to proceed
  • 24. Test for Normality > Test that the data is “normal” > Clustered around a central value, no outliers > Roughly fits the normal distribution > shapiro.test(latency) Shapiro-Wilk normality test data: latency p-value = 0.8943 > Our sample distribution is approximately normal > p-value < 0.05 indicates the distribution is not normal
  • 25. Review > Sample vs. Population > Normal distribution > Confidence intervals > T-test > Sample size > Test for normality > Practical application > Performance requirements > Compare two code builds > Compare system infrastructure changes
  • 26. Case Study > Engaged in a new web service project > Average latency < 25ms > Applied statistical analysis > System did not meet requirement > Identified problem transaction > Development fix applied > Additional test, requirement met > Prevented a failure in production
  • 27. Implementation in Agile Projects > Involvement in early design stages > Identify performance requirements > Build key business processes first > Calculate required sample size > Apply statistical analysis > Run fewer tests with greater confidence in your results > Prevent performance defects from entering production > Prevent SLA violations in production

Editor's Notes

  1. The t-statistic was introduced in 1908 by William Sealy Gosset, a chemist working for the Guinness brewery in Dublin, Ireland (&quot;Student&quot; was his pen name).[1][2][3] Gosset had been hired due to Claude Guinness&apos;s innovative policy of recruiting the best graduates from Oxford and Cambridge to apply biochemistry and statistics to Guinness&apos; industrial processes.[2] Gosset devised the t-test as a way to cheaply monitor the quality of stout. He published the test in Biometrika in 1908, but was forced to use a pen name by his employer, who regarded the fact that they were using statistics as a trade secret. In fact, Gosset&apos;s identity was unknown to fellow statisticians.