Scalability Testing is a type of non-functional testing in which the performance of a software application, system, network or process is tested in terms of its capability to scale up or scale down the number of user request load or other such performance attributes. It can be carried out at a hardware, software or database level. Scalability Testing is defined as the ability of a network, system, application, product or a process to perform the function correctly when changes are made in the size or volume of the system to meet a growing need. It ensures that a software product can manage the scheduled increase in user traffic, data volume, transaction counts frequency and many other things. It tests the system, processes or databases ability to meet a growing need.
Scalability Testing is to measure at what point the software product or the system stops scaling and identify the reason behind it. The parameters used for this testing differs from one application to the another. For example, scalability testing of a web page depends on the number of users, CPU usage, network usage while scalability testing of a web server depends on the number of requests processed.
Objective of Scalability Testing:
The objective of scalability testing is:
- To determine how the application scales with increasing workload.
- To determine the user limit for the software product.
- To determine client-side degradation and end user experience under load.
- To determine server-side robustness and degradation.
Scalability Testing Attributes:
- Response Time:
Response time is the time consumed between the user’s request and the application’s response. Response time may increase or decrease based on different user load on the application. Basically, the response time of an application decreases as the user load increases. Application having the lesser response time is considered as the higher performance application.
Throughput is the measurement of number of requests processed in a unit time by the application. It differs from one application to another as in web application it is measured in number of user requests processed in a unit time whereas in database application it is measured in number of queries processed in a unit time.
- Performance measurement with number of users:
Depending on the application type, it is always tested for the number of users that it can support without its breakdown or busy standby situation.
- Threshold load:
Threshold load is the number of requests or transactions the application can process with desired throughput.
- CPU Usage:
CPU Usage is the measurement of the CPU utilization while executing application code instructions. It is basically measured in terms of the unit Megahertz.
- Memory Usage:
Memory usage is the measurement of the memory consumed for performing a task by an application. It is basically measured in terms of the unit bytes.
- Network Usage:
Network usage is the measurement of the bandwidth consumed by an application under test. It is measured in terms of bytes received per second, frames received per second, segments received and sent per second etc.
Steps involved in Scalability Testing:
Following are the steps involve in the scalability testing:
- Define a process that is repeatable for executing scalability test.
- Determine the criteria for scalability test.
- Determine the software tools required to carry out the test.
- Set the testing environment and configure the hardware required to execute scalability test.
- Create and verify visual script.
- Create and verify the load test scenarios.
- Execute the test.
- Evaluate the result.
- Generate required report.
- Software Engineering | Differences between Sanity Testing and Smoke Testing
- Software Engineering | Comparison between Regression Testing and Re-Testing
- Difference between Software Testing and Embedded Testing
- Software Testing | Spike Testing
- Software Testing | Static Testing
- Software Testing | Globalization Testing
- Software Testing | Dynamic Testing
- Software Testing | Stability Testing
- Sanity Testing | Software Testing
- Software Testing | Load Testing
- Stress Testing | Software Testing
- Software Testing | Mutation Testing
- Beta Testing | Software Testing
- Software Testing | Fuzz Testing
- Software Testing | Database Testing
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.