Choose Wisely. Scott Barber



Similar documents
A Heuristic Approach. Scott Barber

Performance Testing Challenges

Performance Testing: Scott Barber

Performance Testing Guidance for Web Applications

Gen-iTest Services. Realize The Full Power Of The Cloud For Performance Testing. Ian Mortimer and Gareth Shackel

Exploratory Testing Dynamics

Test Automation for Embedded Devices

Scaling out a SharePoint Farm and Configuring Network Load Balancing on the Web Servers. Steve Smith Combined Knowledge MVP SharePoint Server

SOA Performance Testing Challenges

How Fast Does a Website Need To Be?

SSM6437 DESIGNING A WINDOWS SERVER 2008 APPLICATIONS INFRASTRUCTURE

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

Front-End Performance Testing and Optimization

Web Performance Testing: Methodologies, Tools and Challenges

Exploratory Testing Dynamics

Cisco Application Networking for IBM WebSphere

Designing a Windows Server 2008 Applications Infrastructure

SiteCelerate white paper

Web Application s Performance Testing

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Charu Babbar 1, Neha Bajpai 2 and Dipti Kapoor Sarmah 3

Performance Testing Percy Pari Salas

How To Test On The Dsms Application

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

How To Test For Elulla

Course 6437A: Designing a Windows Server 2008 Applications Infrastructure

Citrix EdgeSight Administrator s Guide. Citrix EdgeSight for Endpoints 5.3 Citrix EdgeSight for XenApp 5.3

4 Keys to Driving Results from Project Governance

Brocade Virtual Traffic Manager and Microsoft IIS Deployment Guide

Designing a Windows Server 2008 Applications Infrastructure

Designing and Developing Web Applications by using the Microsoft.NET Framework

SharePoint 2010 Performance and Capacity Planning Best Practices

Resonate Central Dispatch

White paper. Keys to SAP application acceleration: advances in delivery systems.

Troubleshooting BlackBerry Enterprise Service 10 version Instructor Manual

Accelerate Testing Cycles With Collaborative Performance Testing

Global Server Load Balancing

Recommendations for Performance Benchmarking

MS-55115: Planning, Deploying and Managing Microsoft Project Server 2013

Configuring and Troubleshooting Internet Information Services in Windows Server 2008

Mobile Performance Testing Approaches and Challenges

Siebel & Portal Performance Testing and Tuning GCP - IT Performance Practice

White paper: Unlocking the potential of load testing to maximise ROI and reduce risk.

Brocade Virtual Traffic Manager and Microsoft SharePoint 2010 Deployment Guide

Database FAQs - SQL Server

W21. Performance Testing: Step On It. Nadine Pelicaen. P r e s e n t a t i o n

Business Application Services Testing

Performance Testing Uncovered

Brocade Virtual Traffic Manager and Oracle EBS 12.1 Deployment Guide

Increasing Your VDI Project s Return on Investment Using Workspace Virtualization

Course 55115: Planning, Deploying and Managing Microsoft Project Server 2013

Website Performance Analysis Based on Component Load Testing: A Review

Planning, Deploying and Managing Microsoft Project Server 2013

Improving Microsoft Exchange Performance Using SanDisk Solid State Drives (SSDs)

Internet Information TE Services 5.0. Training Division, NIC New Delhi

Brocade Virtual Traffic Manager and Magento Deployment Guide

Copyright 1

Oracle WebLogic Server 11g Administration

Training Plan CONTOSO, LTD MICROSOFT DYNAMICS AX SOLUTION

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

Common issues of hosted VOIP service (and how to avoid them!)

White Paper. The Ten Features Your Web Application Monitoring Software Must Have. Executive Summary

Application Performance Testing Basics

Oracle Applications Release 10.7 NCA Network Performance for the Enterprise. An Oracle White Paper January 1998

VI Performance Monitoring

Oracle Database 11g: Performance Tuning DBA Release 2

Running a Successful Proof of Concept

VMware Horizon Mirage Load Balancing

Virtual Server in SP883

Oracle Database 12c: Performance Management and Tuning NEW

Insource or Outsource Testing: Understanding Your Context. Updates

Cisco and Visual Network Systems: Implement an End-to-End Application Performance Management Solution for Managed Services

Testing & Assuring Mobile End User Experience Before Production. Neotys

Using WebLOAD to Monitor Your Production Environment

Virtualized WAN Optimization

Website Performance: Kyle Simpson

