What is Scalability Testing?


What is Scalability Testing and Learn with Example

A system/application must have the capability to function flawlessly under excessive load. Scalability testing features the process where the efficiency of a system is tested based on a growing number of user requests, data volume, transactions, and user traffic. The developers identify the points where the system stops responding to changes and dig deeper to find its reasons.

Salient features of Scalability Testing

  • It tells you how the application behaves under heavy load

  • It let you know the limitation of the app in terms of user experience

  • It helps you determine the efficiency and limits of the server

  • It gives insight into what your user will experience when during a system/software/server overload

Scalability Testing Vs. Load Testing

Both scalability and load testing come under the umbrella of performance testing.

Scalability testing gives information about how your system will behave under minimum and maximum load at each level. It considers all levels, such as software, hardware, and database. Once developers find out the optimum load, they work on fixing the system by improving its scalability.

Meanwhile, load testing is used to test how an application responds to a maximum level. It tells you the peak point exceeding, which can crash the system. As a result, your users won't be able to use the system anymore.

Example −

Let's say you want to know how many users can use this app simultaneously. After a scalability test, you find out that your app can take a load of up to 15,000 users.

Now, you have two options to act upon

  • You can either decrease the app's response time after it reaches 15,000 users

  • You can increase the RAM size to accommodate more users

Scalability Testing
Load Testing
Gradually increase the load on the app
Puts maximum load on the app at once
Identify the reason behind the crash and
Tells the point where the app is most likely
take necessary measure to fix it
to crash
Identify the system’s scaling capabilities
Identify performance issues of an app

Why scalability testing necessary for an organization

Technically, a scalability test allows developers to find defects in a system/software and rectify them at their earliest. However, it brings more to the table.

Here are some reasons for choosing scalability testing

Determines the user-experience factor

It tells the developer how an app will respond under low, medium, and heavy loads to take corrective measures in advance.

Informs about the application's limitation

It lets developers know the limitations of the app based on response time, CPU usage, network usage, and other attributes.

Saves the company from financial loss and reputation damage

Rigorous scalability testing allows developers to build a robust and bug-free application before releasing it in the production environment. It also helps in the early detection of performance issues in the testing phase. Fixing these issues in the production environment will cost a fortune for the organization. Consequently, it saves the organization from financial loss and reputation damage from a bad user experience.

Attributes tested in Scalability Testing

Scalability testing attributes refer to the performance measurement process concerning the characteristics of a system/app.

Following are some of the critical attributes tested in Scalability testing −

Response Time

Once a user sends a request, the app takes a particular time for the server to respond. The time between the user request and app response is called the response time. Developers conduct this testing to understand how much time an app will respond under the minimum, threshold, and maximum load. It also determines the breaking point of the app.

Throughput

Throughput is the number of requests an app can process over a unit of time. For web-based applications, throughput is measured based on the number of user requests processed in unit time. Meanwhile, for databases, throughput is measured by calculating the number of queries processed/unit time.

Memory Usage

Whenever we use an app, it uses some memory to access the device's Random Access Memory, thereby allowing the app to run efficiently. The amount of memory used by the app is termed as 'Memory usage.' It is usually measured in bytes such as Megabytes, Gigabytes, and Terabytes. By employing better programming practices, developers can minimize the memory usage of the app.

CPU Usage

CPU usage indicates how much stress the app is causing to the processor of the system/device. In other words, it says what percentage of the processor core is engaged when we use the app. It is measured in unit MegaHertz. High CPU usage is mainly expected in graphics-rich, editing, and gaming apps. However, lack of proper coding can also make the app consumes high CPU utilization.

Network Usage

The network usage test informs the developers about the bandwidth consumption of an app. The goal here is to limit network usage to reduce network congestion. Developers may use compression techniques to minimize network usage.

Transaction Response Time

Transaction response time defines the time it takes an app to complete a transaction or business process. It allows developers to find bottlenecks during the performance testing process.

Apart from these above, the scalability test also comprises some less used attributes such as reboot time, session time, transactions per second, web page loading time, task execution time, and many more.

Test Strategy for Scalability Testing

Test strategy is an outline describing the systemic process of a software testing process. It usually differs based on the type of application you need to test.

For example, if your app comes with a database, your testing parameters should focus on how much users can access the database before it crashes. Similarly, for eCommerce apps, the parameters should be to test the server's average transaction time to the number of simultaneous users.

Here are some basic testing parameters for developing a test strategy

Evaluating and accumulating pre-requisites

  • Find the best load-testing tool that can withstand load from multiple machines and is manageable from a single location.

  • Find the right OS to run the load test master

  • Identify the CPU for running the test agent and load test master

  • Analyze how much memory you need to run the test

Defining your Scalability Testing Process

Here is a step-by-step checklist for conducting scalability testing −

  • Choose a repeatable process

  • Define the criteria on which you will test the app's scalability

  • Prepare a list of tools you will need for running the test

  • Create the testing environment

  • Configure any hardware (if required)

  • Make a list of test scenarios

  • Draft and evaluate load testing and visual script scenarios

  • Execute the load test

Now the final step is to evaluate the results and prepare the report. Your report must consist of guidance for improvements. For instance, if you expect your website traffic to increase by 200 within two months, you must implement ways to boost your server performance.

Updated on: 18-Mar-2021

281 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements