SlideShare una empresa de Scribd logo
1 de 57
Top ten secret weapons for performance testing in
an agile environment
by
Alistair Jones & Patrick Kua
agile2009@thoughtworks.com
http://connect.thoughtworks.com/agile2009/
© ThoughtWorks 2009
Make Performance Explicit
© ThoughtWorks 2009
So that I can make better
investment decisions
As an investor
I want to see the value of my
portfolio presented on a single web
page must have “good” performance, less than 0.2s
page load for about 10,000 concurrent users
© ThoughtWorks 2009
© ThoughtWorks 2009
So that investors have a high-
quality experience as the business
grows
As the Operations Manager
I want the portfolio value page to
render within 0.2s when 10,000
users are logged in
One Team
© ThoughtWorks 2009
Team Dynamics
© ThoughtWorks 2009
Performance Testers Part of Team
© ThoughtWorks 2009
© ThoughtWorks 2009
Performance Testers Part of Team
© ThoughtWorks 2009
Pair on Performance Test Stories
© ThoughtWorks 2009
Rotate Pairs
© ThoughtWorks 2009
Customer Driven
© ThoughtWorks 2009
What was a good source of requirements?
© ThoughtWorks 2009
© ThoughtWorks 2009
Existing Pain Points
An example...
© ThoughtWorks 2009
So that we can budget for future
hardware needs as we grow
As the data centre manager
I want to know how much traffic
we can handle now
© ThoughtWorks 2009
Another example
© ThoughtWorks 2009
© ThoughtWorks 2009
So that we have confidence in
meeting our SLA
As the Operations Manager
I want to ensure that a sustained
peak load does not take out our
service
Personas
© ThoughtWorks 2009
Who is the customer?
© ThoughtWorks 2009
End Users
Operations
Power
Users
Marketing
Investors
Discipline
© ThoughtWorks 2009
© ThoughtWorks 2009
Is the
hypothesis
valid?
Change the
application
code
Observe test
results
Formulate an
hypothesis
Design an
experiment
Run the
experiment
What do you see?
Why is it doing that?
How can I prove that’s what’s happening?
Take the time to gather the evidence.
Safe in the knowledge that I’m making it faster
© ThoughtWorks 2009
© ThoughtWorks 2009
Saw tooth pattern (1 minute intervals)
Directory structure of (yyyy/mm/minuteofday)?. Slow down
due to # of files in directory?
1 directory should result in even worse performance...
We ran the test…
Is the
hypothesis
valid?
Change the
application
code
Observe test
results
Formulate an
hypothesis
Design an
experiment
Run the
experiment
One Directory
© ThoughtWorks 2009
Play Performance Early
© ThoughtWorks 2009
© ThoughtWorks 2009
End
Start End
Other projects start
performance testing
here
Start
Agile projects start
performance testing as
early as possible
Iterate Don’t (Just)
Increment
© ThoughtWorks 2009
© ThoughtWorks 2009
We Sashimi
© ThoughtWorks 2009
Sashimi Slice By...
Presentation
© ThoughtWorks 2009
© ThoughtWorks 2009
So that I can better see trends in
performance
As the Operations Manager
I want a graph of requests per
second
© ThoughtWorks 2009
So that I can better see trends in
performance
As the Operations Manager
I want a graph of average latency
per second
© ThoughtWorks 2009
So that I can easily scan results at a
single glance
As the Operations Manager
I want a one page showing all
results
Sashimi Slice By...
Scenario
© ThoughtWorks 2009
© ThoughtWorks 2009
So that we never have a day like
“October 10”
As the Operations Manager
I want to ensure that a sustained
peak load does not take out our
service
© ThoughtWorks 2009
So that we never have a day like
“November 12”
As the Operations Manager
I want to ensure that an escalating
load up to xxx requests/second
does not take out our service
Automate, Automate,
Automate
© ThoughtWorks 2009
© ThoughtWorks 2009
Automated
Compilation
Automated
Tests
Automated
Packaging
Automated
Deployment
Automation => Reproducible and Consistent
Automation => Faster Feedback
Automation => Higher Productivity
Why Automation?
© ThoughtWorks 2009
© ThoughtWorks 2009
Automated
Application
Deployment
Automated
Load
Generation
Automated
Test
Orchestration
Automated
Analysis
Automated Scheduling
Automated Result Archiving
Continuous Performance
Testing
© ThoughtWorks 2009
© ThoughtWorks 2009
Application
Build Pipelines
© ThoughtWorks 2009
Performance
Build RPM
Functional Test
Compile & Unit Test
© ThoughtWorks 2009
Test Drive Your Performance
Test Code
© ThoughtWorks 2009
V Model Testing
© ThoughtWorks 2009
http://en.wikipedia.org/wiki/V-Model_(software_development)
Performance
Testing
Slower + Longer
Fast
Speed
We make mistakes
© ThoughtWorks 2009
V Model Testing
© ThoughtWorks 2009
http://en.wikipedia.org/wiki/V-Model_(software_development)
Performance
Testing
Slower + Longer
Fast
Speed
Unit test
performance
code to fail
faster
Fail Fast!
© ThoughtWorks 2009
Fast feedback!
Faster learning
Faster results
Classic Performance Areas to Test
© ThoughtWorks 2009
Analysis
Information
Collection
Visualisation
Publishing
Presentation
Get Feedback
© ThoughtWorks 2009
Frequently (Weekly) Showcase
© ThoughtWorks 2009
Here is what we learned this week....
Frequently (Weekly) Showcase
© ThoughtWorks 2009
And based on this... We changed our
directory structure.
Frequently (Weekly) Showcase
© ThoughtWorks 2009
Should we do something different
knowing this new information?
List of All Secret Weapons
1. Make Performance Explicit
2. One Team
3. Customer Driven
4. Discipline
5. Play Performance Early
6. Iterate Don't (Just) Increment
7. Automate, Automate, Automate
8. Test Drive Your Performance Code
9. Continuous Performance Testing
10. Get Feedback
© ThoughtWorks 2009
• Talk to us tonight at... ThoughtWorks’ Agile Open
Office @ 7pm: http://tiny.cc/uqtLa
• Email us... agile2009@thoughtworks.com
• Visit our website: http://www.thoughtworks.com
• Leave your business card at the back
Photo Credits (Creative Commons licence)
• Barbed wire picture: http://www.flickr.com/photos/lapideo/446201948/
• Eternal clock: http://www.flickr.com/photos/robbie73/3387189144/
• Sashimi from http://www.flickr.com/photos/mac-ash/3719114621/
For more information
© ThoughtWorks 2009

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for Everyone
 
Optimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue ApronOptimizely NYC Developer Meetup - Experimentation at Blue Apron
Optimizely NYC Developer Meetup - Experimentation at Blue Apron
 
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal ReadinessTis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
Tis The Season: Load Testing Tips and Checklist for Retail Seasonal Readiness
 
Bycraft Conference - Running operations in 2 hours
Bycraft Conference - Running operations in 2 hoursBycraft Conference - Running operations in 2 hours
Bycraft Conference - Running operations in 2 hours
 
Kanban - Set Work in Progress Limits
Kanban - Set Work in Progress LimitsKanban - Set Work in Progress Limits
Kanban - Set Work in Progress Limits
 
Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)Living with acceptance tests: Beyond Write-Once (XP NYC)
Living with acceptance tests: Beyond Write-Once (XP NYC)
 
WordPress Affiliate Toolkit - Affiliate Summit East 2014
WordPress Affiliate Toolkit - Affiliate Summit East 2014WordPress Affiliate Toolkit - Affiliate Summit East 2014
WordPress Affiliate Toolkit - Affiliate Summit East 2014
 
O product where art thou
O product where art thouO product where art thou
O product where art thou
 
Ольга Гриник “Make your tester’s life easier with automated deployment. A Rea...
Ольга Гриник “Make your tester’s life easier with automated deployment. A Rea...Ольга Гриник “Make your tester’s life easier with automated deployment. A Rea...
Ольга Гриник “Make your tester’s life easier with automated deployment. A Rea...
 
