Varun S
5 min readSep 2, 2021

--

FUNDAMENTALS OF PERFORMANCE TESTING

What is Performance Testing?

Performance testing is a Black box test process under a non-functional software testing technique that determines how the stability, speed, scalability, responsiveness, and usage of a software application under different loads.

The key factors to check in Performance Testing are:

· Speed — To determines response is quick

· Scalability — Determines how load can the software handles.

· Stability — Determines the behaviour of the application under different loads.

Why Do Performance testing?

· To identify and eliminate the performance bottlenecks/limiting in the software application

· To ensure the application runs for a long period as expected without deviations

· Application performance is a key determinant of adoption, success, and productivity in the market.

· For an effective digital strategy.

When to do Performance testing?

· In SDLC Life cycle of any application or product includes two stages: development and deployment.

· In each case, the application or the product has to be exposed to stockholders for the accountability of the performance behaviour.

· Development performance tests focus on components like API calls, Navigations and loading, web services, microservices.

· The earlier the components of an application are tested, the sooner can be detected and fixed and where the lower the cost of rectification and impact are low, means it’s under control.

· As the application starts to take shape, performance tests should become more and more extensive which is during the deployment stage replications sets in UAT, Production Environments based on the Hardware configuration.

Types of Performance Testing:

· Load testing — The main objective of Load testing is to identify performance bottlenecks before the software application which has the ability to perform the desired actions under anticipated loads.

· Stress testing -The main objective of Stress testing is to identify the breaking point of an application where the load/volume is maximum with data, which involves testing of an application under extreme loads to see how the application handles high traffic or data processing.

· Volume testing -The main objective of Volume testing is to check software application’s performance under varying database volumes, which involves a large amount of data is populated to the database and the overall software system’s behaviour is monitored.

· Endurance testing — The main objective of Endurance testing is to check that application withstands the volume/load levels at the particular levels which are done at the last stage of the performance testing.

· Spike testing — The main objective of Spike testing is to determine the behaviour and performance of the application under an abrupt change in the load/volume. This testing is done sudden increase or decrease of the data and to determine whether the system will fail or survive in case of abrupt changes.

· Scalability testing — The objective of scalability testing is to determine the software application’s effectiveness in “scaling up” in an increase of the load which has the capacity addition to your software system.

The process involved in Performance Testing

· Identify your testing environment

· Identify the performance acceptance criteria

· Plan & design performance tests

· Configuring the test environment

· Implement test design

· Run the tests

· Analyse, tune and retest

Tools of Performance Testing

· HP LoadRunner — This tool is capable of simulating hundreds of thousands of users, putting applications under real-life loads to determine their behaviour under expected loads. LoadRunner features a virtual user generator which simulates the actions of live human users.

· JMeter — one of the tool used for load testing of web and application servers.

Challenges in Performance testing

· Few tools may support only web applications.

· Tools variants are seen.

· Tools have limited compatibility.

· Many not support complex applications for some tools.

· Organizations and top management team should watch out for performance benchmark for the parameters estimated.

· Disk usage and limitations of operating systems also should be watched out for.

Performance Testing Basic Test Cases for Consideration:

· Verify response time is not more than 4 secs when 1000 users access the website simultaneously.

· Verify response time of the Application Under Load, stress and volume within an acceptable range when the network connectivity is slow and fast.

· Check the maximum number of users that the application can handle before it crashes.

· Check database execution time when maximum records are read/written simultaneously.

· Check CPU and memory usage of the application and the database server under peak load and volume conditions.

· Verify the response time of the application under low, normal, moderate and heavy load and volume conditions.

Common Problems in Performance Testing:

· Long Load time

· Poor response time

· Poor scalability

· Bottlenecking

· common performance bottlenecks are

a. CPU utilization

b. Memory utilization

c. Network utilization

d. Operating System limitations

e. Disk usage

Metrics of Performance Testing

· The amount of time the processor spends executing non-idle threads.

· The amount of physical memory available to processes on a computer.

· The amount of time the disk is busy executing a read or write request.

· Bits per second used by a network interface.

· The amount of virtual memory used.

· The rate at which bytes are sent and received on the interface/server.

· Response time.

· The rate at which the server receives the requests per second.

· The number of user requests that are met by pooled connections. The more requests met by connections in the pool, the better the performance will be.

· The maximum number of sessions that can be simultaneously active.

· The number of SQL statements that are handled by cached data instead of expensive I/O operations. This is a good place to start solving bottlenecking issues.

· The number of hits on a web server during each second of a load test.

· The applications health check can be measured by the number of threads that are running and currently active.

· Garbage collection has to do with returning unused memory back to the system. Garbage collection needs to be monitored for efficiency.

· Number of bytes used by a process that cannot be shared with others (used to measure memory leaks).

· Average read/write requests queued for the selected disk during a sampling interval.

· Amount of data that can be restored at any time.

· The locking quality of tables and databases.

· Maximum wait times.

--

--