SlideShare a Scribd company logo
Early Performance Testing:
News You Can Use
*Eric Proegler, @ericproegler,
testingthoughts.com/ericproegler
*12 years in performance, 19 in software
*WOPR Organizer (Workshop on Performance and
Reliability, performance-workshop.org)
*This subject was discussed at WOPR22.
*Questions about Peer Workshops? Get at me.
WOPR22 was held May 21-23, 2014, in Malmö, Sweden, on the topic of
“Early Performance Testing.” Participants in the workshop included:
Fredrik Fristedt, Andy Hohenner, Paul Holland, Martin Hynie, Emil
Johansson, Maria Kedemo, John Meza, Eric Proegler, Bob Sklar, Paul
Stapleton, Andy Still, Neil Taitt, and Mais Tawfik Ashkar.
Testing Iterations?
*No Process-teering/Scrumbaggery here
*Testing in Agile is about providing quick
feedback. How can we make performance
and scalability feedback happen faster – or
at all, with incomplete/unfinished systems,
on non-production hardware?
Testing Iterations?
Ideas
*What are the risks we are testing for?
*What is “Realistic”?
*Testing Techniques in Iterative Projects
*Reporting Early Performance Results
*Performance Testing Incomplete Systems
Performance Risks: Scalability
Scalability: Expensive operations mean that systems
won’t scale well
*Ops Problem? Solve with hardware?
*Tall Stacks -> Wirth’s Law: “Software is getting slower
more rapidly than hardware gets faster”
*Subject to use patterns and user models
What Does a Problem Look Like?
*Longer response times is a clue
*“High” CPU/Memory/Storage/Network Utilization
Capacity: System can’t support the expected load
structurally/as engineered
What Does a Problem Look Like?
*Response time very sensitive to load
*Growing Queues
*Hard or Soft Resource Limitations
*High CPU Limitation
*Increasing I/O Latency
*Run out of database threads
Performance Risks: Capacity
Concurrency: Operations that contend and
collide (Race conditions, database locks,
contention points)
What Does a Problem Look Like?
*Infrequent functional issues that seem to
only occur under load (Heisenbugs?)
*Process crashes
*Not easily reproducible
Performance Risks: Concurrency
Reliability: Degradation over time, system
becomes slower, less predictable, or
eventually fails.
What Does a Problem Look Like?
*Memory or Object Leaks
*More frequent Garbage Collection
*Decaying response times
Performance Risks: Reliability
Ideas
*What are the risks we are testing for?
*What is “Realistic”?
*Testing Techniques in Iterative Projects
*Reporting Early Performance Results
*Performance Testing Incomplete Systems
Will the completed, deployed system support:
(a, b…) users
performing (e, f…) activities
at (j, k…) rates
on mn… configuration
under rs… external conditions,
meeting x, y… response time goals ?
(Simulation Test)
Illusion of Realism: Experiment
“All Models are wrong. Some are useful.”
*Guesses at activities, and frequencies
*Organic loads and arrival rates – limitations imposed
by load testing tools
*Session abandonment, other human behaviors
*Simulating every activity in the system
*Data densities (row counts, cardinality)
*Warmed caching
*Loads evolving over time
Illusion of Realism: Models
“The environment is identical.”
*Shared resources: Virtualization, SANs, Databases,
Networks, Authentication, etc
*Execution environment versions and patching
*Software and hardware component changes, versions
and patching
*Variable network conditions, especially last-mile
*Background processing and other activities against
overlapping systems and resources
Illusion of Realism: Environment
Ideas
*What are the risks we are testing for?
*What is “Realistic”?
*Testing Techniques in Iterative Projects
*Reporting Early Performance Results
*Performance Testing Incomplete Systems
* Simulation Testing occurs at the end of the
project, before go live. If we find problems
then, they are either bad enough to delay the
whole project…
…or they are “Deferred to Phase 2”
* Simulation Tests are Expensive to Create,
Maintain, and Analyze
Simulation Tests
How does “Realistic” translate to agile?
*Maybe the answer is more control?
*Horizontal Scalability makes assumptions –
let’s use them
*Test subsets: single servers, single
components, cheaply and repeatedly
*Calibration tests
Simulation Tests
Build easily repeatable, reliable rapid tests:
* Login (measure session overhead/footprint)
* Simple workflows, avoid data caching effects
* Control variables
* Be ready to repeat/troubleshoot when you find
anomalies
Cheap and Fast Performance Tests
Who needs “Real”? Let’s find problems.
Examples:
*Burst loads – Ready, Set, GO!!!
*10 threads, 10 iterations each
*1 thread, 100 iterations
*1 or 10 threads, running for hours/days
Cheap and Fast Performance Tests
Why must we have a “comparable” environment?
* Leverage horizontal scalability – one server is
enough
* Who says we have to have systems distributed
the same way? Why can’t my test database be
on this system for calibration purposes?
* Isolation is more important than “Real”
Cheap and Fast Performance Tests
* Check Your Instruments!
* Calibrate, and Recalibrate as necessary
between environments, builds, day/times…any
time you want to be sure you are comparing
two variables accurately
Cheap and Fast Performance Tests
Now that the cost of a test is low, let’s run
lots
*Run five tests and average the results
*Run tests every day
*Run tests in Continuous Integration?
Cheap and Fast Performance Tests
Performance Testing in CI
*It’s being done, though it’s not easy to
automate all of the moving parts (code
deployment, system under test including data
state, consumable data, etc)
*SOASTA and others can show you where they
are using it
*Anyone here doing this?
Sapient Techniques
*Stopwatch?
*Screen Captures? Videos?
*Waterfall Charts? Fiddler?
*Use Background Load and take
measurements?
Extending Automation
*Use/extend automation – Add
timers, log key transactions, build
response time records
*Watch for trends, be ready to drill
down. Automation extends your
senses, but doesn’t replace them
Ideas
*What are the risks we are testing for?
*What is “Realistic”?
*Testing Techniques in Iterative Projects
*Reporting Early Performance Results
*Performance Testing Incomplete Systems
Results Lead to Action
*Data + Analysis = Information
*Your value as a tester is the information you
provide – and the action(s) it inspires
*Be willing to sound an alarm – or approach a
key engineer: “Can I show you something?”
Communicate Outwards
Start your Campaign: Make results visible
* Emails
* Intranet page
* Whiteboard
* Status reports
* Gossip: “How is performance these days?”
Recruit Consumers! Become an important project
status indicator. Help people who can do
something understand and care
Reporting Example
Date Build Min Mean Max 90%
2/1 9.3.0.29 14.1 14.37 14.7 14.6
3/1 9.3.0.47 37.03 38.46 39.56 39.18
8/2 9.5.0.34 16.02 16.61 17 16.83
9/9 10.0.0.15 17.02 17.81 18.08 18.02
10/12 10.1.0.3 16.86 17.59 18.03 18
11/30 10.1.0.38 18.05 18.57 18.89 18.81
1/4 10.1.0.67 18.87 19.28 19.48 19.46
2/2 10.1.0.82 18.35 18.96 19.31 19.24
Calibration Results for Web Login, Search, View. Burst 10 threads iterating 10 times
Ideas
*What are the risks we are testing for?
*What is “Realistic”?
*Testing Techniques in Iterative Projects
*Reporting Early Performance Results
*Performance Testing Incomplete Systems
Testing Components – Missing Pieces
*APIs – abstraction points for developers,
less brittle than interfaces
*Mocking/Stubs/Auto-Responders – built in
abstraction points to simulate other
components that might not be there yet.
Will help Devs test, too.
Testing Components – Individual Pieces
*Find and re-purpose code for harnesses.
How do devs check their work?
*Mocking/Stubs/Auto-Responders – built in
abstraction points to simulate other
components that might not be there yet.
Will help Devs test, too.
Testing Components
Test what is there:
*Session models: login/logoff are expensive,
and matter for everyone
*Search Functions
*Think about user activities like road systems
– where are the highways?
*What will be meaningful to calibrate?
*Incomplete Systems:
Business Logic
Incomplete Systems:Business Logic
* Frequently the scaling bottleneck in this
architecture pattern. Web services are big
buckets of functionality usually running a lot
of interpreted code
* Abstract presentation layer, borrow code
from it, test the rest of the system down
* Script load tests that address web services
directly
*Incomplete Systems:
Authentication
Incomplete Systems: Authentication
Create Test that just creates sessions
*Response time to create a session?
*How reliably can I create sessions?
*How many sessions can I create?
*What arrival rate can I support?
*Incomplete Systems:
Message Bus
Incomplete Systems: Message Bus
Find or Make a Test Harness. How do
Developers Test?
* Response time to push a message?
* Response time to pull a message?
* Is this sensitive to load?
* At what rate can I create messages? With one
publisher? With multiple publishers?
* At what rate can I consume messages? What
if I add message servers/dispatchers?
*Incomplete Systems:
App Server
Incomplete Systems: App Server
Identify inputs – polling file? Job
creation?
*Processing time for asynchronous processes –
per item, startup time
*Throughputs
*How many processes can I queue up? What
happens if I send a lot of synchronous stuff all
at once?
Some Conclusions?
*What are the risks you are testing for?
*Unpack “Realistic”: what does it mean, and
what (who) is it for?
*Consider the value of performance tests that
are cheap and easily repeatable
*Broadcast Results
*Test What You Have
*Where are the highways?
Thanks
*Tweet #CAST2014. You’re on Twitter, right?
*Join AST
*Come to #CAST2015
*Profit!!!

More Related Content

What's hot

LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance TestingAtul Pant
 
Load Runner
Load RunnerLoad Runner
Load Runner
Shama Ahsan
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWS
Vladimir Ilic
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
Mikael Kundert
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
Qspiders - Software Testing Training Institute
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
Atul Pant
 
Jmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoloadJmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoload
pratik mohite
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
Mykola Kovsh
 
Load Testing & Apache JMeter
Load Testing & Apache JMeterLoad Testing & Apache JMeter
Load Testing & Apache JMeterWO Community
 
Automated Performance Testing With J Meter And Maven
Automated  Performance  Testing With  J Meter And  MavenAutomated  Performance  Testing With  J Meter And  Maven
Automated Performance Testing With J Meter And MavenPerconaPerformance
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWS
Matthias Matook
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunnervladimir zaremba
 
Using JMeter and Google Analytics for Software Performance Testing
Using JMeter and Google Analytics for Software Performance TestingUsing JMeter and Google Analytics for Software Performance Testing
Using JMeter and Google Analytics for Software Performance Testing
XBOSoft
 
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Alexandru Ersenie
 
Jmeter From Scratch
Jmeter From ScratchJmeter From Scratch
Jmeter From Scratch
ChinmayBrahma22
 
Performance testing and_reporting_with_j_meter by Le Van Nghi
Performance testing and_reporting_with_j_meter by  Le Van NghiPerformance testing and_reporting_with_j_meter by  Le Van Nghi
Performance testing and_reporting_with_j_meter by Le Van Nghi
eXo Platform
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
Manoj Shankaramanchi
 
Using JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming ApplicationsUsing JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming Applications
BlazeMeter
 
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
Qspiders - Software Testing Training Institute
 

What's hot (20)

LoadRunner Performance Testing
LoadRunner Performance TestingLoadRunner Performance Testing
LoadRunner Performance Testing
 
Load Runner
Load RunnerLoad Runner
Load Runner
 
Load Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWSLoad Test Drupal Site Using JMeter and Amazon AWS
Load Test Drupal Site Using JMeter and Amazon AWS
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
 
QSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load RunnerQSpiders - Introduction to HP Load Runner
QSpiders - Introduction to HP Load Runner
 
Loadrunner vs Jmeter
Loadrunner vs JmeterLoadrunner vs Jmeter
Loadrunner vs Jmeter
 
Jmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoloadJmeter vs loadrunner vs neoload
Jmeter vs loadrunner vs neoload
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Load Testing & Apache JMeter
Load Testing & Apache JMeterLoad Testing & Apache JMeter
Load Testing & Apache JMeter
 
Automated Performance Testing With J Meter And Maven
Automated  Performance  Testing With  J Meter And  MavenAutomated  Performance  Testing With  J Meter And  Maven
Automated Performance Testing With J Meter And Maven
 
Performance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWSPerformance testing with 100,000 concurrent users in AWS
Performance testing with 100,000 concurrent users in AWS
 
JMeter
JMeterJMeter
JMeter
 
Performance Testing With Loadrunner
Performance Testing With LoadrunnerPerformance Testing With Loadrunner
Performance Testing With Loadrunner
 
Using JMeter and Google Analytics for Software Performance Testing
Using JMeter and Google Analytics for Software Performance TestingUsing JMeter and Google Analytics for Software Performance Testing
Using JMeter and Google Analytics for Software Performance Testing
 
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
Load and Performance Testing for J2EE - Testing, monitoring and reporting usi...
 
Jmeter From Scratch
Jmeter From ScratchJmeter From Scratch
Jmeter From Scratch
 
Performance testing and_reporting_with_j_meter by Le Van Nghi
Performance testing and_reporting_with_j_meter by  Le Van NghiPerformance testing and_reporting_with_j_meter by  Le Van Nghi
Performance testing and_reporting_with_j_meter by Le Van Nghi
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
 
Using JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming ApplicationsUsing JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming Applications
 
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...QSpiders - Simple Recording and Configuration of recording options for HP Loa...
QSpiders - Simple Recording and Configuration of recording options for HP Loa...
 

Similar to Eric Proegler Early Performance Testing from CAST2014

Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
Perfecto by Perforce
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
Anna Royzman
 
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingThe Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
Perfecto by Perforce
 
Continuous Intelligence Workshop
Continuous Intelligence WorkshopContinuous Intelligence Workshop
Continuous Intelligence Workshop
David Tan
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec Pipeline
Matt Tesauro
 
Dev ops
Dev opsDev ops
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
Brian Henerey
 
Software testing
Software testingSoftware testing
Software testing
Enamul Haque
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
QA or the Highway
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
nelinger
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
TDD Workshop UTN 2012
TDD Workshop UTN 2012TDD Workshop UTN 2012
TDD Workshop UTN 2012
Facundo Farias
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Matt Tesauro
 
FutureOfTesting2008
FutureOfTesting2008FutureOfTesting2008
FutureOfTesting2008
vipulkocher
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
JAXLondon_Conference
 
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance TestingAlbert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
TEST Huddle
 
An Introduction to Prometheus (GrafanaCon 2016)
An Introduction to Prometheus (GrafanaCon 2016)An Introduction to Prometheus (GrafanaCon 2016)
An Introduction to Prometheus (GrafanaCon 2016)
Brian Brazil
 
DockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is DeadDockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is Dead
Kevin Crawley
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Agile India
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data Analytics
Hal Rottenberg
 

Similar to Eric Proegler Early Performance Testing from CAST2014 (20)

Solving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous TestingSolving the 3 Biggest Questions in Continuous Testing
Solving the 3 Biggest Questions in Continuous Testing
 
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and TacticalTLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
TLC2018 Thomas Haver: The Automation Firehose - Be Strategic and Tactical
 
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web TestingThe Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
The Automation Firehose: Be Strategic & Tactical With Your Mobile & Web Testing
 