Empowering publishers - Utility Computing - May-15-2013
Empowering publishers - Utility Computing - May-15-2013Empowering publishers - Utility Computing - May-15-2013
Empowering publishers - Utility Computing - May-15-2013
 
Extending Continuous Integration
Extending Continuous IntegrationExtending Continuous Integration
Extending Continuous Integration
 
Anand Ramdeo - Automation Frameworks - EuroSTAR 2012
Anand Ramdeo - Automation Frameworks - EuroSTAR 2012Anand Ramdeo - Automation Frameworks - EuroSTAR 2012
Anand Ramdeo - Automation Frameworks - EuroSTAR 2012
 
Humans by the hundred (DevOps Days Ohio)
Humans by the hundred (DevOps Days Ohio)Humans by the hundred (DevOps Days Ohio)
Humans by the hundred (DevOps Days Ohio)
 
Open Source SLAs
Open Source SLAsOpen Source SLAs
Open Source SLAs
 
Kanban - Classes of Service
Kanban - Classes of ServiceKanban - Classes of Service
Kanban - Classes of Service
 
Increasing Traffic Through Optimization : The Importance of Site Speed
Increasing Traffic Through Optimization : The Importance of Site SpeedIncreasing Traffic Through Optimization : The Importance of Site Speed
Increasing Traffic Through Optimization : The Importance of Site Speed
 
Do it faster, keep it great, Digiday Agency Summit, October 2016
Do it faster, keep it great, Digiday Agency Summit, October 2016Do it faster, keep it great, Digiday Agency Summit, October 2016
Do it faster, keep it great, Digiday Agency Summit, October 2016
 
Responsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design SystemResponsive App Design with the Salesforce Lightning Design System
Responsive App Design with the Salesforce Lightning Design System
 
Planning XP
Planning XPPlanning XP
Planning XP
 

Destacado (6)

Bab ii agama
Bab ii agamaBab ii agama
Bab ii agama
 
PRESENTATION BAHASA MELAYU
PRESENTATION BAHASA MELAYUPRESENTATION BAHASA MELAYU
PRESENTATION BAHASA MELAYU
 
Methadone Clinical Guidelines
Methadone Clinical GuidelinesMethadone Clinical Guidelines
Methadone Clinical Guidelines
 
Methadone
MethadoneMethadone
Methadone
 
Bahasa melayu presentation
Bahasa melayu presentationBahasa melayu presentation
Bahasa melayu presentation
 
Methadone
MethadoneMethadone
Methadone
 

Similar a Top ten secret weapons for performance testing in an agile environment

Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance Testing
Andriy Melnyk
 
Top ten secret weapons for performance testing in an agile environment
Top ten secret weapons for performance testing in an agile environmentTop ten secret weapons for performance testing in an agile environment
Top ten secret weapons for performance testing in an agile environment
andyrobinson8
 
UI Test Cases With CloudStack
UI Test Cases With CloudStackUI Test Cases With CloudStack
UI Test Cases With CloudStack
ShapeBlue
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UI
travisk
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
SivaprasanthRentala1975
 
Universal test solutions customer testimonial 10192013-v2.3
Universal test solutions customer testimonial 10192013-v2.3Universal test solutions customer testimonial 10192013-v2.3
Universal test solutions customer testimonial 10192013-v2.3
Universal Technology Solutions
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agile
Terry Bunio
 

Similar a Top ten secret weapons for performance testing in an agile environment (20)

Top Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance TestingTop Ten Secret Weapons For Agile Performance Testing
Top Ten Secret Weapons For Agile Performance Testing
 
Top ten secret weapons for performance testing in an agile environment
Top ten secret weapons for performance testing in an agile environmentTop ten secret weapons for performance testing in an agile environment
Top ten secret weapons for performance testing in an agile environment
 
DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?DevOps in Practice: When does "Practice" Become "Doing"?
DevOps in Practice: When does "Practice" Become "Doing"?
 
Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%Reduce Test Automation Execution Time by 80%
Reduce Test Automation Execution Time by 80%
 
UI Test Cases With CloudStack
UI Test Cases With CloudStackUI Test Cases With CloudStack
UI Test Cases With CloudStack
 
