On Readers Request, we are starting the series of “Dummies Guide to Performance Testing”. This is the first post, where we will go through the basics of Performance Testing:

What is Performance Testing?
Why Performance Testing?
Tests carried out in Performance Testing
When to start Performance Testing?
Performance Test Process

What is Performance Testing?
Primary objective of the performance testing is “to demonstrate the system works functionally as per specifications with in given response time on a production sized database
Why Performance Testing?
– To assess the system capacity for growth
The load and response data gained from the tests can be used to validate the capacity planning model and assist decision making.
– To identify weak points in the architecture
The controlled load can be increased to extreme levels to stress the architecture and break it bottlenecks and weak components can be fixed or replaced
– To detect obscure bugs in software
Tests executed for extended periods can cause failures caused by memory leaks and reveal obscure contention problems or conflicts
– To tune the system
Repeat runs of tests can be performed to verify that tuning activities are having the desired effect – improving performance.
– To verify resilience & reliability
Executing tests at production loads for extended periods is the only way to access the systems resilience and reliability to ensure required service levels are likely to be met.
Tests carried out in Performance Testing:

    1. Performance-Tests: Used to test each part of the web application to find out what parts of the website are slow and how we can make them faster.
    2. Load-Tests: This type of test is done to test the website using the load that the customer expects to have on his site. This is something like a “real world test” of the website.

    • First we have to define the maximum request times we want the customers to experience, this is done from the business and usability point of view, not from a technical point of view. At this point we need to calculate the impact of a slow website on the company sales and support costs.
    • Then we have to calculate the anticipated load and load pattern for the website (Refer Annexure I for details on load calculation) which we then simulate using the Tool.
    • At the end we compare the test results with the requests times we wanted to achieve.

    3. Stress-Tests:

    • They simulate brute force attacks with excessive load on the web server. In the real world situations like this can be created by a massive spike of users – far above the normal usage – e.g. caused by a large referrer (imagine the website being mentioned on national TV…). The goals of stress tests are to learn under what load the server generates errors, whether it will come back online after such a massive spike at all or crash and when it will come back online.

When to start Performance Testing?

  • It is even a good idea to start performance testing before a line of code is written at all! Early testing the base technology (network, load balancer, application-, database- and web-servers) for the load levels can save a lot of money when you can already discover at this moment that your hardware is to slow. Also the first stress tests can be a good idea at this point.
  • The costs for correcting a performance problem rise steeply from the start of development until the website goes productive and can be unbelievable high for a website already online.
  • As soon as several web pages are working the first load tests should be conducted and from there on should be part of the regular testing routine each day or week or for each build of the software.

Generic Performance Test Process
This is a general process for performance Testing. This process can be customized according to the project needs. Few more process steps can be added to the existing process, deleting any of the steps from the existing process may result in Incomplete process. If Client is using any of the tools, In this case one can blindly follow the respective process demonstrated by the tool.

    Performance Test Process

We will go through the each box in upcoming posts.