Load Testing Strategy Review When Transitioning to Cloud



Similar documents
WELCOME TO CITUS CLOUD LOAD TEST

Web Load Stress Testing

Test Run Analysis Interpretation (AI) Made Easy with OpenLoad

Testing Cloud Application System Resiliency by Wrecking the System

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

Sonata s Product Quality Assurance Services

How To Test On The Dsms Application

Mobile Performance Testing Approaches and Challenges

Guideline for stresstest Page 1 of 6. Stress test

Case Study - I. Industry: Social Networking Website Technology : J2EE AJAX, Spring, MySQL, Weblogic, Windows Server 2008.

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

WEBAPP PATTERN FOR APACHE TOMCAT - USER GUIDE

How AWS Pricing Works

How To Test A Web Application For Campaign Management On A Web Browser On A Server Farm (Netherlands) On A Large Computer (Nostradio) On An Offline (Nestor) On The Web (Norton

How AWS Pricing Works May 2015

NETWORK AND SERVER MANAGEMENT

Performance Testing of a Large Wealth Management Product

SAGE 500 PRODUCT ROADMAP

How To Set Up Wiremock In Anhtml.Com On A Testnet On A Linux Server On A Microsoft Powerbook 2.5 (Powerbook) On A Powerbook 1.5 On A Macbook 2 (Powerbooks)

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

MEASURING WORKLOAD PERFORMANCE IS THE INFRASTRUCTURE A PROBLEM?

Analyzing IBM i Performance Metrics

Application and Web Load Testing. Datasheet. Plan Create Load Analyse Respond

Performance Testing Process A Whitepaper

TRACE PERFORMANCE TESTING APPROACH. Overview. Approach. Flow. Attributes

Testing Big data is one of the biggest

Proactive and Reactive Monitoring

Performance Testing Percy Pari Salas

Tableau Server Scalability Explained

How To Test For Performance And Scalability On A Server With A Multi-Core Computer (For A Large Server)

Application Performance Testing Basics

Bringing Value to the Organization with Performance Testing

Preparing Your IT for the Holidays. A quick start guide to take your e-commerce to the Cloud

Load and Performance Load Testing. RadView Software October

Smarter Balanced Assessment Consortium. Recommendation

SAP HANA Cloud Applications Partner Program Certification

BIG DATA: BIG CHALLENGE FOR SOFTWARE TESTERS

IBM RATIONAL PERFORMANCE TESTER

A Comparison of Oracle Performance on Physical and VMware Servers

Distributed Agile Development in the Cloud

Table of Contents. 1. Product Overview Proposed Solution System Architecture Key Modules & Features...

Taking the First Steps in. Web Load Testing. Telerik

CHAPTER 3 PROBLEM STATEMENT AND RESEARCH METHODOLOGY

pc resource monitoring and performance advisor

Levels of Software Testing. Functional Testing

Testing Intelligent Device Communications in a Distributed System

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

A Comparison of Oracle Performance on Physical and VMware Servers

Assignment One. ITN534 Network Management. Title: Report on an Integrated Network Management Product (Solar winds 2001 Engineer s Edition)

Performance Test Process

Red Hat Network: Monitoring Module Overview

MONITORING PERFORMANCE IN WINDOWS 7

CLOUD PERFORMANCE TESTING - KEY CONSIDERATIONS (COMPLETE ANALYSIS USING RETAIL APPLICATION TEST DATA)

ArcGIS Server Performance and Scalability Testing Methodologies. Andrew Sakowicz, Frank Pizzi

How To Install An Aneka Cloud On A Windows 7 Computer (For Free)

Load Manager Administrator s Guide For other guides in this document set, go to the Document Center

Delivering Quality in Software Performance and Scalability Testing

Performance Testing and Improvement in Agile

Web Application Deployment in the Cloud Using Amazon Web Services From Infancy to Maturity

Comparison Paper Argent vs. Nimsoft

OpenLoad - Rapid Performance Optimization Tools & Techniques for CF Developers

Image Area. White Paper. Best Practices in Mobile Application Testing. - Mohan Kumar, Manish Chauhan.

Testadon Certification

Cloud Testing: A Review Article

EXECUTIVE SUMMARY CONTENTS. 1. Summary 2. Objectives 3. Methodology and Approach 4. Results 5. Next Steps 6. Glossary 7. Appendix. 1.

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

Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

The day-to-day of the IT department. What is Panda Cloud Systems Management? Benefits of Panda Cloud Systems Management

PROJECT MANAGEMENT SYSTEM

GeoCloud Project Report USGS/EROS Spatial Data Warehouse Project

LOAD BALANCING OF USER PROCESSES AMONG VIRTUAL MACHINES IN CLOUD COMPUTING ENVIRONMENT

Using WebLOAD to Monitor Your Production Environment

XpoLog Center Suite Log Management & Analysis platform

Relay2 Enterprise Cloud Controller Datasheet

Security Testing & Load Testing for Online Document Management system

Recommendations for Performance Benchmarking

Alice. Software as a Service(SaaS) Delivery Platform. innovation is simplicity

Scalability Factors of JMeter In Performance Testing Projects

CASE STUDY: Client: Problem Statement: Challenge: Solution: Transition from Load Runner to JMeter: Cost Benefit without Feature Compromise

Quick Start Guide.

Why Nagios and Server Monitoring Are Failing Modern Apps

Greenplum Database (software-only environments): Greenplum Database (4.0 and higher supported, or higher recommended)

Mobile Automation: Best Practices

High Availability Design Patterns

How To Test For Performance

Usage of OPNET IT tool to Simulate and Test the Security of Cloud under varying Firewall conditions

Service Exchange Network

Copyright 1

Beginning SQL Server Administration. Apress. Rob Walters Grant Fritchey

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

Oximeter Data Management Software. User Manual

Enterprise Solution for Remote Desktop Services System Administration Server Management Server Management (Continued)...

CA Cloud Overview Benefits of the Hyper-V Cloud

Transcription:

International Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-3075, Volume-3, Issue-9, February 2014 Load Testing Strategy Review When Transitioning to Cloud Tanvi Dharmarha, Ajay Jain Abstract - The core objective of testing is to certify the product to a quality level at which the application is ready for releasing to the end customers. Apart from functional parameters, there are many other key parameters, especially operational parameters, which play a major role in deciding how the testing is performed. This paper focusses on reviewing the strategy for load testing and changes that a testing team undergoes when transitioning their in-house infrastructure to the cloud. Further to this, the paper also talks about the advantages and efficiencies for the testing team, when shifting to cloud. II. EFFICIENCY IMPROVEMENT IN A TEST SETUP It is important for the testing team to explore and identify strategies and options to improve the system s efficiency. Index Terms: Cloud Testing, Infrastructure, Load Testing, Testing Efficiency, I. INTRODUCTION A key customer-centric goal of a testing team is, to take the product quality to a level where there are minimum possible bugs in the product. While this goal is very important to enhance user experience and bring in more goodwill and revenue to the company, another goal for testing teams is to optimize the testing cost and increase the efficiency of the overall system. A major investment goes into setting up the test infrastructure and every step in the setup has an associated time and financial cost. It is important for a testing team to evaluate the best and the most efficient testing infrastructure. Of all the types of and variances in testing, Load testing specifically requires a robust and cost-effective solution and infrastructure to support testing. Traditionally, software vendors were setting up satisfactory in-house infrastructure for load testing. This requires the following investments: Cost: Infrastructure like virtual machines, servers, and test machines. If there are multiple geographies involved, test machines in different regions to simulate real time load. Time: Dedicated team and experienced people to set up the infrastructure. There is also an uncertainty of infrastructure lying unused for lack of future similar Load testing projects. Figure 2: Efficiency Generation Cycle The following are the key phases of an efficiency improvement plan: Setting up test efficiency goals. Measuring multiple relevant parameters on the identified goals. Reporting relevant metrics in a timely manner. Analyzing the metrics in an unbiased and ethical way. Concluding the metrics results with learnings from previous release or cycle and adjusting the goals to further improve and optimize. Figure 1: State of testing setup infrastructure Manuscript received February, 2014. Tanvi Dharmarha, Lead Software Engineer, Adobe Systems, Noida, India. Ajay Jain, Quality Engineering Manager, Adobe Systems, Noida, India. 77 Published By:

78 Published By: & Sciences Publication Pvt. Ltd. Load Testing Strategy Review When Transitioning to Cloud III. IN-HOUSE LOAD TESTIING INFRA STRUCTURE ARCHITECTURE Figure 3: In-house load testing infrastructure architecture Load Simulator Server in different Geographies: Installed and setup server in different locations like US West, US East, Europe and Asia to trigger requests to the Application. DB: Installed and setup DB server to persist server requests and responses in order to generate reports. Monitoring servers: Installed and configured performance monitoring servers to monitor network traffic, responsiveness of services, CPU utilization, disk space, and other network hardware. Monitor Clients: Installed and configured on all Application servers to pass the performance monitoring information to monitor server. When transitioning the Load testing setup to the Cloud, the detailed architecture is as shown next. IV. CLOUD LOAD TESTING INFRASTRUCTURE ARCHITECTURE Load Simulator Server: Setup and managed by cloud. Tester can initiate load from multiple geographies at the click of a button. Post use, simulator servers can be terminated easily Figure 4: Cloud Based Load Testing Infrastructure DB: Installed, Configured and Managed by the cloud provider and database connection is opaque to tester. Testers can simply draw reports without having the need to connect to the database.

Monitoring servers: Managed by the cloud provider. Also monitoring clients are preinstalled in application by the Cloud provider. V. COST BENEFIT ANALYSIS The average cost of a server is around $1000, so the total cost of servers is 1000 *6 (4 Load simulator servers, 1 DB or result server, 1 Monitor server) which amounts to $6000. About 15 days goes into planning, designing and setting up the load test infrastructure, so cost of IT person is roughly half month salary which approximates to $4000. For cloud, the pricing depends on the type of instance and usage rates. For large instances, with usage rate of 0.25 $/hour and usage duration of 2 hours/day, the average monthly cost amounts to 0.25*2*22 i.e. $11. For 6 servers in use for 6 months, the total usage cost is 6*6*11=$398. Cost In-house Cloud International Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-3075, Volume-3, Issue-9, February 2014 which is now working on R2 phase of the project. This loop back from the field helps testing team improve their load testing data set, by matching it to the real-world load. This process is then adopted for next prerelease, that is, R3 version of the product. VI. 80-20 RULE This rule is very effective in prioritizing when a lot of data is to be evaluated. 50 40 30 20 10 0 Load distribution based on Geography Setup: No setup costs %Load Cost of Servers Cost of IT person setting up 6000 4000 Usage: Not much 398 Total 10000 398 Table 1: Cost comparison between in-house setup and Cloud setup It is clear from above that architecting the load in cloud hugely saves on cost as well as time. To optimize Load testing, one must understand the correct load distribution. This involves monitoring: Load generated through real time system usage from the field, that is, from the end-users and the customers. Load simulated through dummy data during a test simulation. Figure 5: Loopback real time field data to test setup In the figure above R1, R2, and R3 are the three prerelease phases of a single project cycle. R1 is released to the field for prerelease and real time load data originating from the field is monitored. The data is fed back to the testing team, Figure 6: Real time load data spread based on Geography A charting of real-world load, originating from different geographies, is evaluated and is charted to identify the geographical spread of the load. The graph above indicates that 20% of the regions are generating 80% of the load. In order to load test the application, we generate load on these regions to pinpoint performance bottlenecks. On the remaining 20%, we run one round of sanity tests to increase functional coverage. Load is injected in the application similar to the actual website traffic. If there is higher traffic from one geographical region, we inject higher load from that region to approximate real-time scenario, as much as possible. VII. CONTROL CHARTS Manipulating load across geographies through manual intervention is not an effective technique. An automated method is required, which can toggle load values between geographies. Control chart helps in constantly and continuously monitoring the variance between the realworld load originating from the field and the load simulated in the test setup. A suggested statistical approach is to use automation to control and monitor the variance limits by using control charts. Control charts are effective in tracking and monitoring the stability of the data. The following are the three key parameters of Control charts: Mean: Statistical value defining the average of all data points. In this case, as the goal is to spread multiple load values for a specific geography, we keep 100% of the real-time field load as the mean value. In the following graph, the green line denotes mean. Upper Control Limit (UCL): Statistical value defining the maximum value (or limit) that a tester wants to specify of the variation. In the following graph, this value represented by red line at 106. It means the tester takes an action when the simulated load is 106% of the field load. Lower Control Limit (LCL): Statistical value defining the minimum value (or limit) that a tester wants to specify the variation between real-time load from the 79 Published By:

80 Published By: & Sciences Publication Pvt. Ltd. Load Testing Strategy Review When Transitioning to Cloud field versus the simulated load. In the following graph, it is represented by red line at 96. A comparative data always helps in planning out the test strategy, data set for the upcoming release (or prerelease) version of the product/application. Another key area that helps in adding efficiency in testing cycle is the turnaround time in debugging and isolating the bug. Lesser the turnaround time, faster will be the bug fixes. Figure 7: Control Chart Keeping the data checks between these three statistical values helps load tester in continuously receiving the information if the simulated load in the test setup is lower than, higher than, or at par with the load in the field. This maintains the load testing within the best data set specifications. Being in the cloud, this really helps in leveraging the cloud capabilities and dynamic manipulation of the load test data set. Also, since Control charts are automated, a tester can reset the threshold values for the three key parameters depending on the real-time testing need. For example, in order to simulate peak load scenarios, the tester can setup UCL value relatively higher or equivalent to the real time load (also, we expect real time load value itself to go up during peak load sessions). Similarly, the tester can setup lower LCL values for simulating very less load taking care of dry scenarios. System can also be configured to generate specific alarms in case any of the UCL/LCL limits are crossed. These on the spot and dynamic data driven alarms will help tester take corrective action to bring back the system to desired state. Study Parameters R1 R2 R3 How many Users logging to the system How many New Users? How many on new feature-set that is pre-released? Which Geography is running with Max users? Differentials with respect to previous data in said geography? 123m 98m 108m 45m 50m 63m 42m 48m 59m US West US West US West -3m +4m +8m Table 2: Control Chart Data comparison VIII. REAL TIME ERROR ANALYSIS Load Test tool/environment should be such that it provides real time load and error analysis. Any communication failure, request rejection or validation error should be available in real time so as to easy the process of bug isolation and eliminate performance bottlenecks. Application and infrastructure logs are authored in order to capture all relevant information of each entry point and exit point and all relevant test data used in the application testing. System monitoring tools are also recommended to use in the entire load testing process, covering CPU, Memory usage of the machine under test. We encountered a situation where in 85-90% of the load requests were resulting in Bad Gateway error. Bad gateway error is an HTTP 502 error which means that one server had received an invalid response or did not receive a timely response from another server. The server hierarchy was as follows Figure 8: Server Hierarchy The gateway error could have stemmed anywhere in this server to server communication. Load test scripts had to be updated to print HTTP headers to determine cause of failure. Following was the methodology followed. Application Load handling capacity: 300 request/sec S. No. Activity Done Result Fix Round 1 Simulated load 857 requests NA of 1000 requests failed due to Bad Gateway Round 2 Modified script to print HTTP header in case of failure and simulated load of 500 requests. Bad Gateway errors begin to occur in the first few seconds. Requests were getting rejected at the Cloud Load Balancer as it was not configured to handle a load more than 150 req/sec. Configur ed the load balancer to handle 500req/s ec

Round 3 Round 4 Round 5 Simulated load of 500 request Simulated load of 500 request Simulated load of 500 request International Journal of Innovative Technology and Exploring Engineering (IJITEE) ISSN: 2278-3075, Volume-3, Issue-9, February 2014 Entire Traffic forwarded from Load Balancer to Reverse Proxy and Bad Gateway error occurs at Reverse Proxy. Requests are not relayed to the application server. Bad Gateway error still at reverse proxy but the error percentage decreased from 85 to 20%. All requests relayed successfully to the application server and servers Optimize d the reverse proxy configur ation files by increasin g the number of worker_c onnectio ns. Optimize the ulimits, i.e. the user limits, a builds in shell utility to set restrictio ns on resource usage. NA IX. also auto scaled to handle more load. SCRIPT BASED LOAD SIMULATION In the diagram above, a crawler script fetches data from the staging database (pre production environment) and saves it in csv files. Cell values from csv files are read by the load test scripts in a loop and fed to the HTTP message (get/post). Such complete requests are injected to the application via load simulation servers that are across different geographies. Parallel load is simulated on the cloud and the results of the load test run are also saved on the cloud so that they are accessible from anywhere, anytime. a) Pseudo code Step 1: Sql export 100 user accounts, 100 product keys. Step 2: export user_ accounts.sql to user_accounts.csv, product_key.sql to product_key.csv Step 3: For each (cell in user_accounts.csv) For each (cell in product_key.csv) While (Actual load simulation < load peak value for Geo1) Execute HTTP request Save result on cloud Actual load_simulation ++ Same Step 3 is executed for Geo 2 and Geo 3 in parallel with different test data. Figure 9: Load Simulation using Script X. CONCLUSION AND KEY TAKEAWAYS Through this study we observed there are significant benefits of Cloud infrastructure in comparison to in-house infrastructure. Further, we observed significant cost and time saving with Load testing Infrastructure transitioning to Cloud infrastructure. Some key points are listed here: 81 Published By:

82 Published By: & Sciences Publication Pvt. Ltd. Load Testing Strategy Review When Transitioning to Cloud Loop back of data from the field helps testing team improve their load testing data set, by matching it to the real-world load In case of large amounts of data, it is important to prioritize which type of data to target for load testing. Control charts are effective in tracking and monitoring the stability of the data. We plan to do further work on this by designing a loop back mechanism between real time loads from the field with scripts that simulates load in test setup. Also, we plan conceptualizing profile based testing where we will identify methods through which automatic load profiles are generated based on the real time loads observed from the field. XI. AUTHORS BIOGRAPHY Tanvi Dharmarha is working as a Lead Software Engineer with Adobe Systems Inc and is leading the quality team for Anti-Piracy initiatives at Adobe. She holds an Engineering Degree in Informational Technology. Prior to Adobe she has worked with an online Trading Company, International Marketmakers Combination, based out of Amsterdam. Ajay Jain is currently working with Adobe Systems Inc as Quality Engineering Manager responsible for managing multiple installer validation projects like Adobe Photoshop Installer and tools development. Ajay has published many technical papers with leading conferences and Journals across the world and also has a USPTO Patent to his credit. Ajay has done B.Tech from Delhi Institute of Technology, Delhi, India.