Agile Aspects of Performance Testing. March 1, 2013. Page 1



Similar documents
Adjusting Performance Testing to the World of Agile

Performance Testing. Flexibility and Iterative Processes Are Key to Keeping Tests on Track

The Association of System Performance Professionals

What Is Specific in Load Testing?

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Agile Performance Testing

A Performance Engineering Story

Accelerate Testing Cycles With Collaborative Performance Testing

10 Best Practices for Application Performance Testing

SOFTWARE PERFORMANCE TESTING SERVICE

'& ##! %1# ##!!* #!!! 23!!!

Recommendations for Performance Benchmarking

Rapid Bottleneck Identification A Better Way to do Load Testing. An Oracle White Paper June 2009

Next-Generation Performance Testing with Service Virtualization and Application Performance Management

Learning More About Load Testing

Use service virtualization to remove testing bottlenecks

An Oracle White Paper February Rapid Bottleneck Identification - A Better Way to do Load Testing

Best Practices for Web Application Load Testing

The Evolution of Load Testing. Why Gomez 360 o Web Load Testing Is a

Agile Development for Application Security Managers

Mike Chyi, Micro Focus Solution Consultant May 12, 2010

A closer look at HP LoadRunner software

Agile Performance Testing

Virtual Desktop Infrastructure Optimization with SysTrack Monitoring Tools and Login VSI Testing Tools

Rapid Bottleneck Identification

Identify and control performance and capacity risks. Introduction... 2

WHAT WE NEED TO START THE PERFORMANCE TESTING?

Performance Test Results Report for the Sled player

Performance Testing and Improvement in Agile

Performance Testing. What is performance testing? Why is performance testing necessary? Performance Testing Methodology EPM Performance Testing

Copyright 1

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Testing Web Services Today and Tomorrow

Benefits of Test Automation for Agile Testing

Performance Testing. Slow data transfer rate may be inherent in hardware but can also result from software-related problems, such as:

How To Develop An Application

What s New in WebLOAD 10.1

Best Practices in Release and Deployment Management

Basic Testing Concepts and Terminology

Product Review: James F. Koopmann Pine Horse, Inc. Quest Software s Foglight Performance Analysis for Oracle

Application Performance Testing Basics

How To Test A Web Server

DevOps for CA Plex Automated Testing

Successful Factors for Performance Testing Projects. NaveenKumar Namachivayam - Founder - QAInsights

Implement a unified approach to service quality management.

Guideline for stresstest Page 1 of 6. Stress test

Testing Intelligent Device Communications in a Distributed System

How To Test For Elulla

Why Test ITSM Applications for Performance? Webinar

Information Systems Development Process (Software Development Life Cycle)

How to Plan a Successful Load Testing Programme for today s websites

Agile Testing Overview

DELL. Virtual Desktop Infrastructure Study END-TO-END COMPUTING. Dell Enterprise Solutions Engineering

SOA Solutions & Middleware Testing: White Paper

TASSQ Dinner Meeting Performance & Automation Testing of Cloud Solutions. March 31 st 2015

Software Testing Lifecycle

About Me Developer Workspaces Enable Agile Teams

Metrics in Software Test Planning and Test Design Processes

Business Application Services Testing

Performance Requirements: the Backbone of the Performance Engineering Process

Throughput Capacity Planning and Application Saturation

Bridging the Gap Between Acceptance Criteria and Definition of Done

Ready Time Observations

The Importance of Continuous Integration for Quality Assurance Teams

Oracle Hyperion Financial Management Virtualization Whitepaper

Software Project Models

Service Virtualization:

Increasing Business Efficiency and Agility for ATGbased. Systems. the business challenge: upgrading the development pipeline

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Business white paper. Load factor: performance testing for Web applications

Don t forget the testers

Table of Contents INTRODUCTION Prerequisites... 3 Audience... 3 Report Metrics... 3

Performance Modeling for Web based J2EE and.net Applications

Analyze, Validate, and Optimize Business Application Performance

Tool - 1: Health Center

q for Gods Whitepaper Series (Edition 7) Common Design Principles for kdb+ Gateways

Testing in Scrum Projects

A Modern Approach to Monitoring Performance in Production

Business Process Management In An Application Development Environment

Testing service-oriented architecture (SOA) applications and services. White paper

Zen or Tao of SOA & Software As A Service

Automate performance testing to predict system behaviour and improve application performance. Business white paper

Taking the First Steps in. Web Load Testing. Telerik

Developing a Load Testing Strategy

Bernie Velivis President, Performax Inc

Performance Testing of a Cloud Service

Comparing Plan-Driven and Agile Project Approaches

Simplified Management With Hitachi Command Suite. By Hitachi Data Systems

Certified Agile Software Test Professional (CASTP)

Enhance visibility into and control over software projects IBM Rational change and release management software

Performance Testing Process A Whitepaper

Using WebLOAD to Monitor Your Production Environment

Performance Management from black-art to process

AUTOMATED TESTING and SPI. Brian Lynch

ICAgile Learning Roadmap Agile Testing Track

ONSITE TRAINING CATALOG

Best Practices for Performance Testing Mobile Apps

Why Alerts Suck and Monitoring Solutions need to become Smarter

Adopting Agile Testing

Whitepaper Performance Testing and Monitoring of Mobile Applications

Transcription:

Agile Aspects of Performance Testing Alexander Podelko alex.podelko@oracle.com www.alexanderpodelko.com @apodelko March 1, 2013 1 About Me Specialize in performance last 16 years Currently performance testing and optimization of Hyperion products at Oracle Blog at http://alexanderpodelko.com/blog,, have a collection of performance-related related links at http://alexanderpodelko.com,, on Twitter as @apodelko Involved in CMG http://cmg.org,, a volunteer organization of performance and capacity planning professionals Conference November 4-8, 2013 in La Jolla, CA Disclaimer: The views expressed here are my personal views only and do not necessarily represent those of my current or previous employers. All brands and trademarks mentioned are the property of their owners. 2 Page 1

Status Quo Agenda Performance Testing in Agile Project Agile Performance Testing 3 Performance Testing Here used as an umbrella term including load, stress, concurrency, etc. testing An important project step in many corporations A project itself We can apply software development methodologies to this project Waterfall approach in most cases Often pre-production production performance validation 4 Page 2

Assumptions Two important assumptions for this session: 1. Stakeholders understand the need 2. The team knows the basics How to get there are very interesting topics, but outside this session 5 Waterfall Approach to Performance Testing Flowing steadily downwards through the phases Get the system ready Develop scripts requested Run scripts in the requested combinations Compare with the provided requirements If requirements missed, throw back to development 6 Page 3

Main Problems We learn about system by preparing scripts and running tests With each test We don t have much information about the system before tests to do a reliable plan Much more than in development and functional testing Often based on internal communication It is agile / explorative by nature 7 Main Problems The system must be ready Late changes are expensive If we want earlier, should be more agile / explorative Test scripts are also software Even with record/playback you still need to correlate, parameterize, debug, and verify Many details get uncovered as you go 8 Page 4

Main Problems Running all scripts together makes it very difficult to tune and troubleshoot Shot-in-the-dark anti-pattern Tuning and troubleshooting are iterative Minimal information about the system behavior You cannot build any kind of model 9 Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 10 Page 5

Dimensions to Consider Development Process Agile Waterfall Performance Testing Process Agile Waterfall 11 Agenda Status Quo Performance Testing in Agile Project Agile Performance Testing 12 Page 6

Agile Development Agile development is rather a trivial case for performance testing You have a working system each iteration to test early by definition. You need performance engineer for the whole project Savings come from detecting problems early You need to adjust requirements for implemented functionality Additional functionality will impact performance 13 The Main Issue on the Agile Side It doesn t [always] work this way in practice That is why you have Hardening Iterations, Technical Debt and similar notions Same old problem: functionality gets priority over performance 14 Page 7

The Main Issue on the Testing Side Performance Engineering teams don t scale well Even assuming that they are competent and effective Increased volume exposes the problem Each iteration Remedies: automation, making performance everyone s job 15 Automation: Difficulties Complicated setups Long list of possible issues Complex results (no pass/fail) Not easy to compare two result sets 16 Page 8

Automation: Considerations You need know system well enough to make meaningful automation If system is new, overheads are too high So almost no automation in traditional environment [with testing in the end] If the same system is tested again and again It makes sense to invest in setting up automation 17 One More Dimensions to Consider System / Testing Type New (Exploratory) Well-known (Regression) 18 Page 9

Dimensions to Consider Development Process Agile Waterfall Performance Testing Process Waterfall Agile 19 Tool Support Not much tool support so far Some vendor claim that their load testing tools better fit agile processes Usually it means that the tool is a little easier to handle Difficult to find what is available Command line, API, data access 20 Page 10

Performance Challenges in Agile Projects Performance-related related activities usually span the whole project Specifying performance requirements Constraints As user stories should represent finite manageable tasks User stories Separating of initial and ongoing compliance 21 Heretic Thought we have come to value: Individuals and interactions over processes and tools Is agile process oxymoron? Maybe different dimensions: Waterfall Iterative Process Oriented Agile Build to Grow Lean 22 Page 11

