What Is Scalability Testing?

by Nataliia Vasylyna | March 25, 2016 10:33 am

Note: the article was updated in June 2018.

Scalability is a system capacity to function under overloads without affecting response time and requiring no redesign to cope with the workload. It isn’t a core software requirement, but an unscalable system has rather limited capacities.

Scalability testing is performed with the aim of checking the software capability to operate properly under various loads. It also shows the level of product resistance to crashes and defines user experience in case of a high load. Scalability testing is a type of non-functional testing.

In comparison to load testing, verification of scalability focuses on performance capacities of your software, hardware, and server under different stages of load, while load testing[1] defines at what load level a system will fail.

What are scalability testing attributes?

Verifying software scalability, you can test the attributes connected with time, e.g., screen transition, time for a reboot, response and execution, time, and ones connected with capacities, e.g., CPU (Central Processing Unit), memory and network usage.

Before proceeding to scalability testing, you should specify load distribution to be generated, OS and processor types to be used, and memory size enough for testing.

Steps of scalability testing

  1. The validation of scalability of system structure. The specialists check whether the system is able to perform different transactions. Usually, the validation stage comes when the system prototype has been already made.
  2. The testers write a benchmark (often used during performance testing[2]). Besides, at this stage, a set of parameters is defined to determine the scalability quantity.
  3. Regression testing is conducted in order to check whether the scalability has faded or not.
  4. Control stage. The complete scalability and capability are checked by the integration of all system elements.

Approaches to scalability testing

You are able to conduct scalability testing following two approaches: vertical scaling or scaling up and horizontal scaling or scaling out. Vertical scaling means to replace a system component by another one that will ensure better operability of software. Horizontal scaling means to add a new component to the existing system, for example, add a new server. This approach is more complicated and expensive, but it can bring better results.

Learn more from QATestLab

Related Posts:

Endnotes:
  1. load testing: https://qatestlab.com/resources/knowledge-center/software-withstand-load/
  2. performance testing: https://qatestlab.com/services/test-automation/performance-testing/
  3. Performance Testing: how to detect system bottlenecks: https://blog.qatestlab.com/2018/04/17/testing-system-bottlenecks/

Source URL: https://blog.qatestlab.com/2016/03/25/scalability-testing-procedure/