Performance Testing — Know your app limit
Have you ever wonder the limit of your applications? Well, you can find out that by doing performance test!
What is it?
Performance testing is a non-functional type of testing on software development to know the current system performance. It is used for checking the current system’s responsiveness and stability under various workload conditions. In short, it will test the system under multiple and different load conditions and checks how long the system responds to these loads.
What does it checks?
This testing process usually used for testing the software’s speed, scalability, stability and reliability.
- Speed : Evaluates the system’s speed to response a request
- Scalability : Evaluates the maximum user load that the system’s can handle
- Stability : Evaluates if the system is stable under heavy concurrent user load
- Reliability : Evaluates if the system is reliable under prolonged periods of high user traffic
Types
- Load Testing
It is performed to validate the system (application under test) performance under normal (around 70% of peak user load) and peak user load. It helps us to tune the system and finalize the baseline. Besides that, this test can be used to identify performance bottleneck before the system goes live.
- Stress Testing
It is done to identify the breaking point of the system when it’s subjected to a user load beyond the expected peak. The breaking point can be defined as a load at which either the response time degrades beyond 10% or transactions start failing by more than 5%. Usually, the system is subjected by 2 times of user peak load when doing the stress test.
- Spike Testing
It is a subset of stress testing. It analyzes the behavior of the system by suddenly varying the number of users to check if the system is able to support such situations efficiently.
- Endurance Testing
It is similar to load testing, but it’s done with a longer period of time (usually, around 8 to 72 hours). With this test, we can check for memory leaks of the system and other random behavior that might be shown by the system.
- Capacity Testing
It helps to identify the actual number of the users that the system can support with current hardware capacity. Besides that, it can be used to determine the software application’s effectiveness in “scaling up” to support an increase in user load. It also can be a help on planning a capacity addition to your system.
- Volume Testing
It is used to check the system performance on executing multiple data-intensive transactions and validate if the system behavior is efficient enough to handle various data volumes.
Tools
Performance testing can be done by using many tools, such as JMeter, K6, Locust, Grinder, LoadNinja, etc.