WiNG5 CAPTIVE PORTAL DESIGN GUIDE

OpenStack Private Cloud

Smart Network. Smart Business. Application Delivery Solution Brochure

FortiBalancer: Global Server Load Balancing WHITE PAPER

Transcription:

What to Performance Test: Choose Wisely Derived from: Microsoft patterns & practices Performance Testing Guidance for Web Applications By: J.D. Meier, Carlos Farre, Prashant Bansode, Scott Barber, Dennis Rea 2007 Microsoft Corporation. All rights reserved. http://www.codeplex.com/perftestingguide Scott Barber Chief Technologist PerfTestPlus, Inc. Performance Testing Software Systems Page 1

Performance Testing Software Systems Scott Barber, CTO, PerfTestPlus, Inc. sbarber@perftestplus.com www.perftestplus.com Executive Director, Association for Software Testing www.associationforsoftwaretesting.org Co-Founder, Workshop On Performance and Reliability www.performance-workshop.org Beautiful Testing Performance Testing Guidance for Web Applications oreilly.com/catalog/9780596159825 www.codeplex.com/perftestingguide www.amazon.com/gp/product/0735625700 Performance Testing Software Systems Page 2

Primary Goal of this Course To teach you how to think about, organize, and manage performance testing effectively, under time and resource constraints, by wisely choosing which tests to design and execute to based on your project context. Performance Testing Software Systems Page 3

I Assume That You: Test software performance or manage someone(s) who does. Have at least some control over the design of your tests and some time to create new tests. Have at least some influence over your test environment. Are worried that your test process is spending too much time and resources on things that aren t important AND/OR Are worried that your test process doesn t leave enough time and resources to determine what IS important. Believe that good testing requires thinking. Test under uncertainty, resource limitations and time pressure. Have a major goal to find important problems quickly. Want to get very good at testing software performance. Performance Testing Software Systems Page 4

Credits Some of the material in this presentation was inspired by High Performance Web Sites: Essential Knowledge for Front-End Engineers, by Steve Souders, O Reilly, 2007. Some of this material was developed for, or inspired by, Performance Testing Guidance for Web Applications, a Microsoft patterns & practices book by J.D. Meier, Scott Barber, Carlos Farre, Prashant Bansode, and Dennis Rea. Many ideas in this presentation were inspired or enhanced by colleagues including Alberto Savoia, Roland Stens, Richard Leeke, Mike Kelly, Nate White, Rob Sabourin, Chris Loosley, Ross Collard, Jon Bach, James Bach, Jerry Weinberg, Cem Kaner, Dawn Haynes, Karen Johnson, the entire WOPR community, and by students who took previous versions of this course, back to 2001. Most of the concepts in this presentation are derived from publications, presentations, and research written and/or conducted by Scott Barber. This course has been heavily influenced by: Rapid Software Testing (James Bach & Michael Bolton, 1995-2007 Satisfice, Inc.) Just-In-Time Testing (Robert Sabourin, 1998-2007 Amibug, Inc.) Performance Testing Software Systems Page 5

What is Performance Testing (Part 1) Performance Testing: An empirical, technical investigation conducted to provide stakeholders with information about the quality of the product or service under test with regard to speed, scalability and/or stability characteristics. Performance Investigation: A deliberate data-collection and datainterpretation activity typically focused on data related to speed, scalability, and/or stability of the product under test. The collected data are primarily used to assess hypotheses about the root cause of one or more observed performance issues. Performance Validation: A deliberate activity that compares speed, scalability and/or stability characteristics of the product under test to the expectations of representative users of the product. Performance Testing Software Systems Page 6

What is Performance Testing (Part 2) In Other Words: I help and/or teach individuals and organizations to optimize software systems by balancing: Cost Time to market Capacity while remaining focused on the quality of service to system users. Performance Testing Software Systems Page 7

Performance Testing Principles Project context is central to successful performance testing. Business, project, system, & user success criteria. Identify system usage, and key metrics; plan and design tests. Install and prepare environment, tools, & resource monitors. Script the performance tests as designed. Run and monitor tests. Validate tests, test data, and results. Analyze the data individually and as a cross-functional team. Consolidate and share results, customized by audience. "Lather, rinse, repeat" as necessary. Performance Testing Software Systems Page 8

Why Test Performance? To choose tests wisely, we must know what we are testing for. To determine compliance with requirements? To evaluate release readiness? To assess user satisfaction? To assist in performance tuning? To estimate capacity? To validate assumptions? To generate marketing statements? Performance Testing Software Systems Page 9