Augmenting Coded UI
Augmenting Coded UIAugmenting Coded UI
Augmenting Coded UI
 
Fundamentals Performance Testing
Fundamentals Performance TestingFundamentals Performance Testing
Fundamentals Performance Testing
 
Automation testing strategy, approach & planning
Automation testing  strategy, approach & planningAutomation testing  strategy, approach & planning
Automation testing strategy, approach & planning
 
Universal test solutions customer testimonial 10192013-v2.3
Universal test solutions customer testimonial 10192013-v2.3Universal test solutions customer testimonial 10192013-v2.3
Universal test solutions customer testimonial 10192013-v2.3
 
D-CAST: The Future of Agile Testing Meetup
D-CAST: The Future of Agile Testing MeetupD-CAST: The Future of Agile Testing Meetup
D-CAST: The Future of Agile Testing Meetup
 
DevOPs Transformation Workshop
DevOPs Transformation WorkshopDevOPs Transformation Workshop
DevOPs Transformation Workshop
 
Universal test solutions customer testimonial 10192013-v2.2
Universal test solutions customer testimonial 10192013-v2.2Universal test solutions customer testimonial 10192013-v2.2
Universal test solutions customer testimonial 10192013-v2.2
 
Introduction to lean and agile
Introduction to lean and agileIntroduction to lean and agile
Introduction to lean and agile
 
Introduction To Agile And Scrum Innotech
Introduction To Agile And Scrum InnotechIntroduction To Agile And Scrum Innotech
Introduction To Agile And Scrum Innotech
 
measuring and monitoring client side performance / Nir Nahum
measuring and monitoring client side performance / Nir Nahummeasuring and monitoring client side performance / Nir Nahum
measuring and monitoring client side performance / Nir Nahum
 
Transform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra PlatformTransform Software Testing and Quality with the Neotys-Inflectra Platform
Transform Software Testing and Quality with the Neotys-Inflectra Platform
 
Continuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and JenkinsContinuous Load Testing with CloudTest and Jenkins
Continuous Load Testing with CloudTest and Jenkins
 
Confessions of the Tester
Confessions of the TesterConfessions of the Tester
Confessions of the Tester
 
PureSystems Summary and Actions, John Kaemmerer and Gerry Novan, 11th Sept 14
PureSystems Summary and Actions, John Kaemmerer and Gerry Novan, 11th Sept 14PureSystems Summary and Actions, John Kaemmerer and Gerry Novan, 11th Sept 14
PureSystems Summary and Actions, John Kaemmerer and Gerry Novan, 11th Sept 14
 
Mobile User Experience: Auto Drive through Performance Metrics
Mobile User Experience:Auto Drive through Performance MetricsMobile User Experience:Auto Drive through Performance Metrics
Mobile User Experience: Auto Drive through Performance Metrics
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Top ten secret weapons for performance testing in an agile environment

