In software engineering, Performance Testing is an umbrella term for various linked concepts. It is performed to determine the behavior of the system under the expected as well as unexpected workloads. It is categorized as non functional testing as Performance is usually one of the NFRs (Non Functional Requirements). One can pinpoint the performance bottlenecks by means of Performance testing.
Load Testing: This is performed to check ability of an application to perform under the normal and expected load conditions.
Stress Testing: This involves increasing the load on application in steps until we are able to find the breaking point of the application. This is to check the behavior of the application under the unexpected load condition.
Endurance / Soak Testing: This is performed to check the performance of the application under the expected load over a long period of time.
Spike Testing: This simulates scenarios when there are dramatic increases in the load for very short duration of time intermittently (known as spikes).
Volume Testing: This means populating a lot of data for the back-ends like databases or big data systems and then monitoring the behavior of the system.
Availability Testing: The objective of this testing is to check the “scaling up” of the system in terms of additional users. This is very useful in Capacity Planning.
In next blog post, we will discuss common performance bottlenecks.