Continuous Intelligence Workshop
Continuous Intelligence WorkshopContinuous Intelligence Workshop
Continuous Intelligence Workshop
 
Building an Open Source AppSec Pipeline
Building an Open Source AppSec PipelineBuilding an Open Source AppSec Pipeline
Building an Open Source AppSec Pipeline
 
Dev ops
Dev opsDev ops
Dev ops
 
Continuous Deployment
Continuous DeploymentContinuous Deployment
Continuous Deployment
 
Software testing
Software testingSoftware testing
Software testing
 
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas HaverThe Automation Firehose: Be Strategic and Tactical by Thomas Haver
The Automation Firehose: Be Strategic and Tactical by Thomas Haver
 
Google, quality and you
Google, quality and youGoogle, quality and you
Google, quality and you
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
TDD Workshop UTN 2012
TDD Workshop UTN 2012TDD Workshop UTN 2012
TDD Workshop UTN 2012
 
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux FestBuilding an Open Source AppSec Pipeline - 2015 Texas Linux Fest
Building an Open Source AppSec Pipeline - 2015 Texas Linux Fest
 
FutureOfTesting2008
FutureOfTesting2008FutureOfTesting2008
FutureOfTesting2008
 
Continuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul StackContinuous Delivery - the missing parts - Paul Stack
Continuous Delivery - the missing parts - Paul Stack
 
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance TestingAlbert Witteveen - With Cloud Computing Who Needs Performance Testing
Albert Witteveen - With Cloud Computing Who Needs Performance Testing
 
An Introduction to Prometheus (GrafanaCon 2016)
An Introduction to Prometheus (GrafanaCon 2016)An Introduction to Prometheus (GrafanaCon 2016)
An Introduction to Prometheus (GrafanaCon 2016)
 
DockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is DeadDockerCon SF 2019 - TDD is Dead
DockerCon SF 2019 - TDD is Dead
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Innovate Better Through Machine data Analytics
Innovate Better Through Machine data AnalyticsInnovate Better Through Machine data Analytics
Innovate Better Through Machine data Analytics
 

Recently uploaded

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
g2nightmarescribd
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 

Recently uploaded (20)

The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Generating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using SmithyGenerating a custom Ruby SDK for your web service or Rails API using Smithy
Generating a custom Ruby SDK for your web service or Rails API using Smithy
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 

