What is Scalability Testing? Learn with Example

Scalability Testing

Scalability Testing is a non functional testing method that measures performance of a system or network when the number of user requests are scaled up or down. The purpose of Scalability testing is to ensure that the system can handle projected increase in user traffic, data volume, transaction counts frequency, etc. It tests system ability to meet the growing needs.

It is also referred to as performance testing, as such, it is focused on the behavior of the application when deployed to a larger system or tested under excess load. In Software Engineering, Scalability Testing is to measure at what point the application stops scaling and identify the reason behind it.

Why do Scalability Testing

  • Scalability testing lets you determine how your application scales with increasing workload.
  • Determine the user limit for the Web application.
  • Determine client-side degradation and end user experience under load.
  • Determine server-side robustness and degradation.

Scalability Testing image

What to test in Scalability Testing

Here are few Scalability Testing Attributes:

  • Response Time
  • Screen transition
  • Throughput
  • Time (Session time, reboot time, printing time, transaction time, task execution time)
  • Performance measurement with a number of users
  • Request per seconds, Transaction per seconds, Hits per second
  • Performance measurement with a number of users
  • Network Usage
  • CPU / Memory Usage
  • Web Server ( request and response per seconds)
  • Performance measurement under load

Test Strategy for Scalability testing

Test Strategy for Scalability Testing differ in terms of the type of application is being tested. If an application accesses a database, testing parameters will be testing the size of the database in relation to the number of users and so on.

Prerequisites for Scalability Testing

  • Load Distribution Capability– Check whether the load test tool enables the load to be generated from multiple machines and controlled from a central point.
  • Operating System- Check what operating systems do the load generation agents and load test master run under
  • Processor– Check what type of CPU is required for the virtual user agent and load test master
  • Memory– Check how much memory would be enough for the virtual user agent and load test master

How to do Scalability Testing

  1. Define a process that is repeatable for executing scalability tests throughout the application life-cycle
  2. Determine the criteria for scalability
  3. Shortlist the software tools required to run the load test
  4. Set the testing environment and configure the hardware required to execute scalability tests
  5. Plan the test scenarios as well as Scalability Tests
  6. Create and verify visual script
  7. Create and verify the load test scenarios
  8. Execute the tests
  9. Evaluate the results
  10. Generate required reports

Scalability Test Plan

Before you actually create the tests, develop a detailed test plan. It is an important step to ensure that the test conforms as per the application requirement.

Following are the attributes for creating a well-defined Test Plan for Scalability Testing.

  • Steps for Scripts: The test script should have a detailed step that determines the exact actions a user would perform.
  • Run-Time Data: The test plan should determine any run-time data that is required to interact with the application
  • Data Driven Tests: If the scripts need varying data at run-time, you need to have an understanding of all the fields that require this data.

Scalability testing Vs Load testing

Scalability Testing Load Testing
  • It focusses on the performance of your websites, software, hardware, and application when changes are done in the size or volume of the system to meet a growing need.
  • Load testing focusses on testing an application under heavy loads, to determine at what point the system response time fails.

Summary:

  • It is a type of software testing that tests the ability of a system, a network or a process when the size/volume of the system is changed in order to meet a growing need.
  • The idea behind Scalability Testing is to measure at what point the application stops scaling and identify the reason behind it
  • Test Strategy for Scalability Testing differ in terms of the type of application is being tested.