How Do You Test Application Scalability

Are you aware of the various factors that must be checked for the scalability of your app? As you can understand by its name, application scalability is how much you will scale the product with the increased workload. To make you understand better, suppose the users of your system increase by 2 times the load it can take, you will have to increase the server performance and lessen the server response time for a good UI experience.
app testing
Scalability testing is your answer to all the woes. It defines of the common problems like:

  1. How is the server performing when the hardware and software are changed?
  2. In that case, can we upgrade the system’s capability and increase productivity?

The Need for Scalable Testing
Why do you need a scalability test? Well, the answer is clear. It helps you determine how your application performed with increased load and helps you understand the total number of users it can withstand. The reason behind this is to understand at what point the systems starts lagging and what can be done to overcome such challenges.
How to Create a Scalability Test
Scalability testing is performed by conducting a series of load tests with complementary hardware and software changes made while keeping the other conditions same. It tests for various attributes as below:

  1. System throughput
  2. Network/Memory Usage
  3. Performance measurement
  4. Load with a number of users using the application
  5. Screen Transition
  6. Request and response time
  7. Hits/Transactions per second

The scalability test should be performed systematically to ensure that all the attributes are covered and the data is collected. Obviously, the type of load may differ for each system depending upon its web server, users and type of system. Think about all the other parameters that might get affected when load increases.
Essential Requirements for Conducting the Scalability Test
Clear and concise requirements before the tests are performed is a basic necessity.  The pre-requisites for scalability testing includes:
Memory: Evaluate the need for memory allocation for all the virtual users using the system
Processor:  Check the requirements of the processor before you start
Operating System: Check which OS acts as an agent and tests the load
Load distribution capability: Make sure you have a centralized system where all the results are collected and evaluated from multiple users and machines.
Steps to Create a Scalability Test

  1. 1. Create and monitor all the scenarios
  2. Try changing the scenarios and check the attributes that get affected due to the change
  3. Re-check the scenario to make sure they perform the same way each time
  4. Define a set of virtual users for the testing system
  5. Create the load test by specifying settings that allow you to evaluate the application’s performance
  6. Run your tests
  7. If any lags, make changes to the server and run repeat the tests.

Analysing the Test Results
By running the test cases, you are actually just determining 40% of your performance testing objective. The critical part of this being the analyses and rectification of results. The scalability testing results can be compared and analysed in the following manner:
1. Virtual Users vs Response time
Some companies set a specific time interval, say for 2 minutes, in which they increase the number of users for a specific server load and test the behaviour of the application. In short, you will be testing the applications response time for a specified number of users.
2. Users vs Latency
This analysis is done to check the latency of the network on which the users operate.
3. Hits vs users
Hits per second are observed after 3 minutes of response and latency time starts.
4. Users vs errors
The load on the system giving rise to errors and bugs are tracked against a specific number of persons.
testbytes-mobile-app-testing-banner
Conclusion:
Once the scalability testing has ended, whatever the outcomes are, make sure you have all the data recorded for further enhancing the load capacity of the system at any given time. It is always a good practise to have a backup in plan for the tests. Meaningful reference is essential for the next time you perform the same tests.