Scalability testing is usually used in cases when checking the capability of the software to resist heavy workload is required. It is also used when the software is to be tested for crash resistance. Scalability testing is an important part of non-functional tests and has its own phases and attributes you should know about.
Scalability tests show to the testing team whether the software is able to scale up or scale out when it is needed. Scalability testing is carried out during all the time of software development process in order to identify the software scalability difficulties.
Attributes of Scalability Testing
There are two groups of the attributes that are to be tested when the scalability testing takes place:
- time attributes: screen transition, response time, rebooting time, task execution time and throughput;
- performance attributes: memory, CPU and network usage.
Four Stages of Software Scalability Testing
Scalability testing has its stages that may differ depending on situation but usually remain almost the same for web and system applications.
Structure Validation Stage
At this stage testing team tests the scalability of application’s structure in order to test if the application is able to generate transactions. Usually Structure Validation stage comes after making a prototype of the application.
At this stage testing team creates a benchmark for the original version. An integral part of this stage is developing a set of metrics in order to quantify the scalability of the application that is to be tested.
Regression Testing Stage
This stage is usually carried out when any structural changes have been made to the application. Regression testing stage shows whether the application degrades in scalability or not.
Fine Control Stage
At the final stage of scalability testing the simulating of real life usage of the application is provided. Testing team integrates all units of the application in order to test the complete scalability and workload capability of the software. This stage is usually carried out before delivering the software.