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



Similar documents
Guideline for stresstest Page 1 of 6. Stress test

Bringing Value to the Organization with Performance Testing

Application Performance Testing Basics

Performance And Scalability In Oracle9i And SQL Server 2000

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

How To Test For Performance

Best Practices for Web Application Load Testing

Business Application Services Testing

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Cisco Application Networking for IBM WebSphere

Basic Unix/Linux 1. Software Testing Interview Prep

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

27 th March 2015 Istanbul, Turkey. Performance Testing Best Practice

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

IBM Rational Asset Manager

Managing your Red Hat Enterprise Linux guests with RHN Satellite

Introduction to Automated Testing

Informatica Data Director Performance

Application. Performance Testing

Liferay Portal Performance. Benchmark Study of Liferay Portal Enterprise Edition

A Guide to Getting Started with Successful Load Testing

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

Copyright 1

Performance Testing Uncovered

Oracle Collaboration Suite

Toad for Oracle 8.6 SQL Tuning

Chapter 1 - Web Server Management and Cluster Topology

Recommendations for Performance Benchmarking

White Paper. Java versus Ruby Frameworks in Practice STATE OF THE ART SOFTWARE DEVELOPMENT 1

An Oracle White Paper July Oracle Primavera Contract Management, Business Intelligence Publisher Edition-Sizing Guide

SolovatSoft. Load and Performance Test Plan Sample. Title: [include project s release name] Version: Date: SolovatSoft Page 1 of 13

Performance Analysis of Web based Applications on Single and Multi Core Servers

Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.

Performance Testing of Java Enterprise Systems

Delivering Quality in Software Performance and Scalability Testing

Levels of Software Testing. Functional Testing

Cisco Application Networking for BEA WebLogic

PassGuide.C Questions

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

The Importance of Software License Server Monitoring White Paper

Optimization of Cluster Web Server Scheduling from Site Access Statistics


Legal Notices Introduction... 3

Contents Introduction... 5 Deployment Considerations... 9 Deployment Architectures... 11

Case Study: Load Testing and Tuning to Improve SharePoint Website Performance

Performance Test Process

Performance Testing. Why is important? An introduction. Why is important? Delivering Excellence in Software Engineering

SysAidTM Product Description

Performance Testing Process

Geospatial Server Performance Colin Bertram UK User Group Meeting 23-Sep-2014

What Is Specific in Load Testing?

Basic Testing Concepts and Terminology

Lesson 7 - Website Administration

PERFORMANCE TESTING. New Batches Info. We are ready to serve Latest Testing Trends, Are you ready to learn.?? START DATE : TIMINGS : DURATION :

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

AUTOMATED TESTING and SPI. Brian Lynch

Six Common Factors to Consider When selecting a CMS

Development Methodologies

How To Test On The Dsms Application

Performance Testing Percy Pari Salas

Whitepaper Performance Testing and Monitoring of Mobile Applications

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Best Practices for Deploying and Managing Linux with Red Hat Network

Virtuoso and Database Scalability

Streamlining Patch Testing and Deployment

Scalability and BMC Remedy Action Request System TECHNICAL WHITE PAPER

Cloud Based Application Architectures using Smart Computing

OpenLoad - Rapid Performance Optimization Tools & Techniques for CF Developers

Agility Database Scalability Testing

Enterprise Service Bus

MEGA Web Application Architecture Overview MEGA 2009 SP4

Basic Unified Process: A Process for Small and Agile Projects

Asta Powerproject Enterprise

