In this section, we are going to understand scalability testing, which checks the performance of an application by increasing or decreasing the load in particular scales like number of a user.

And we also learn about its needs, the purpose of scalability testing, type of scalability testing, prerequisite for scalability testing, various features of scalability testing, how to perform it, advantages and disadvantages.

Introduction of Scalability Testing

Another type of performance testing is scalability testing, which comes under the non-functional testing of software testing.

It is used to check an application's performance by increasing or decreasing the load in particular scales known as scalability testing. It is executed at a hardware, software, or database level.

It is specified as the capacity of a network, system, application, product, or process to make the function correctly when modifications are made in the system's size or volume to meet an increasing need.

In this testing, the Test Cases are designed and implemented in a well-organized manner. It also analysis the system, processes, or database's ability to meet an upward need.

For example, a web page scalability testing depends on the number of users, CPU usage, network usage. In contrast, scalability testing of a web server depends on the number of requests processed.

The Objective of Scalability Testing

Following are the critical purposes of scalability testing:

  • The main objective of performing the scalability testing is to control how the application balances with an increasing workload and at what point the software product or the system stops scaling and identify the reason behind it.
  • The scalability testing is needed to signify the user limit for the software product.
  • To find out the client-side degradation, end-user involvement under load, and server-side stability.
  • The usages of scalability testing will make sure the ability of software to scale up with the increasing workload and data traffic.

Why do we need to perform the Scalability Testing?

The execution of scalability testing is required because it ensures the even functioning of the software or the application while completing end-user's requirements without any issues.

The scalability testing is needed if we encounter the following issues:

  • In case of any modification in the software lead us to its failure?
  • After the enhancement, the software is working correctly and efficiently in meeting the user requirements and expectations.
  • Whether the software can produce and improve as per extended needs?

Types of Scalability testing

Scalability testing is classified into two parts, which are as follows:

  • Upward scalability testing
  • Downward scalability testing
Scalability Testing

Upward scalability testing

The upward scalability testing is used to expand the number of users on a specific scale until we got a crash point. It is mainly used to identify the maximum capacity of an application.

Downward scalability testing

Another type of scalability testing is downward scalability testing. When the load testing is not passed, we will use the downward scalability testing and then start decreasing the number of users in a particular interval until the goal is achieved.

Therefore, we can quickly identify the bottleneck (bug) by performing downward scalability testing.

The Precondition for Scalability Testing

For the scalability testing, the test strategy can be changed based on the type of application being tested.

For instance, if a database is related to an application, then the testing constraints will be the database and the number of users. We have some default precondition available for scalability testing, which is as follows:

Scalability Testing
  • Operating System

If we want to perform the scalability testing, we need to verify what operating systems are prepared by the load generation managers and load test master.

  • Load Distribution Capability

It is used to analysis if the load testing tool allows the load to be created from several devices and measured from an essential point.

  • Memory

Before performing the scalability testing, we must analyze how much memory would be sufficient for the virtual user and load test master.

  • Processor

We need to analyze what type of CPU is required for the load test master and virtual users before executing the scalability testing.

Feature of Scalability testing

Some of the vital components of scalability testing are listed below; let see them one by one:

  • Throughput
  • Performance measurement with many users
  • Memory Usage
  • CPU Usage
  • Network Usage
  • Response Time
Scalability Testing

Throughput

  • The throughput feature is used to specify the amount of work implemented by the application in the given time.
  • The throughput can change from one application to another.
  • For example, in a database application, it is sustained in several commands managed in a unit of time. In contrast, it is uniform in the number of user requests handled in a unit time in a web application.

Performance

  • The next feature of scalability testing is performance, which is used to check the user's repetitively collective load and request under the webserver and repose of the system.
  • In other words, we can say that the performance of the application depends on its type as it is tested continuously for several users, which can support without its failure or backup condition.

Memory Usage

  • In scalability testing, Memory usage is one of the resource utilizations used to sustain the memory expended for performing a task by an application.
  • Typically, the memory usage is calculated in respect of the unit bytes.

CPU Usage

  • Another resource utilization under scalability testing is CPU usages, which is used to calculated the CPU utilization while performing application code commands.
  • Normally, the CPU usage is calculated in respect of the unit Megahertz.

Network Usage

  • It is used to carry the bandwidth consumed by an application under test.
  • The network usage is calculated in terms of frames received per second, and bytes received per second, segments received and sent per second, etc.

Response Time

  • It is the time used up between the application's response and the user's request.
  • In other words, we can say that the response time checks how fast the system or the application response to user or other application requests.
  • It may enhance or reduce the time based on different user loads on the application.
  • Usually, the response time of an application reduces as the user load is enhanced.

How to perform Scalability Testing

To perform the scalability testing, we need to follow the below steps:

Scalability Testing

Step1: Assessment

In the first step of scalability testing, we will assess the existing and predictable future software's possible increasing potential. They also check the criteria for the scalability test and decide the software tools needed to perform the test.

Step2: Test Execution

After the assessment, we will prepare the test plans, test scenarios, and test cases, which cover and analyze the software's working for each incremental development.

Note: While developing scalability tests, it is recommended to enhance the load for following stages to test the system at a fundamental level to an advanced stage.

Additionally, the test environment requests to be persistent and fixed for every diverse enhanced load.

Step3: Test Development

After that, we will set the testing environment, configure the hardware required to implement a scalability test, generate, validate the visual script and the load test scenarios.

Then, perform these test cases in an organized way and analysis the results.

Step4: Logging and reporting

Once the test development has been performed, we will analyze the recorded results and build the necessary report.

Advantages and Disadvantages of Scalability Testing

Below are the benefits and drawback of scalability testing.

Benefits of Scalability Testing

The advantages of Scalability testing are as follows:

  • It helps in operative tool utilization tracking.
  • The most vital advantage of using the scalability testing is that we can find out the web application restrictions below test in respect of network usage, Response time, Network Usage, CPU Usage, and so on.
  • If we execute the scalability testing, we can control the end-user experience under the specific load. Hence, the helpful procedures can be taken earlier to fix the issues and make the application more accessible.
  • The early detection of issues saves both time and money.
  • It enhances the assurance in a software product to see the future development difficulties.
  • The scalability testing will help us to save a lot of money and time if we identify the cause of multiple performance issues in the specific application during the testing phase.
  • Usually, it includes a set of load tests with different hardware and software settings, and keeping the test environment unchanged.

The Drawback of Scalability Testing

Following are the disadvantages of Scalability testing:

  • The functional faults can be missed during the Scalability testing.
  • Sometimes, the test environment is not always precisely similar to a production environment.
  • Occasionally, tests are working fine but fail in the testing phase because of the incorrect test scripts and test scenarios, which waste a lot of time doing pointless modifications.
  • If we use the advanced tools for Scalability testing and an exclusive testing team for performance testing, it will cause an over budget for the projects.
  • To perform scalability testing, requires a high-level of testing knowledge and skills.

Overview

In this tutorial, we have learned that scalability testing is a part of non-functional testing that tests the system's capability, a network, or a process when the size or volume of the system is modified to meet an increasing requirement.

For Scalability Testing, the Test Strategy is different regarding the type of application being tested. It is used to evaluate the application to stop scaling and identify the reason behind it.

It works as an operative tool to support the software applications to go along with the users' increasing requirements.