Status Quo Agenda Performance Testing in Agile Project Agile Performance Testing 23 Agile 'Agile software development refers to a group of software development methodologies that promotes development iterations, open collaboration, and process adaptability through the life-cycle of the project' Fully applicable to performance testing Performance testing of new systems is agile by its nature As far as we learn about the system with each test 24 Page 12

Agile Performance Testing Finding new opportunities inside existing processes using collaboration, iterative and adaptive processes Separate from performance testing in agile development, which was discussed earlier Most good performance engineers already use similar approaches Although waterfall-like like plan is usually presented to management 25 Testing Early The main problem in waterfall development Nobody argues against, but rarely happens in practice In agile projects it supposed to happened automatically Require different, more agile approach Making performance everyone s job 26 Page 13

Mentality Change Late record/playback performance testing -> Early Performance Engineering System-level requirements -> Component- level requirements Record/playback approach -> Programming to generate load/create stubs "Black Box" -> "Grey Box 27 Unit Performance Testing Any part of the system Not a standard practice Do not wait the system is assembled Test cases are simpler, fewer variables Many systems are monolithic Test-Driven Development may be an answer Third-party components 28 Page 14

Single-User Performance If performance for one user isn't good, it won't be any better for multiple users Single-user testing is conducted throughout the development life cycle Gathering performance data can be extremely helpful Can provide a good indication of what business functions need to be investigated further 29 Early Involvement Any early involvement would be beneficial Even if only asking a few key questions Don't wait until everything gets in place A few guerrilla-style actions can save a lot of time and resources later Unfortunately, you often get involved in the project at a later stage Next sections are still fully applicable 30 Page 15

Don't Underestimate Workload Generation Only the Paranoid Survive The title of Andy Grove's book should be performance engineering's motto 31 Be a Performance Test Architect Gather all requirements and project them onto the system architecture Business requirements are not the "Holy Scripture" Iterative process, evaluate and validate Scrutinize workload Project requirements onto the system architecture What components are involved 32 Page 16

Be a Performance Test Architect Make sure that the system is properly configured and results are meaningful Difference between environments Data used User access Make the test environment as close to the production as possible Performance testing isn't an exact science 33 Scripting Process Record/playback is easy for static content and plain HTML Not many such systems anymore Learn as you script Software Development Project Correlate and parameterize Validate Lack of error messages is not the proof Test different input data 34 Page 17

Scripting Example Back-end calculation (Financial consolidation) Long time, shows progress bar Polling back-end Explicit loop is needed to work properly 35 Recorded Script web_custom_request("xmldatagrid.asp_7","url={url}/ Data/XMLDataGrid.asp?Action=EXECUTE&TaskID=1024 &RowStart=1&ColStart=2&RowEnd=1&ColEnd=2&SelTy pe=0&format=javascript", LAST); web_custom_request("xmldatagrid.asp_8","url={url}/ Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS", LAST); web_custom_request("xmldatagrid.asp_9","url={url}/ Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS", LAST); web_custom_request("xmldatagrid.asp_9","url={url}/ Data/XMLDataGrid.asp?Action=GETCONSOLSTATUS", LAST); 36 Page 18

Working Script web_custom_request("xmldatagrid.asp_7","url={url}/ Data/XMLDataGrid.asp?Action=EXECUTE&TaskID=1024 &RowStart=1&ColStart=2&RowEnd=1&ColEnd=2&SelTy pe=0&format=javascript", LAST); do { sleep(3000); web_reg_find("text=1","savecount=abc_count",last); web_custom_request("xmldatagrid.asp_8","url={ur L}/Data/XMLDataGrid.asp?Action=GETCONSOLSTATU S", LAST); } while (strcmp(lr_eval_string("{abc_count}"),"1")==0); 37 Performance Testing Often is not separated from: Tuning System should be properly tuned Troubleshooting / Diagnostics Diagnose to the point when it is clear how to handle Capacity Planning / Sizing "Pure" performance testing is rare Regression testing? 38 Page 19

Tuning and Troubleshooting Both are iterative processes Make a change Run the test Analyze results Repeat if necessary You apply the same synthetic workload Easy to quantify the impact of the change 39 Issues Requires close collaboration of all stakeholders Impossible to predict how many test iterations would be necessary Shorter / simpler tests may be needed Complex tests may make problems less evident Usually no indications at the beginning how much time and resources would be needed 40 Page 20

Process Asynchronous process doesn't work well Problem often blocks further testing Full setup is usually needed to reproduce Debugging is a collaborative process Open collaboration needed Synchronized work of all stakeholders to fix problems and complete performance testing 41 Building a Model Significantly increases the value of performance testing One more way to validate tests and help to identify problems Answers questions about sizing the system Doesn't need to be a formal model May be just simple observations as to how much resources are needed by each component 42 Page 21