Basic TCP/IP networking knowledge of client/server concepts Basic Linux commands and desktop navigation (if don't know we will cover it )

Oracle Enterprise Manager. 1 Introduction to SAP Monitoring with Oracle Enterprise Manager Grid Control. 1.1 Overview

SCALABILITY AND AVAILABILITY

Module 12: Microsoft Windows 2000 Clustering. Contents Overview 1 Clustering Business Scenarios 2 Testing Tools 4 Lab Scenario 6 Review 8

TEST AUTOMATION FRAMEWORK

QUALITYMATE FOR LOAD TESTING

An Introduction to HIPPO V4 - the Operational Monitoring and Profiling Solution for the Informatica PowerCenter platform.

WebArrow: System Overview and Architecture Namzak Labs White Paper,

CribMaster Database and Client Requirements

Distribution One Server Requirements

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001

1.1 SERVICE DESCRIPTION

Best Practices for Managing Virtualized Environments

CHAPTER 4 PERFORMANCE ANALYSIS OF CDN IN ACADEMICS

Achieving Nanosecond Latency Between Applications with IPC Shared Memory Messaging

Cloud Storage. Parallels. Performance Benchmark Results. White Paper.

Load Testing and Monitoring Web Applications in a Windows Environment

Performance Tuning Guide for ECM 2.0

Cost effective methods of test environment management. Prabhu Meruga Director - Solution Engineering 16 th July SCQAA Irvine, CA

Resource Utilization of Middleware Components in Embedded Systems

How To Test A Web Server

Advanced Web Application Development using Microsoft ASP.NET

Modeling Web Applications Using Java And XML Related Technologies

Web Analytics Understand your web visitors without web logs or page tags and keep all your data inside your firewall.

Transcription:

Getting Things Done: Practical Web/e-Commerce Application Stress Testing Robert Sabourin President Montreal, Canada rsabourin@amibug.com Slide 1

Practical Web/e-Commerce Application Stress Testing Overview: Definitions Stress Testing & Development Process Stress Testing & Requirements Stress Testing & Analysis - Design Stress Testing & Development Stress Testing & Testing Process Stress Testing Tools & Services Slide 2

Practical Web/e- Commerce Application Stress Testing Robert Sabourin, Software Evangelist President AmiBug.Com Inc. Montreal, Quebec, Canada rsabourin@amibug.com Slide 3

What is Stress Testing? Testing operational characteristics of an application within a harshly constrained environment Limit processor speed Low memory, disk space Diminished access to shared resources Physical Environment, Static, Temperature, Humidity Slide 4

Stress Testing Embedded Software Slide 5

Phase Rational Unified Process (RUP) Inception Elaboration Construction Transition Requirements Analysis Stress Testing can take place as part of each phase of development. Core Workflow Design Development Testing Maintenance Slide 6

Requirements Analysis Design Development Testing Maintenance Transition Core Workflow Rational Unified Process (RUP) Inception Elaboration Phase Construction Slide 7 Stress Testing can take place as part of each core workflow involved in development organization.

Rational Unified Process (RUP) Inception Elaboration Phase Construction Transition Core Workflow Requirements Analysis Design Development Requirements: Performance Load Scalability Cost, System Constraints Formal inspections Architecture: Computer Simulation Prototyping Design alternatives Fall backs Design: Reliability Weakest link Testability hooks Robust middleware Cost tradeoffs Development: Develop unit test harness Develop test case repository Determine physical components to stress and define strategy Test Team: Work with development to develop test case repository Testing Support developing test harness Set up test lab and build strategy Plan for all measuring methods Preparing: Plan upgrade strategy Study usage patterns Maintenance Security breaches May 25, 2003 Customer Robert service Sabourin, 2001 Identify site monitor partners Requirements: Adapt as required New technologies New business needs New budget Changing System Constraints Architecture: Root cause failure analysis Re-factor architecture Adapt to new technologies Reconcile simulation vs.. actual Design: Live: Monitoring: Identify weakest link Complexity Reassess reliable new technology Adapt to changes Hooks to facilitate stress testing Development: Use test harness to perform stress testing on developed code on a task assignment basis As required fix bugs found in test Integration: System: Stress test as new modules come on line Stress test early in lab environment Work with site monitoring team Site performance under load Server memory usage Server processor usage Database usage Slide 8 System resources

Requirements Response time, end user experience Slow vs High Speed connections Number of concurrent users Normal vs. Peak Doing what? Performance Degradation Reliability MTTR, MTTF Slide 9

Attributes Usability Scalability Serviceability Reliability Maintainability Testability Adaptability Expandability Re-usability Portability Stress Impact Performance degradation Ensure delays never exceed about 8-10 seconds independent of load Additional resources should increase capacity Vertical or horizontal scaling. Bandwidth, Memory, Processing Power, CPUs, Servers Success will lead to increased load needing upgrades If underlying components are upgraded does the system still have the same reliability? What is the time to failure, can we predict it? MTTF How does the system act when a process or thread fails? Do we recover? Patches, New releases, MTTR Database schemas updates Support stress tests! Do any special test hooks (pages or APIs) work under stress? New technology - does weakest point change? Does addition of new services impact capacity? Re-using stress test? Is reused component weakest link? Moving to different servers, services Weakness of independent servers interoperating! Interoperability Slide 10

Measurements Response time Minimum Maximum Average CPU Usage Memory available page faults/second Disk % Disk Full Slide 11

Measurements Network Bandwidth Web Servers Files/Sec Bytes/Sec Maximum Connections Errors Slide 12

Measurements Database Servers Transactions/Second Cache hit ratios Functionality Pass? Fail? Relation to load Slide 13

Analysis & Design Quebec City Bridge, 1916 Construction collapse Stress due to scale Tacoma Narrows, 1940 Collapse during normal operation Stress due to instability Wind was only 42 mph Slide 14

Computer Simulation Computer simulation is used to study how a design, or architecture, will react to stress! Model typical transactions Model atypical transactions Model harsh transactions What if analysis! Slide 15

Network Simulators Many products on the market Used by System architects Software designers Network designers Test early Before code is written Slide 16

www.nwc.com Slide 17

Performance Model SPE-ED Software Performance Engineering Performance Modeling Tool tool that produces performance data on development alternatives without requiring extensive knowledge of modeling theory www.perfeng.com Slide 18

Development Include stress testing during unit testing! Before and after task assignment Develop test cases as part of task XP ish is good Does system behave the same? Differences as expected? Fewer surprises later in cycle. Work with testing team to build harness Slide 19

Unit Test Harness Module C - Under Unit Testing Test Harness Transaction Generated from Test Data Simulated Transaction Module A Module B Module C Module D Module E Module F Completed Unit Stub Unit Being Developed Completed Unit Completed Unit Stub Test outcome Capture and process test results Test Harness Test Cases Test Results Elapsed Time Slide 20

Testability Hooks It is wise to ensure that testability is considered in all code developed! Simple static page to access each business logic function independent of GUI. Runtime enable and disable of logging features. (web, business logic, data tier) Access to key objects. Hooks to facilitate measures! Slide 21

Approaches Peer review on check-in Formal inspections especially focused on identifying weak links in design or any problems with architecture or requirements Unit testing to include Stress over and above Functional testing Slide 22

Issues Watch out for Moving instabilities Changes to database schemas for new features Developers unfamiliar with code base Reusing code blindly to save time Increasing complexity of code Differences between target and developer Runtime environments Slide 23

Who? Where? Tools & Techniques Unit Developers Developers test server Development office HTTP Event generator Home made tools Client side test tools Server based load Integration Developers Independent testers Test Lab Development configuration Test automation web Client side load testing Server monitoring Testing Phase System Acceptance Independent testers Client testing testing team Test Lab Staging site matching target site (smaller but similar) Staging area on Live site Test automation web Client side load Server monitoring Load testing tools Test automation web Client side load testing Server monitoring Load testing tools Live Independent test monitor Live site Load testing services Site monitoring services Internal monitoring and periodic testing Slide 24

Stress Testing Environment N-tier setup Generally Client Application Data Slide 25

Load Test Configuration Generator Data Server Business Logic Web Generator Generator Console Generator Slide 26

Load Testing Load generator Keep the system busy! Simulate of user experiences Several concurrent Virtual users Generally you should model most common type of user experiences Experiences can be: TYPICAL HARSH Slide 27

Instrumented Load Test Configuration Transaction Simulator Transaction Simulator Transaction Simulator Generator Event Log Data Server Event Log Event Log Business Logic Web Generator Generator May 25, 2003 Console Robert Sabourin, 2001 Slide 28 Generator

Transaction Simulator Typical user transactions Measure how well the system performs these transactions as we vary the load Correct? Time? Slide 29

Transaction Simulator For example: Purchase scenario is run on the transaction simulator We generate a load on the system with the load generators and study how this impacts the typical transactions Load generator is focused on keeping the system busy! Slide 30

Performance Measures User perspective Time to complete a transaction from the user perspective Time to get a responses to an input event Should be maximum 8-10 seconds Page load time to last byte Response time of the system time from a mouse click until the next page is finished loading Slide 31

Performance Measures Components of Response time Request Submission Data to server Processing Time Time spent working on user request Response Receipt Time to send result back to user Slide 32

Stressing the Load Data Test Servers. Configuration - Force intermittent failures - In session disconnect Generator Data Server - Fill database - Just below capacity - Just above capacity - Ramp up size Business Logic Web Generator - Resource hogs - Processor - Memory - Disk - Network bandwidth Generator - Battery/Blitz of operations - Insert - Delete - Search & Sort Console Generator Slide 33

Stressing the Business Load Test Logic Configuration Servers. Data Server - Load generation - multiple sessions - multiple users - harsh operations - typical operations - Continuous busy operation Generator Business Logic - Force intermittent failures Web - In session disconnect - Third party component failures Generator - Resource hogs - Processor - Memory - Disk - Network bandwidth Generator Console Generator Slide 34

Stressing the Load Web Test Servers. Configuration - Lot s of HTTP requests Data Server Business Logic Web Generator - Attacks from hackers - Denial of service - Break in - Forced error handling - Invalid Generator operations - Generate error conditions - Force intermittent failures - In session disconnect - External Process - SSL - Firewall - External web resource unavailable Generator - Resource hogs - Processor - Memory - Disk - Network bandwidth Console Generator Slide 35

Scalability Vertical Replace servers with more powerful systems Add resources to existing servers Horizontal Add more servers to the site Needs load balancing technology Increases availability of site Functional Separate application functions onto different servers and scale them independently Slide 36

Response Time (Seconds) 45 40 35 30 25 20 15 10 5 0 0 100 200 300 400 500 600 Users Response Double Slide 37

Stress Test Planning Time Risk Generally there is not enough time to do exhaustive stress testing of all components of the system Spreading resources across different stress testing activities must be done carefully based on the technical risk and potential business impact of failures Slide 38

Stress Test Planning Technical risk New code Old code used in a new way New developer New hardware New third party stuff High risk Complexity Slide 39

Stress Test Planning Business Impact Impact of performance degradation? Impact of missing functionality? Load balancing? What about diverting CPU power to more popular functions and disabling less popular operations? Slide 40

Stress Test Planning Pattern Evolution: List relevant stress tests Guestimate risks working with peers in product management, development and other stakeholders Spread testing across builds relative to risk from highest to lowest Try to implement at least one Stress Test experiment per build. Slide 41

Stress Test Experiments Example Stress Experiment Concurrent Load Database Technical Business Exposure Rank Build Build Build Build Build Build Users Generated State Risk Importance A B C D E F 1 to 10 1 to 10 1-1000 Normal Low 3 10 30 3 1-1000 Harsh Low 5 5 25 5 1-1000 Normal Medium 3 10 30 4 1-1000 Harsh Medium 5 5 25 6 1-1000 Normal High 8 8 64 1 1-1000 Harsh High 10 5 50 2 Critical Exposure > 50 Serious Exposure between 26 and 50 Important Exposure between 15 and 25 Nominal Exposure less than 15 Slide 42

Stress Test Preparation Warm up, caches and buffers to steady state System to desired starting state Ensure no one else is accessing system under test Ensure databases and system resources are in the correct initial state to start testing Slide 43

Test Tool Evaluation Tools to help you perform stress testing What to buy? When to buy? What to contract out? What to do yourself? Slide 44

Test Tool Evaluation Tools to help you perform stress testing Event Simulation Load Generation Site Monitoring Test Harnesses Environment Monitor Fault injection Slide 45

Test Tool Evaluation What to buy? Things you will reuse on many projects. Things which save you time Things which will save you money. Itemize your specific requirements. Can you buy part of the solution now and part later to spread the cost? Can you leverage internal expertise? Will significant training be required? Slide 46

Test Tool Evaluation What to buy? Be careful about maintenance, especially for open source or otherwise free tools! Technologies change fast in www Support for third party gizmos and widgets is important. How quickly does your supplier adapt to new technologies? Will you be able to keep your own, in-house, tools up to date? Slide 47

Test Tool Evaluation What to buy? What if your requirements change! If you swap between Linux, NT, Solaris will the tools still work? If you move between SQL Server, Oracle, Interbase will monitors still work? If you change http servers from Apache to IIS will tools still work? Slide 48

Test Tool Evaluation When to buy? Company issues If your company is going to develop several projects using the same or tightly related technologies then it is wise to tool a test lab independent of a specific project schedule Slide 49

Test Tool Evaluation When to buy? Project issues Identify vendors during early phases Use first iterations to evaluate tools Buy tools before full system testing You should have some sort of load generator during Unit, Integration and System Testing Phases Slide 50

Test Tool Evaluation When to buy? After evaluation. TRY BEFORE YOU BUY. Be honest with vendors and tell them what type of evaluation process you have decided to use. Let them know that other suppliers are also being considered. Ensure they help you get stuff - really - working Slide 51

Test Tool Evaluation What to contract out? Things you are only doing once! Things that you do not have the expertise for in-house! (first time load scripts) Things that require investments you are not ready to take yet. Things that will save you time. Things that allow more parallelism in development. Slide 52

Test Tool Evaluation Consultants? Mapping out an effective strategy to achieve your business goals. Offer guidance, coaching, mentoring and management consulting from someone who as been through the experience before. Each case is different! Slide 53

Test Tool Evaluation What to do yourself? Unit Test Harnesses Your test and development team know your application and development environment best These tools must change as the project is developed Test Hooks Put in special test access points Simple HTML forms instead of animation Slide 54

Test Tool Evaluation What to do yourself? Monitors Snap shots of system status View system parameters of special interest Special log file analyzers What are you expert in? If you have some expertise available then use it! Just make sure that you don t just hack a tool together and forget about maintaining and evolving it as your needs change down stream! Slide 55

Home Brew Monitors from Perl/Shell Scripts on Unix Box CPU status Virtual Memory Status Available Disk Space Available DBMS Space Disk Usage DBMS Usage Number of concurrent users Process status Log file analysis Spreadsheets and Excel Macros! Database for tracking stress testing experiments Slide 56

Testing Services Load testing Perform load testing Price generally related to volume Site monitoring Remote monitoring and measurement of site performance Contract testing Outsource testing to experts Slide 57

Real World Frustration Often, during stress testing, applications fail while you are trying to develop test scripts, procedures or trying to debug old scripts on new builds. Slide 58

Real World Frustration Bugs got you down! Be patient! Focus on stressing application not the testing team! You will find bugs with stress testing because you are stress testing! Sometimes the bug is in the test and sometimes the bug is in the program being test. Slide 59

Real World Frustration Be organized! When you are well organized there will be value in all bugs! Rigor in the build process is the key! Build progressively improve with every build Prioritize and investigate all bugs found! Slide 60

Thank You Questions? Slide 61