SlideShare a Scribd company logo
1 of 9
Download to read offline
Automated)Tes,ng,)Con,nuous)Integra,on)&)Con,nuous)Deployment)
Test)Performance:)What)it)is;)Why)it)ma@ers)
What Makes for a Good Automated Test?
•  Eliminate repetitive manual tests
•  Yield reproducible results
•  Cover common and edge/error cases
•  Ideally either pure unit or integration test
•  Strive for clarity even when code is gnarly
•  Test for business requirements
Automated Test Suites are Software Artifacts, too
•  The Good:
–  Catch errors early and often
–  Eliminate repetitive manual tasks
–  Reduce integration risk
•  The Bad:
–  Is software too and has all the same problems
•  Often become bloated over time
•  Rarely documented
•  The Ugly:
–  Not the primary deliverable and get short shrift
•  I.e. the Bad get Worse
What is “Test Performance”?
What do we mean by “test performance”:
–  How long does the suite take to run?
–  Can I run it locally or do I need Big Iron?
–  Does the suite check valid, useful assertions?
–  How much effort does it take to maintain and update?
To Wit: Is it useful and how many cups of coffee?
Technique: Software Engineering
1.  Encapsulation and separation of concerns
•  A fast test suite that is a nightmare to maintain is
still slow in terms of human time consumed
2.  Tackle test performance problems in sprints and
apply Amdahl’s law aggressively
3.  Separate suite into unit/integration or small/medium/
large, etc. and run more expensive tests only daily
4.  Remove dead code early and often
Technique: Software Optimization
Software optimization may be warranted:
–  Many test suites are I/O intensive
•  Flash and big memory can help
•  Often the bottle neck is database tuning
1.  Turn off fsync
2.  Avoid synchronous DDL updates
3.  Use truncation rather than transactions
–  Headless browsers such as phantomjs are cheap
and often have sufficient fidelity
Technique: Throw Hardware at the Problem
My local development environment:
1.  4 Fast Cores
2.  16GB of SDRAM
3.  256GB of Flash
When a single core (or single node) is not enough, batch
parallelism can take you a very long way
Goal: avoid software optimization; cycles are cheap
Technique: Randomization
Randomization is a favorite testing technique:
1.  Black-box security testing through random input
generation (aka: “fuzzing”)
2.  Draw input sizes or arrival times from a known
distribution for performance testing
3.  Shuffle order tests are run in to trip hidden,
unintentional dependencies
Randomization is a good technique when “interesting”
examples are sufficiently common
Avoiding Randomization
Real world example: an LZW/LZ77-style compressor
–  Used widely in a major commercial storage appliance
–  LZ-style algorithms operate by implementing a simple
state machine that is prone to buffer overflows
1.  Performance & correctness both hard requirements
2.  Performance gated on memory hierarchy
•  Tested data-flow for performance before full
correctness regression testing
3.  “Interesting” test cases exercised all edges in state
machine diagram
•  Distribution matters – choosing inputs uniformly
at random nearly useless

More Related Content

What's hot

Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Eric Ries
 

What's hot (19)

Resilience reloaded - more resilience patterns
Resilience reloaded - more resilience patternsResilience reloaded - more resilience patterns
Resilience reloaded - more resilience patterns
 
Continuous Profiling in Production: What, Why and How
Continuous Profiling in Production: What, Why and HowContinuous Profiling in Production: What, Why and How
Continuous Profiling in Production: What, Why and How
 
Software testing
Software testingSoftware testing
Software testing
 
Class17
Class17Class17
Class17
 
Fuzzing with Go-Fuzz
Fuzzing with Go-FuzzFuzzing with Go-Fuzz
Fuzzing with Go-Fuzz
 
Oscp preparation
Oscp preparationOscp preparation
Oscp preparation
 
Resilience engineering
Resilience engineeringResilience engineering
Resilience engineering
 
Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?Need To Automate Test And Integration Beyond Current Limits?
Need To Automate Test And Integration Beyond Current Limits?
 
Beer & Beta by Flockler - Feb 4th 2016
Beer & Beta by Flockler - Feb 4th 2016Beer & Beta by Flockler - Feb 4th 2016
Beer & Beta by Flockler - Feb 4th 2016
 
Heuristics of performance testing
Heuristics of performance testingHeuristics of performance testing
Heuristics of performance testing
 
Production profiling: What, Why and How
Production profiling: What, Why and HowProduction profiling: What, Why and How
Production profiling: What, Why and How
 
Patterns of resilience
Patterns of resiliencePatterns of resilience
Patterns of resilience
 
High Reliabilty Systems
High Reliabilty SystemsHigh Reliabilty Systems
High Reliabilty Systems
 
WTF?
WTF?WTF?
WTF?
 
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
Just In Time Scalability  Agile Methods To Support Massive Growth PresentationJust In Time Scalability  Agile Methods To Support Massive Growth Presentation
Just In Time Scalability Agile Methods To Support Massive Growth Presentation
 
How Automation is Changing The Testing Scene
How Automation is Changing The Testing SceneHow Automation is Changing The Testing Scene
How Automation is Changing The Testing Scene
 
JDD 2016 - Jedrzej Dabrowa - Distributed System Fault Injection Testing With ...
JDD 2016 - Jedrzej Dabrowa - Distributed System Fault Injection Testing With ...JDD 2016 - Jedrzej Dabrowa - Distributed System Fault Injection Testing With ...
JDD 2016 - Jedrzej Dabrowa - Distributed System Fault Injection Testing With ...
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Chaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days AustinChaos Engineering Talk at DevOps Days Austin
Chaos Engineering Talk at DevOps Days Austin
 

Viewers also liked

