Performance testing and types of performance testing such as Load Testing, Volume Testing, Stress Testing, Capacity Testing, Soak/Endurance Testing and Spike Testing come under Non-functional Testing
In the field of Software Testing , Testers mainly concentrate on Black Box and White Box Testing. Under the Black Box testing, again there are different types of testing . The major types of testing are Functionality testing and Non-functional testing. As I mentioned in the first paragraph of this article, Performance testing and testing types related to performance testing fall under Non-functional testing.
In current market performance and responsiveness of applications play an important role. We conduct performance testing to address the bottlenecks of the system and to fine tune the system by finding the root cause of performance issues. Performance testing answers to the questions like how many users the system could handle, How well the system could recover when the no. of users crossed the maximum users, What is the response time of the system under normal and peak loads.
We use tools such as HP LoadRunner, Apache JMeter, etc., to measure the performance of any System or Application Under Test (AUT). Let’s see what are these terms in detail below.
Performance testing determines or validates the speed, scalability, and/or stability characteristics of the system or application under test. Performance is concerned with achieving response times, throughput, and resource-utilization levels that meet the performance objectives for the project or product.
Capacity Testing is to determine how many users the system/application can handle successfully before the performance goals become unacceptable. This allows us to avoid the potential problems in future such as increased user base or increased volume of data.
Load Testing is to verify that the system/application can handle the expected number of transactions and to verify the system/application behaviour under both normal and peak load conditions (no. of users).
Volume Testing is to verify that the system/application can handle a large amount of data. This testing focuses on Data Base.
Stress Testing is to verify the behaviour of the system once the load increases more than the system’s design expectations. This testing addresses which components fail first when we stress the system by applying the load beyond the design expectations. So that we can design more robust system.
Soak Testing is aka Endurance Testing. Running a system at high load for a prolonged period of time to identify the performance problems is called Soak Testing. It is to make sure the software can handle the expected load over a long period of time.
Spike Testing is to determine the behaviour of the system under sudden increase of load (a large number of users) on the system.