Monday 29 February 2016

Chapter 1. Introduction to Performance Testing

Many of the clients,sometimes even developers thinks performance testing process is similar to functional testing just with multiple users.
But the whole process is completely different from Functional/Automation testing.
The approach and thought process is completely different and different Performance testers build different test approaches to the same application.
Below article will help the readers to understand and build a performance testing approach.

Why Performance testing? 

Recently an Indian Online retailer giant launched a special offer day called "Big billion day" offering huge discounts on variety of products. A huge traffic was expected and the company prepared for it.
As per a source this event was planned over 700,000 man hours(6 months of work put in by 280 people over 14 hours everyday) to get the back end system ready. As much as 50 tonnes of copper was moved across the country for cabling. Additionally 50 KM of optical fiber was airlifted. The company subscribed more than 350 MBPS bandwidth.

Still most of the users faced lot of performance issues. Though the products were sold at a very low prices, customers were unable to purchase it because of many issues like slow page loading time, and error pages.The company suffered a huge loss and the C.E.O himself sent an apology letter to the public.

So performance testing is very crucial today make sure the application is fast and reliable. Wrongly done performance test would not only result in huge monetary loss but also humiliation.

Performance testing is very crucial in Banking, Insurance, Telecom, E-commerce, Government and so on projects.

What is performance testing ?

It is a type of non-functional testing performed to make sure the application behaves as expected under load.

How to make sure the application works as expected?

There are different types of Performance testing which we can perform to make sure the application is stable. Each of these testing types have different objectives and passing criteria . An application is usually tested with multiple types of  below testing methods to find out issues related to performance.
So lets see what are the different types of performance testing.

Types of Performance testing:


Load Testing: The application is tested under expected load (100% load) and check the system response is within S.L.A.

Stress testing : The application is tested under heavy load (usually 120% to 150% load) and check the system is still able to process requests without failures.

Soak testing : The application is tested under load (usually 80% to 100% load) for a longer duration(6 hrs to 24 hrs ) and to check the application is reliable for longer duration.

These are the three main types of testing executed to test an application. Depending on the application and requirement we can also do volume testing, Spike testing, Endurance testing, break point testing and so on.

How to do performance testing?

To do Performance testing we need an application which is passed functionally (although functional testing may go parallel) and multiple users performing multiple actions under same time.

A brute force method is to bring multiple real users and allow them to access the application under same time. This method is not at all practical for below reasons:
  • Impractical and not cost effective to bring thousands of human resources to test. Some applications requires more than 100,000 users. 
  • Assume if we do this some how, it is impractical to provide hardware resource need like computer, smart phones to allow the users to access the application.
  • Even if all the necessary hardware and  software access is provided and testing is done, there is no method to actually collect the statistics like response time.

The practical approach

We have 100's of tools in market which simulates real user actions,put load on the system and captures the statistics required to find out performance bottleneck.

Below are the widely used tools. Each tool is having its own pros and cons.It is left to performance tester to use required tool depending on her own requirements.


  • HP Loadrunner : Industrial standard tool, used by 75% of the industry. Most of the applications can be automated. Easy, still can create complex scenarios depending on your expertise. But a very costly tool.
  • Apache Jmeter : Free open source tool. Very effective ,can be used for low to medium load testing.
  • Oracle load testing (OATS) : Easy to learn, but limited to Web and Oracle applications.
My next article will focus on deep understanding of Loadrunner.

No comments:

Post a Comment