Performance testing is defined as the technical investigation done to determine or validate the speed, scalability, and/or stability characteristics of the product under test. Performance testing is a general term that covers all of its various subsets, every value and benefit listed under other performance test
Why do Performance Testing?
Performance testing is done to provide stakeholders with information about their application regarding speed, stability and scalability. More importantly, performance testing uncovers what needs to be improved before the product goes to market. Without performance testing, software is likely to suffer from issues such as: running slow while several users use it simultaneously, inconsistencies across different operating systems and poor usability. Performance testing will determine whether or not their software meets speed, scalability and stability requirements under expected workloads.
Types of Performance Testing:
Performance test is used to determine speed, scalability, and/or stability.
Benefits of Performance test:
- Using the performance test we determines the speed, scalability and stability characteristics of an application, thereby providing an input to making sound business decisions.
- Identifies mismatches between performance-related expectations and reality.
- Supports tuning, capacity planning, and optimization efforts.
Load Test : Load test is used to verify the application behaviour under the normal & peak load.
Benefits of Load Test :
- Determines the adequacy of a hardware environment.
- Detects functionality errors under load.
- Helps to determine how much load the hardware can handle before resource utilization limits are exceeded.
Stress Test : To validate an application’s behavior when it is pushed beyond normal or peak load conditions.
Benefits of Stress test :
- Determines if data can be corrupted by overstressing the system.
- Ensures that security vulnerabilities are not opened up by stressful conditions.
- Helps to determine what kinds of failures are most valuable to plan for.
Capacity Test : Capacity test determine how many users and/or transactions a given system will support and still meet performance goals.
Benefits of Capacity test :
- Provides information about how workload can be handled to meet business requirements.
- Determines the current usage and capacity of the existing system to aid in capacity planning.
- Provides the usage and capacity trends of the existing system to aid in capacity planning
While doing Performance testing we measure some of the following:
|Characterisitics (SLA)||Measurement (units)|
|Hits per Second||#Hits|
|Throughput||Bytes Per Second|
|Transactions per Second (TPS)||#Transactions of a Specific Business Process|
|Total TPS (TTPS)||Total no.of Transactions|
|Connections per Second (CPS)||#Connections/Sec|
|Pages Downloaded per Second (PDPS)||#Pages/Sec|
Performance Testing Example:
Banking Web Application
Largest bank provides Online Banking application to its customers to provide better services and minimizing the need to visit bank. The application provides awesome banking features to the customers. The clients connect to online banking application from any of the browser (Internet Explorer, Chrome, Firefox, Opera and any other).
The Bank IT Infrastructure consists of 4 Web Servers, 1 Application Server & 1 Database Server.
The banking web application currently supports 450 concurrent users at peak usage time including internal users which performs administration tasks. As per the requirement, Performance target was to have the application available for 24 hours and capable of handling 1500 concurrent users.
The motive of performance testing the application was to validate and make it scalable to handle 1500 concurrent users. The scenario was designed in such a way that all the users are active after 30 minutes. Performance Test execution started with ramp-up of users for all business transactions and monitoring was already started on servers to gather performance metrics.
|Mini Account Statement||600|
|Custom Account Statement (user provides date range not greater than 6 months)||90|
|View Standing Instructions||80|
|Make Bill Payment||40|
|Enabling high security features||10|
|Transfer Money between account||350|
|Update Personal Information||30|
“Think time” and “pacing” is applied in every script to ensure that transactions throughput remains in limit during performance test execution