All you need to know about performance testing

TestingAll you need to know about performance testing

In software testing area there is two major category:

  • Functional testing
  • Non functional testing

Performance testing is a type of non functional testing which involves in evaluating software abilities apart from its functionality.

Usually it is called the most important type of non functional testing. Other types can be usability and compatibility testing.

In this article we will check out together:

What Performance Testing is all about?

Performance testing is a testing method to determine if a software satisfy the target end user requirements regarding the workload. It evaluates the app’s responsiveness and stability under a possible workload.

Basically, performance testing’s main aim is to prevent the software from possible bottlenecks and help and improve user experience.

Based on the resources performance testing can be done in beta and production environments. Some of the features which is getting tested are network bandwidth, software reliability, data transfer speed rates, data processing speed rate etc.

It is recommended to use the best practices by dev team in used algorithms to reduce the possibility of bottlenecks in final developed software.

Performance testing is applied after functional testing done and it is always getting done automatically and not manually.

Different types of Performance Testing

There are different types of performance testing which includes:

  • Load testing
  • Stress testing
  • Volume testing
  • Scalability testing

Companies usually perform only Load and stress testing for their developed software but in case resources are available other types of performance testing can also be applied too.

Let’s briefly explore each of these types

Load Testing

Load testing is applied to determine whether the software satisfy the requirements by performing properly in determined load pressure.

For example in a banking system if the software should perform at least 100 balance request simultaneously, it is getting tested by load testing in test server environment before software go live.

Usually testing team uses tools like Jenkins for it and it gets added to integration testing. So whenever new features added this test will get performed automatically.

Stress Testing

Stress testing evaluates a software performance when higher than expected number of requests occurs. For example if desired requests per minute is 500 stress testing evaluates if software can handle 550 per minute. Also it will evaluates if the software can handle crash and unexpected behaviours in this case. If software can return to its normal state after overloaded by resources.

Basically stress testing determine the break point of a software by adding higher pressure on physical resources which software is using like memory cpu etc.

There are two sub categories of stress testing which includes:

Soak Testing (Endurance Testing / Stability testing)

Endurance or soak testing adds end users of a software in a determined period and analyzes software’s sustainability. In the meanwhile, KPIs and resources usage stats are getting monitored by Tester.

Spike Testing

In contrast with Soak testing, Spike testing evaluates software’s sustainability when the number of end users raised suddenly in a short period of time. But the process is same as Soak testing which the tester analyzes the KPIs and stats of the resources.

Volume Testing

Volume testing evaluates software performance when filled with large volume of data. It usually applied by creating a sample file to evaluate the product’s functionality and performance with it. Volume testing also called flood testing.

Scalability Testing

In scalability testing, tester evaluates the software’s usage of resources in high and low number of end users and requests. As the name suggests, it evaluates how software scales the resources based on requests.

There are a few other types of performance testing as cloud performance testing and capacity testing.

Currently lots of companies using cloud performance testing, and benefiting from its advantages as large scale testing is possible and maintenance has lower cost with it.

Performance testers face a couple of challenges during testing which we we will cover a few of them here:

  • Some testing tools only can be used with web applications and not other types
  • When it comes to tools, it can be expensive as the free versions have high limits and paid versions are commonly expensive
  • Bottlenecks can happen in CPU, Memory, Disk usage and other physical resources, and it is recommended to watch out for them during testing
  • long load and response time is also one of the common performance testing challenges.

LEAVE A REPLY

Please enter your comment!
Please enter your name here