What is performance testing?

Performance Testing determines or validates the response times, throughput, and resource-utilization of the system under a particular workload. It identifies the drawback of the architectural design which helps to tune the application. It includes the following:

  • Increasing number of users interacting with the system.
  • Determine the Response time.
  • Repeating the load consistently.
  • Monitoring the system components under controlled load.
  • Providing robust analysis and reporting engines.

How does performance testing work?

Performance testing explores several system qualities, that can be simplified to:

Speed - does the system respond quickly enough ?

Capacity - is the infrastructure sized adequately? 

Scalability - can the system grow to handle future volumes?

Stability - does the system behave correctly under load to eliminate bottlenecks and establish a baseline for future regression testing?

To conduct performance testing is to engage in a carefully controlled process of measurement and analysis.

Why is performance testing necessary?

By testing the base technology (network, load balancer, application, database and web servers) early on for the load levels you plan to support, you can better optimize your webserver and avert business costs (i.e., lost sales) later on. Discovering that your hardware configuration is inadequate when the application is deployed can be very expensive to correct. Testing the server for its maximum stress level before development begins is an excellent idea. The costs for correcting a performance problem escalate as the development process moves forward. For instance, discovering a performance problem after an application or website is already deployed means countless man hours to correct the server issue—man hours that were already spent configuring the webserver (or application) the first time. The business aspect: A bad performance can slow down your business performance and have a huge impact on your successful conversions. If you know, that certain parts of your site are slow, you can address these deficits early in the project, long before they impact your visitors and sales.

What are the sub genres of performance testing?

Load Testing:usually conducted to understand the behaviour of the system under a specific expected load Load can be increased by increasing the number of user performing a specific task on the application in a specific time period.

Stress Testing: is conducted to evaluate a system performance by increasing the number of user more than the limits of its specified requirements. It is performed to understand at which level application crash.

Volume Testing: test an application in order to determine how much amount of data it can handle efficiently and effectively.

Spike Testing: what changes happens on the application when suddenly large number of user increased or decreased. The goal is to determine whether performance will suffer, the system will fail, or it will be able to handle dramatic changes in load.

Soak Testing: is performed to understand the application behavior when we apply load for a long period of time what happens on the stability and response time of application. During soak tests, memory utilization is monitored to detect potential leaks.