Seven Types of Performance Tests: Which One is Right for You?

You may have an idea of what a performance test is, but do you know how many different kinds of tests there are, or the range of problems they can help solve? Here's some simple definitions of the individual types of performance tests.

The goal of a performance test is to discover how the application will react to multiple processes taking place at once. The tests can take various forms and target different parts of the system.

Are we looking for a weak point in the whole system, or are we just focusing on a defined area? That's one way to differentiate various tests. Here's the most common method of categorizing tests:

1. Performance Test

Problem

I need to tune or test a website's behavior under a certain load.

Solution

  • The goal is to test the system with a defined load and measure its behavior. 
  • It simulates a group of users that gradually send requests according to a defined script.
  • The users are generated gradually, just as they would be in real life.
  • The test is repeated and results are compared for optimization.

2. Load Test

Problem

I don't know how many users my website can handle and I'm expecting an increase in traffic.

Solution

  • Virtual users are added until a part of the system, the weakest, fails, or simply grinds to a halt.
  • The test does not have to follow a real-life scenario, but may focus only on one particular function or part of the system.
  • The problematic area is found using an analysis of logs, monitoring systems, and other tools.

3. Soak Test

Problem

My website has been in operation for some time and I'm just waiting for something to go wrong, or, I'm interested to see how a new system will perform over time.

Solution

  • Simulates real user behavior over the long term.    
  • The allocation of resources is monitored and tested for effectiveness.
  • Problems related to long-term operation that might not arise during normal operation (or during a traditional test) come to the fore, such as gradual clogging of memory.
  • Metrics are monitored at various levels, including the application server, database, and operating system.

4. Failover Test

Problem

I don't know what will happen when one server goes down and I have to use a back-up.

Solution

  • Purposely overloading one or more servers in the system.         
  • A traditional scenario simulates a cascading failure of all servers after one crashes.
  • If there are many such requests, it can mean overloading and knocking the whole system out of operation, or gradual overloading of individual servers until all of them fail.

5. Targeted Infrastructure Test

Problem

I have a complicated, integrated system and I need to find the part of it that causes the biggest bottleneck.

Solution

  • The tests target the back end of systems and communicate through their interfaces and into the integration layers and database.
  • Messages from a range of standards (often SOAP, RESTful, JDBC, etc.) are used in lieu of web interface requests and can use specific reports that back end systems use to communicate.
  • The biggest advantage of these tests is that they show great precision in finding the part of the system that has the biggest impact on its performance.

6. Network Sensitivity Test

Problem

I want to know the real throughput of my network components.

Solution

  • Scenarios test the maximum data throughput.  
  • Large and small files are downloaded through the creation of a planned number of parallel connections.     
  • It's important to create connections with the same security and protocols typical for the system.    
  • The interface is also tested for the number of hits per second.
  • Only when the entire infrastructure can fulfill throughput demands can we continue testing the system itself and search for performance problems in applications and not at the network level.

7. Volume Test

Problem

I need to test whether the database can manage the expected volume of data.

Solution

  • This tests the reaction of the application when there is less data.   
  • System speed is then repeatedly tested after a large amount of data is added.    
  • If performance deteriorates to unacceptable levels, then data operations and how the data are saved need to be optimized. After that, this must be tested repeatedly to see whether improvements have been made.

Real applications face different types of loads. Trends in user behavior and background processes are what matters. Performance tests therefore are not just used to test certain systems or applications, but the parameters of the entire environment.

Try it for yourself and download SmartMeter.io for FREE!


Filed under: Performance Testing