Eric Proegler Early Performance Testing from CAST2014

  • 2. *Eric Proegler, @ericproegler, testingthoughts.com/ericproegler *12 years in performance, 19 in software *WOPR Organizer (Workshop on Performance and Reliability, performance-workshop.org) *This subject was discussed at WOPR22. *Questions about Peer Workshops? Get at me. WOPR22 was held May 21-23, 2014, in Malmö, Sweden, on the topic of “Early Performance Testing.” Participants in the workshop included: Fredrik Fristedt, Andy Hohenner, Paul Holland, Martin Hynie, Emil Johansson, Maria Kedemo, John Meza, Eric Proegler, Bob Sklar, Paul Stapleton, Andy Still, Neil Taitt, and Mais Tawfik Ashkar.
  • 4. *No Process-teering/Scrumbaggery here *Testing in Agile is about providing quick feedback. How can we make performance and scalability feedback happen faster – or at all, with incomplete/unfinished systems, on non-production hardware? Testing Iterations?
  • 5. Ideas *What are the risks we are testing for? *What is “Realistic”? *Testing Techniques in Iterative Projects *Reporting Early Performance Results *Performance Testing Incomplete Systems
  • 6. Performance Risks: Scalability Scalability: Expensive operations mean that systems won’t scale well *Ops Problem? Solve with hardware? *Tall Stacks -> Wirth’s Law: “Software is getting slower more rapidly than hardware gets faster” *Subject to use patterns and user models What Does a Problem Look Like? *Longer response times is a clue *“High” CPU/Memory/Storage/Network Utilization
  • 7. Capacity: System can’t support the expected load structurally/as engineered What Does a Problem Look Like? *Response time very sensitive to load *Growing Queues *Hard or Soft Resource Limitations *High CPU Limitation *Increasing I/O Latency *Run out of database threads Performance Risks: Capacity
  • 8. Concurrency: Operations that contend and collide (Race conditions, database locks, contention points) What Does a Problem Look Like? *Infrequent functional issues that seem to only occur under load (Heisenbugs?) *Process crashes *Not easily reproducible Performance Risks: Concurrency
  • 9. Reliability: Degradation over time, system becomes slower, less predictable, or eventually fails. What Does a Problem Look Like? *Memory or Object Leaks *More frequent Garbage Collection *Decaying response times Performance Risks: Reliability
  • 10. Ideas *What are the risks we are testing for? *What is “Realistic”? *Testing Techniques in Iterative Projects *Reporting Early Performance Results *Performance Testing Incomplete Systems
  • 11. Will the completed, deployed system support: (a, b…) users performing (e, f…) activities at (j, k…) rates on mn… configuration under rs… external conditions, meeting x, y… response time goals ? (Simulation Test) Illusion of Realism: Experiment
  • 12. “All Models are wrong. Some are useful.” *Guesses at activities, and frequencies *Organic loads and arrival rates – limitations imposed by load testing tools *Session abandonment, other human behaviors *Simulating every activity in the system *Data densities (row counts, cardinality) *Warmed caching *Loads evolving over time Illusion of Realism: Models
  • 13. “The environment is identical.” *Shared resources: Virtualization, SANs, Databases, Networks, Authentication, etc *Execution environment versions and patching *Software and hardware component changes, versions and patching *Variable network conditions, especially last-mile *Background processing and other activities against overlapping systems and resources Illusion of Realism: Environment
  • 14. Ideas *What are the risks we are testing for? *What is “Realistic”? *Testing Techniques in Iterative Projects *Reporting Early Performance Results *Performance Testing Incomplete Systems
  • 15. * Simulation Testing occurs at the end of the project, before go live. If we find problems then, they are either bad enough to delay the whole project… …or they are “Deferred to Phase 2” * Simulation Tests are Expensive to Create, Maintain, and Analyze Simulation Tests
  • 16. How does “Realistic” translate to agile? *Maybe the answer is more control? *Horizontal Scalability makes assumptions – let’s use them *Test subsets: single servers, single components, cheaply and repeatedly *Calibration tests Simulation Tests
  • 17. Build easily repeatable, reliable rapid tests: * Login (measure session overhead/footprint) * Simple workflows, avoid data caching effects * Control variables * Be ready to repeat/troubleshoot when you find anomalies Cheap and Fast Performance Tests
  • 18. Who needs “Real”? Let’s find problems. Examples: *Burst loads – Ready, Set, GO!!! *10 threads, 10 iterations each *1 thread, 100 iterations *1 or 10 threads, running for hours/days Cheap and Fast Performance Tests
  • 19. Why must we have a “comparable” environment? * Leverage horizontal scalability – one server is enough * Who says we have to have systems distributed the same way? Why can’t my test database be on this system for calibration purposes? * Isolation is more important than “Real” Cheap and Fast Performance Tests
  • 20. * Check Your Instruments! * Calibrate, and Recalibrate as necessary between environments, builds, day/times…any time you want to be sure you are comparing two variables accurately Cheap and Fast Performance Tests
  • 21. Now that the cost of a test is low, let’s run lots *Run five tests and average the results *Run tests every day *Run tests in Continuous Integration? Cheap and Fast Performance Tests
  • 22. Performance Testing in CI *It’s being done, though it’s not easy to automate all of the moving parts (code deployment, system under test including data state, consumable data, etc) *SOASTA and others can show you where they are using it *Anyone here doing this?
  • 23. Sapient Techniques *Stopwatch? *Screen Captures? Videos? *Waterfall Charts? Fiddler? *Use Background Load and take measurements?
  • 24. Extending Automation *Use/extend automation – Add timers, log key transactions, build response time records *Watch for trends, be ready to drill down. Automation extends your senses, but doesn’t replace them
  • 25. Ideas *What are the risks we are testing for? *What is “Realistic”? *Testing Techniques in Iterative Projects *Reporting Early Performance Results *Performance Testing Incomplete Systems
  • 26. Results Lead to Action *Data + Analysis = Information *Your value as a tester is the information you provide – and the action(s) it inspires *Be willing to sound an alarm – or approach a key engineer: “Can I show you something?”
  • 27. Communicate Outwards Start your Campaign: Make results visible * Emails * Intranet page * Whiteboard * Status reports * Gossip: “How is performance these days?” Recruit Consumers! Become an important project status indicator. Help people who can do something understand and care
  • 28. Reporting Example Date Build Min Mean Max 90% 2/1 9.3.0.29 14.1 14.37 14.7 14.6 3/1 9.3.0.47 37.03 38.46 39.56 39.18 8/2 9.5.0.34 16.02 16.61 17 16.83 9/9 10.0.0.15 17.02 17.81 18.08 18.02 10/12 10.1.0.3 16.86 17.59 18.03 18 11/30 10.1.0.38 18.05 18.57 18.89 18.81 1/4 10.1.0.67 18.87 19.28 19.48 19.46 2/2 10.1.0.82 18.35 18.96 19.31 19.24 Calibration Results for Web Login, Search, View. Burst 10 threads iterating 10 times
  • 29. Ideas *What are the risks we are testing for? *What is “Realistic”? *Testing Techniques in Iterative Projects *Reporting Early Performance Results *Performance Testing Incomplete Systems
  • 30. Testing Components – Missing Pieces *APIs – abstraction points for developers, less brittle than interfaces *Mocking/Stubs/Auto-Responders – built in abstraction points to simulate other components that might not be there yet. Will help Devs test, too.
  • 31. Testing Components – Individual Pieces *Find and re-purpose code for harnesses. How do devs check their work? *Mocking/Stubs/Auto-Responders – built in abstraction points to simulate other components that might not be there yet. Will help Devs test, too.
  • 32. Testing Components Test what is there: *Session models: login/logoff are expensive, and matter for everyone *Search Functions *Think about user activities like road systems – where are the highways? *What will be meaningful to calibrate?
  • 33.
  • 35. Incomplete Systems:Business Logic * Frequently the scaling bottleneck in this architecture pattern. Web services are big buckets of functionality usually running a lot of interpreted code * Abstract presentation layer, borrow code from it, test the rest of the system down * Script load tests that address web services directly
  • 37. Incomplete Systems: Authentication Create Test that just creates sessions *Response time to create a session? *How reliably can I create sessions? *How many sessions can I create? *What arrival rate can I support?
  • 39. Incomplete Systems: Message Bus Find or Make a Test Harness. How do Developers Test? * Response time to push a message? * Response time to pull a message? * Is this sensitive to load? * At what rate can I create messages? With one publisher? With multiple publishers? * At what rate can I consume messages? What if I add message servers/dispatchers?
  • 41. Incomplete Systems: App Server Identify inputs – polling file? Job creation? *Processing time for asynchronous processes – per item, startup time *Throughputs *How many processes can I queue up? What happens if I send a lot of synchronous stuff all at once?
  • 42. Some Conclusions? *What are the risks you are testing for? *Unpack “Realistic”: what does it mean, and what (who) is it for? *Consider the value of performance tests that are cheap and easily repeatable *Broadcast Results *Test What You Have *Where are the highways?
  • 43. Thanks *Tweet #CAST2014. You’re on Twitter, right? *Join AST *Come to #CAST2015 *Profit!!!