Modeling Often is associated with queuing theory Great mechanism, but not required in simple cases Most good performance engineers have a model in their mind May be not documented / formalized But they see when the system behaves in an unusual way 43 Sometimes Linear Model Works Linear model may often work for multi- processor machines Considering the working range of CPU utilization Most IT shops don't want more than 70-80% Throughput and CPU utilization increase proportionally Response times increase insignificantly 44 Page 22

Example Simple queuing model was built using TeamQuest Specific workload executed on a four-way server Eight different load levels Step 1 represents 100-user workload, each next step adds 200 users, step 8 represents 1,500 users Linear model would be good through step 6 With CPU utilization 87% 45 Throughput Throughput 25 20 Completions/Second 15 10 Request Medium 5 0 Step: 1 Step: 2 Step: 3 Step: 4 Step: 5 Step: 6 Step: 7 Step: 8 46 Page 23

Response Time Response Time 14 12 10 Seconds 8 6 Request Medium 4 2 0 Step: 1 Step: 2 Step: 3 Step: 4 Step: 5 Step: 6 Step: 7 Step: 8 47 CPU Utilization System (Test_Windows) CPU (Application) Utilization by Workload Percentages 100 90 80 70 Percentage 60 50 40 Request Medium 30 20 10 0 Step: 1 Step: 2 Step: 3 Step: 4 Step: 5 Step: 6 Step: 7 Step: 8 48 Page 24

How to Approach Modeling? Run independent tests for each business function To see how much resources each function requires Load shouldn't be too light To get steady, not distorted by noise resource utilization Load shouldn't be too heavy To avoid non-linear effects 49 Agile Performance Testing Get involved early if possible Have a plan, but it needs to be very adaptable Expect iterative process involving tuning and troubleshooting Each test provides a lot of information If you find a bottleneck, you need to fix it before running further tests 50 Page 25

Agile Performance Testing As soon as you get a working script Run it for one, a few, and many users Sort out errors Note resource utilization (build a "model") Even with a single script you can find many problems and, at least partially, tune the system 51 Agile Performance Testing Make sure that every script works before running a real-life life mixed scenario Verify that the system behaves as expected Pay attention to every issue / deviation Work in close cooperation with developers, administrators, and other experts 52 Page 26

Summary Agile Projects If agile implemented properly, it is much easier and less risky to do performance testing System to test at the end of each iteration Automation and making performance everyone s job to handle work increase Probably would require more resources Payoff is in decreasing risks and finding problems early 53 Summary Agile Testing Small extra efforts, making the process more agile, increase efficiency significantly and usually pay off multi-fold Get involved early Be paranoid about workload generation / system setup Expect multiple tuning and troubleshooting iterations Build a "model" 54 Page 27

References Scott Barber. An Explanation of Performance Testing on an Agile Team. Lisa Crispin, Janet Gregory. Agile Testing: A Practical Guide for Testers and Agile Teams. Pearson Education, 2009. Jamie Dobson. Agile Performance Testing. http://jamiedobson.co.uk/blog/agile-performance performance-testing Chapter 6 of Performance Testing Guidance for Web Applications. Managing an Agile Performance Test Cycle. http://perftestingguide.codeplex.com/wiki/view.aspx?title=chapter%206%20%u2013%20managing %20an%20Agile%20Performance%20Test%20Cycle Alexander Podelko. Agile Performance Testing. http://www.alexanderpodelko.com/docs/agile_performance_testing_cmg08.pdf 55 References Agile Performance Testing process. AgileLoad whitepaper. http://www.agileload.com/agileload//blog/2012/10/22/agile-performance performance-testing-process--- whitepaper Scott Barber. Performance Testing in the Agile Enterprise. http://www.slideshare.net/rsbarber/agile-enterprise enterprise Jason Buksh. Performance By Design an Agile Approach. http://www.perftesting.co.uk/performance-by by-design-an-agile-approach/2011/11/18/ Vikas Hazrati. Nailing Down Non-Functional Requirements. http://www.infoq.com/news/2011/06/nailing-quality quality-requirements Patrick Kua. Top Ten Secret Weapons For Agile Performance Testing http://www.logigear.com/newsletter-2007/320 2007/320-an-explanation-of-performance-testing testing-on-an-agile- team-part-1-of-2.html http://www.logigear.com/newsletter-2007/321 2007/321-an-explanation-of-performance-testing testing-on-an-agile- team-part-2-of-2.html http://www.slideshare.net/melnykenator/top-ten ten-secret-weapons-for-agile-performance- testing 56 Page 28

Questions? Alexander Podelko alex.podelko@oracle.com @apodelko Additional links and references may be found at www.alexanderpodelko.com 57 Page 29