London apartments with itl world
London apartments with itl worldLondon apartments with itl world
London apartments with itl world
ITLWORLD
 
โครงงานคอมน้องเตย
โครงงานคอมน้องเตยโครงงานคอมน้องเตย
โครงงานคอมน้องเตย
toeyeyor
 

Viewers also liked (6)

Boston MeetUp 10.10
Boston MeetUp 10.10Boston MeetUp 10.10
Boston MeetUp 10.10
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
 
London apartments with itl world
London apartments with itl worldLondon apartments with itl world
London apartments with itl world
 
โครงงานคอมน้องเตย
โครงงานคอมน้องเตยโครงงานคอมน้องเตย
โครงงานคอมน้องเตย
 
Materials (1)
Materials (1)Materials (1)
Materials (1)
 
Object-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van HornObject-Oriented BDD w/ Cucumber by Matt van Horn
Object-Oriented BDD w/ Cucumber by Matt van Horn
 

Similar to Why Software Test Performance Matters

Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010
Clay Helberg
 

Similar to Why Software Test Performance Matters (20)

Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
 
Testing 101
Testing 101Testing 101
Testing 101
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
PHP - Introduction to PHP Bugs - Debugging
PHP -  Introduction to  PHP Bugs - DebuggingPHP -  Introduction to  PHP Bugs - Debugging
PHP - Introduction to PHP Bugs - Debugging
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptx
 
debugging (1).ppt
debugging (1).pptdebugging (1).ppt
debugging (1).ppt
 
An important characteristic of a test suite that is computed by a dynamic ana...
An important characteristic of a test suite that is computed by a dynamic ana...An important characteristic of a test suite that is computed by a dynamic ana...
An important characteristic of a test suite that is computed by a dynamic ana...
 
TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012TechGIG_Memory leaks in_java_webnair_26th_july_2012
TechGIG_Memory leaks in_java_webnair_26th_july_2012
 
Good vs power automation frameworks
Good vs power automation frameworksGood vs power automation frameworks
Good vs power automation frameworks
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy Way
 
Real Time Debugging - What to do when a breakpoint just won't do
Real Time Debugging - What to do when a breakpoint just won't doReal Time Debugging - What to do when a breakpoint just won't do
Real Time Debugging - What to do when a breakpoint just won't do
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous delivery
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
Test Driven Development & CI/CD
Test Driven Development & CI/CDTest Driven Development & CI/CD
Test Driven Development & CI/CD
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Chelberg ptcuser 2010
Chelberg ptcuser 2010Chelberg ptcuser 2010
Chelberg ptcuser 2010
 
Putting Compilers to Work
Putting Compilers to WorkPutting Compilers to Work
Putting Compilers to Work
 
Topic production code
Topic production codeTopic production code
Topic production code
 
DevOps - Boldly Go for Distro
DevOps - Boldly Go for DistroDevOps - Boldly Go for Distro
DevOps - Boldly Go for Distro
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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
 
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)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Why Software Test Performance Matters

  • 2. What Makes for a Good Automated Test? •  Eliminate repetitive manual tests •  Yield reproducible results •  Cover common and edge/error cases •  Ideally either pure unit or integration test •  Strive for clarity even when code is gnarly •  Test for business requirements
  • 3. Automated Test Suites are Software Artifacts, too •  The Good: –  Catch errors early and often –  Eliminate repetitive manual tasks –  Reduce integration risk •  The Bad: –  Is software too and has all the same problems •  Often become bloated over time •  Rarely documented •  The Ugly: –  Not the primary deliverable and get short shrift •  I.e. the Bad get Worse
  • 4. What is “Test Performance”? What do we mean by “test performance”: –  How long does the suite take to run? –  Can I run it locally or do I need Big Iron? –  Does the suite check valid, useful assertions? –  How much effort does it take to maintain and update? To Wit: Is it useful and how many cups of coffee?
  • 5. Technique: Software Engineering 1.  Encapsulation and separation of concerns •  A fast test suite that is a nightmare to maintain is still slow in terms of human time consumed 2.  Tackle test performance problems in sprints and apply Amdahl’s law aggressively 3.  Separate suite into unit/integration or small/medium/ large, etc. and run more expensive tests only daily 4.  Remove dead code early and often
  • 6. Technique: Software Optimization Software optimization may be warranted: –  Many test suites are I/O intensive •  Flash and big memory can help •  Often the bottle neck is database tuning 1.  Turn off fsync 2.  Avoid synchronous DDL updates 3.  Use truncation rather than transactions –  Headless browsers such as phantomjs are cheap and often have sufficient fidelity
  • 7. Technique: Throw Hardware at the Problem My local development environment: 1.  4 Fast Cores 2.  16GB of SDRAM 3.  256GB of Flash When a single core (or single node) is not enough, batch parallelism can take you a very long way Goal: avoid software optimization; cycles are cheap
  • 8. Technique: Randomization Randomization is a favorite testing technique: 1.  Black-box security testing through random input generation (aka: “fuzzing”) 2.  Draw input sizes or arrival times from a known distribution for performance testing 3.  Shuffle order tests are run in to trip hidden, unintentional dependencies Randomization is a good technique when “interesting” examples are sufficiently common
  • 9. Avoiding Randomization Real world example: an LZW/LZ77-style compressor –  Used widely in a major commercial storage appliance –  LZ-style algorithms operate by implementing a simple state machine that is prone to buffer overflows 1.  Performance & correctness both hard requirements 2.  Performance gated on memory hierarchy •  Tested data-flow for performance before full correctness regression testing 3.  “Interesting” test cases exercised all edges in state machine diagram •  Distribution matters – choosing inputs uniformly at random nearly useless