In the waterfall methodology, there used to be a dedicated window to perform load, stress, and performance testing process after the software is developed. As the old model gave way to Agile, where working software is now delivered at the end of each two-week sprint, the performance testing cycle works parallelly with the SDLC.
As a part of SDLC, Software quality teams must consult with both the client and project teams to understand the primary business drivers and implement testing to validate the functionality and its performance. After which, the plan for the performance test cycle is drawn,
Performance testing validates the non-functional requirements of applications like Speed, Stability, and scalability.
- Speed testing – How speed is the system
- Stress testing – Under what conditions do the system loses its stability
- Load testing- How much load can a system handle
The results of the systems are usually a measure of these below,
Test reports provide intelligence about the performance of the system and can be a strategic solution to create a positive user experience. The big challenge to performing the test is the test environment. The test should be carried on real or production-like environments and most importantly, on the client’s server in order to get accurate results.
Example scenarios of performance testing are as below,
Taking an email functionality of an application, multiple users can read, send, forward, reply or delete in many different ways. For ex., if there are 1000 users at a time and if we take anyone transaction per user per hour, there’d be 1000 transactions per hour. We could check the speed of the application by occupying the server with 1000 transactions per hour. The end of the test will show the load time, response time and latency.
Stress testing reveals how an application works under unanticipated conditions or when some of the software/hardware of the application has been compromised. It also provides insights into how the applications crash under stress and the time frame it requires fixing it. Not to forget, the ancillary aim of this test is also to confirm that the app does not reveal sensitive information during the crash. Common examples include health care applications.
Load testing is performed to determine the system’s behavior during normal and peak load hours. It helps to identify the maximum operating capacity of applications. The use cases put under tests differ for normal load and peak load. The end of the test will provide insight into the network and bandwidth response time and consumption of memory/CPU. Common examples include Black Friday/Cyber Monday sales, great Indian sales by e-retailers etc.