What is Performance Testing?

Performance testing is the testing that is performed to ascertain how the components of a system are performing under a certain given situation.

Resource usage, scalability, and reliability of the product are also validated under this testing. This testing is the subset of performance engineering, which is focused on addressing performance issues in the design and architecture of a software product.

The above image clearly explains to us that Performance Testing is the superset for both load & stress testing. Other types of testing included in performance testing are Spike testing, Volume testing, Endurance testing, and Scalability testing. Thus, Performance testing is basically a very wide term.

Performance Testing Goal:

The primary goal of performance testing includes establishing the benchmark behavior of the system. There are a number of industry-defined benchmarks that should be met during performance testing.

Performance testing does not aim to find defects in the application. It also does not pass or fail the test. Rather, it addresses the critical task of setting the benchmark and standard for an application. Performance testing should be done very accurately. Close monitoring of the application/system performance is the primary characteristic of performance testing.

The benchmark and standard of the application should be set in terms of attributes like speed, response time, throughput, resource usage, and stability. All these attributes are tested in a performance test.

For Example,

For instance, you can test the application network performance through the ‘Connection Speed vs. Latency’ chart. Latency is the time difference between the data to reach from the source to the destination.

A 70kb page would not take more than 15 seconds to load for the worst connection of 28.8kbps modem (latency=1000 milliseconds), while the page of the same size would appear within 5 seconds for the average connection of 256kbps DSL (latency=100 milliseconds).

A 1.5mbps T1 connection (latency=50 milliseconds) would have the performance benchmark set as 1 second to achieve this target.

Another example would be that of a Request-response model. We can set a benchmark that the time difference between the generation of request and acknowledgment of response should be in the range of x ms (milliseconds) and y ms, where x and y are the standard digits.

A successful performance test should project most of the performance issues, which could be related to database, network, software, hardware, etc.