Notas del editor

  1. In a conventional project, we focus on the functionality that needs to be delivered. Performance might be important, but performance requirements are considered quite separate from functional requirements. One approach is to attach “conditions” to story cards, i.e. this functionality must handle a certain load. In our experience, where performance is of critical conern, pull out the performance requirement as its own story…
  2. Calling out performance requirements as their own stories allows you to: validate the benefit you expect from delivering the performance -prioritise performance work against other requirements -know when you’re done
  3. not sure if you like this picture, I was really looking for a good shot looking out over no-man’s land at the Berlin wall. I want the idea of divisions along skill lines breading hostility and un-cooperation.
  4. Everything should be based on some foreseeable scenario, and who benefits from it Harder to do without repetition (involvement and feedback) [not sure if this makes sense anymore] Extremely important to keep people focused as its easy to drift Capture different profiles Separation simulation from optimisation -> Problem Identification vs Problem Resolution (or broken down further Solution Brainstorm -> Solution Investigation) Linking back to why is even more essential -> map to existing problems or fears Latency vs throughput -> determine what is the most useful metric and define service level agreements
  5. http://www.flickr.com/photos/denniskatinas/2183690848/ Not sure which one you like better
  6. Here’s an example... (in the style of Feature Injection) “What’s our upper limit?”
  7. Here’s another example... (in the style of Feature Injection), “Can we handle peaks in traffic again?” So that we have confidence in meeting our SLA As the Operations Manager I want to ensure that a sustained peak load does not take out our service
  8. It helps to be clear about who is going to benefit from any performance testing (tuning and optimisation) that is going to take place. Ensure that they get a stake on prioritisation that will help with the next point...
  9. Evidence-based decision-making. Don’t commit to a code change until you know it’s the right thing to do.
  10. Evidence-based decision-making. Don’t commit to a code change until you know it’s the right thing to do.
  11. It helps to have the customer (mentioned in the previous slide) be a key stakeholder to prioritise.
  12. Application supports better ability to be performance tested easier Like TDD changes the design/architecture of a system Need to find reference for this Measuring it early helps raise what changes contribute to slowness Performance work takes longer Lead times potentially large and long lead time (sequential) – think of where gantt chart may actually be useful Run it as a parallel track of work to normal functionality (not sequential) Minimal environment availability (expensive, non concurrent use) Need minimal functionality or at least clearly defined interfaces to operate against Want to have some time to respond to feedback -> work that into the process as early as possible and potentially change architecture/design
  13. Start with the simplest performance test scenarios -> Sanity test/smoke test -> Hit all aspects -> Use to drive out automated deployment (environment limitations, configuration issues, minimal set of reporting needs – green/red) -> Hit integration boundaries but with a small problem rather than everything Next story might be a more complex script or something that drives out more of the infrastrcutre Performance stories should not be : -> Build out tasks -> Does not enhance anything without other stories Log files -> Contents early. Consumer Driven. Contracts for analysis. Keep around. Keep notes around what was varied INVEST stories Avoid the large “performance test” story Separate types of stories Optimise vs Measure Optimise is riskier components. Less known. “Done” is difficult to estimate Measure is clearer. Allows you to make better informed choices Know when to stop When enough is enough
  14. The best lessons are learned from iterating, not from incrementing. Iterate over your performance test harness, framework and test fixtures. Make it easier to increment into new areas by incrementing in a different direction each time. - Start with simple performance test scenarios - Don’t build too much infrastructure at once - Refine the test harness and things used to create more tests - Should always be delivering value - Identify useful features in performance testing and involve the stakeholder(s) to help prioritise them in Prioritise and schedule in analysis stories (metrics and graphs) Some of this work will still be big
  15. Sashimi is nice and bite sized. You don’t eat the entire fish at once. You’re eating a part of it. Sashimi slices are nice and thin. There are a couple of different strategies linking this in. Think of sashimi as the thinnest possible slice.
  16. Number of requests over time
  17. Latency over time
  18. “I don’t want to click through to each graph”
  19. “I don’t want to click through to each graph”
  20. “I don’t want to click through to each graph”
  21. Automated build is a key XP practice. The first stage of automating a build is often to automate compilation However, for a typical project, we go on after compilation to run tests, as another automated step. In fact we may have a whole series of automted steps that chain on after each other, automating many aspects of the development process, all the way from compiling source to to deploying a complete application into the production environment.
  22. Automation is powerful lever in software projects because: it gives us reproducable, consistent processes We get faster feedback when something goes wrong Overall higher productivity – we can repeat an automated build much more often than we could if it was manual
  23. In performance testing we can use automate many of the common tasks in a similar way to how we automate a software build. For any performance test, there is a linear series of activities that can be automated (first row of slide) In our recent projects we’ve been using the build tool ant for most of performance scripting. You could use any scripting language, but here are some very basic scripts to show you the kind of thing we mean… [possibly animate transitions to the 4 following slides] Once we’ve auomted the running of a single test, we can move on even more aspects of automation such as scheduling and result archiving, whch lead us into… Continuous Performance testing.
  24. Performance tests can take a long time to run, you need all the time you can to get good results. Lean on your automation to have tests running all the time, automatically using more hardware when available (in the evening or at the weekend for example)
  25. For a faster feedback, set up your CI server so that performance tests are always running against the latest version of the application.