Just test it Isn t Enough Do you know your performance testing mission? Do you know the Commander s Intent? Can you find out? Example from my days as a U.S. Army LT: Mission: Secure hilltop 42 NLT 0545 tomorrow. Commander s Intent: It is my intent that the supply convoy safely cross the bridge spanning the gorge between hilltop 42 and hilltop 57 between 0553 and 0558 tomorrow. Performance Testing Software Systems Page 10

COPE in PUBS Performance Testing Software Systems Page 11

What Matters Performance Criteria are boundaries dictated or presumed by someone or something that matters. Goals: Soft Boundaries (User Satisfaction) Requirements: Firm Boundaries (Business or Legal) Thresholds: Hard Boundaries (Laws of Physics) Constraints: Arbitrary Boundaries (Budget or Timeline) Performance Testing Software Systems Page 12

ACQUIRE Use your active listening skills Validate and demonstrate interest Probe, educate, and learn Summarize priorities and value statements Repeat with other stakeholders, make comparisons, prototype, quantify, etc. Return with testable, quantified criteria and/or conflicting criteria/priorities Embrace and communicate changing criteria Performance Testing Software Systems Page 13

Performance Testing Objectives What we actually hope to gain by testing performance Are sometimes completely unrelated to stated requirements, goals, thresholds, or constraints Should be the main drivers behind performance test design and planning Usually indicate the performance-related priorities of project stakeholders Will frequently override goals in go-live decisions Now we can design tests to help us achieve our objectives! Performance Testing Software Systems Page 14

IVECTRAS Do I need this test to: or or response and/or utilized under or conditions Performance Testing Software Systems Page 15

Communicating Design Performance Testing Software Systems Page 16

FIBLOTS Common activities (get from logs) e.g. Resource hogs (get from developers/admins) Even if these activities are both rare and not risky SLA s, Contracts and other stuff that will get you sued What the users will see and are mostly likely to complain about. What is likely to earn you bad press New technologies, old technologies, places where it s failed before, previously under-tested areas Don t argue with the boss (too much) Performance Testing Software Systems Page 17

Communicating System Usage Performance Testing Software Systems Page 18

SCORN Media, HTML, styles & scripts compress & minify. The end-user s browser cache can be your best friend, or your worst nightmare, use it wisely. Get the load order of your scripts and styles wrong, and you ll lose your users every time even though response time hasn t changed! 3, 4, & 5xx series response codes on individual objects are bad things. When it comes to performance, less is more (usually). Performance Testing Software Systems Page 19

Performance Test Strategy Intent of Investigation: Prerequisites: Tasks: Tools & Scripts: External Resources Needed: Risks: Data of Special Interest: Areas of Concern: Pass/Fail Criteria: Completion Criteria: Planned Variants: Execution Duration(s): Collect configuration data for tuning. Collect data to assist in validating existing network. Static prototype deployed on future production hardware. Determine network bandwidth, validate firewalls & load balancer, evaluate web server settings. Load generation tool, HTTP scripts to request objects of various sizes from a pool of IP addresses. Firewall, Load Balancer, Network Admins, network monitors, 20 IP addresses for spoofing. Schedule delay, availability of administrators, configuration of load generation tool for IP spoofing, Network bandwidth & latency, load balancer effectiveness, resource consumption, response times. No internal expertise on load balancer configuration. Adequate available bandwidth, architectural assumptions validated. Critical data collected and assumptions validated. 1 to 20 IPs, volume of 1 to 500, size from 1Kb to 1mb, configuration settings. 6 days: 2 days ea. network & bandwidth, firewall and load balancer, web server configuration. Performance Testing Software Systems Page 20

Performance Testing Principles Project context is central to successful performance testing. Business, project, system, & user success criteria. Identify system usage, and key metrics; plan and design tests. Install and prepare environment, tools, & resource monitors. Script the performance tests as designed. Run and monitor tests. Validate tests, test data, and results. Analyze the data individually and as a cross-functional team. Consolidate and share results, customized by audience. "Lather, rinse, repeat" as necessary. Performance Testing Software Systems Page 21

Questions Performance Testing Software Systems Page 22

Contact Info Scott Barber Chief Technologist PerfTestPlus, Inc E-mail: sbarber@perftestplus.com Web Site: Performance Testing Software Systems Page 23