Scalability Testing overview | David Tzemach
Scalability testing is where system performance is tested to ensure it can scale up or scale down to follow user activity. Its primary purpose is to verify that the system remains stable when changes are made to meet the changing need. Scalability testing ensures that an application (processes, databases, etc.) has the flexibility to handle the projected increase in data traffic, transaction counts, etc.
The motivation for using scalability testing
Determine client-side user experience under load.
Measure load at all levels, including hardware, software, network, and databases.
Find where the application stops scaling and locate the point of failure.
Determine the boundaries of degradation and robustness.
Challenges of scalability testing
The main challenge of scalability testing is understanding what stress should be applied as part of the test process.
Scalability testing demands the use of specific tools, environments, and experienced team members, which are not always available, and may not even exist within the organization.
It is much more efficient to run these tests when the team knows the system. Without it, it is almost impossible to analyze results.
It is harder to find functional errors as a method from the non-functional test family. Therefore, the test process must combine both functional and non-functional testing.
Scalability testing attributes
Here are three examples of the test attributes that the team can use as part of this testing process:
CPU Usage – This measures the CPU utilization for performing a task by the system. Ideally, the system will provide the same CPU processing rate for different user requests without suffering from any degradation in the processing speed.
Response Time – This measures the time it takes for a system to respond to a user request. The testing is done to identify the system's response time under different loads (minimum, threshold, and maximum) to identify the critical points at which the system fails to respond. The success criterion for testing this attribute is to deliver the same response time for all user loads without delays in the system response.
Throughput – Throughput is defined as the rate at which something can be processed. In other words, the number of requests that the system can process in a given time. The main success factor for this attribute is that the system can deliver the same throughput for all load levels.