Performance testing is carried out to gauge the performance of the various components of a system in a given situation. It also validates the scalability, dependability and resource usage of the product. The primary target of this testing is elimination of blockages affecting performance rather than looking for bugs.
Check for Speed, scalability and stability of the Application Under Test (AUT) while conducting Performance Testing–
- Speed – Does the application respond quickly?
- Scalability – How much of the user load is the software application capable of handling?
- Stability – Can the application remain stable under varying loads?
The Purpose of the Test
Primarily, performance testing verifies a product’s reliability and what aspects need to be worked upon before introducing it to the market. It is an extremely important procedure, without which the software may be subjected to problems like slowing down when several users are using it at the same time, poor functioning and inconsistent performance across different operating systems.
Types of Performance Testing
- Load Testing – Determines the maximum user load the application is capable of undertaking. The aim is to strike-off any bottlenecks pertaining to the application’s performance before it goes live.
- Stress Testing – This exposes the application to extreme workload to check how well it can handle extreme traffic or data processing. This helps in identifying the breaking-point of the application.
- Endurance Testing – This is done to determine if the software application can handle a particular amount of load over a long period of time.
- Spike Testing – Identifies how the software reacts to unexpected spikes in the load, caused by multiple usage.
- Volume Testing – This checks the performance of the software when it is introduced with a large volume of data in its database and monitors the software system’s functionality under varied volumes of data.
- Scalability Testing – This test determines how well the software can effectively manage to ‘scale-up’ when subjected to extreme user load. It helps in planning for the application’s capacity addition.
Performance Issues
The most essential parameters of performance are speed, scalability, response and load time. An application that is running slow is bound to lose its market. Therefore, performance testing is imperative in order to ensure that an application works at a satisfactory speed, thereby, locking the interest and attention of its users.
- Long Load Time – The initial time required for an application to start is what is known as Load Time. All developers aim to keep this time as short as possible. Depending on their usage, certain applications are impossible to load in under a minute, however, the goal is to avoid the load time from exceeding over a minute.
- Poor Response Time – The time gap between a user adding data into an application and receiving an output response from it is known as Response time. Naturally, if one has to wait too long, he is bound to lose patience as well as interest.
- Poor Scalability – When a software fails to perform at its best while multiple users are using it simultaneously, it suffers from poor scalability. Therefore, load testing is extremely necessary to determine whether a software product can function appropriately when utilised by several users.
- Bottleneck – Bottlenecks are obstructions that affect the overall performance of a software system. It usually occurs on account of coding errors or hardware related issues, resulting in reduced output levels under certain loads. Bottlenecking can be fixed by finding a faulty section of code which may be the cause of the slowdown and taking remedial measures to repair it. This can either be done by either correcting faulty running processes or by introducing an additional hardware. The most common kinds of bottlenecks are –
üNetwork Utilisation
üMemory Utilisation
üCPU Utilisation
üDisk Usage
üOperating System Limitation
The Performance Testing Process:
Given below are the key steps to conduct a Performance Test –
- Identifying the Testing Requirement –This step is a prerequisite of the test. It involves understanding the basic details of the software system, the hardware and the network configurations before beginning the testing process. This will provide more accurate results to the testers. It will also help the testers identify the possible issues and challenges which they are likely to encounter while performing the test.
- Identifying the Performance Acceptance Criteria – This step involves setting of goals and limitations pertaining to output, response times and allocation of data and resources. Testers are allowed to set their own criteria of performance, as project specifications often do not provide a wide range of performance benchmarks. Comparison with similar applications is also a useful tool while setting performance goals.
- Planning and Designing the Performance Tests – Based on the application function, testers need to determine how its usage is likely to vary with different end users and thereon, plan and design the main scenarios for all the possible types of usage. It entails simulation of various end- users, and setting the performance testing data accordingly.
- Configuring the Test Environment – Next, the environment for testing is prepared by organising the necessary resources and tools.
- Implementing the Test Design – Now, in accordance with the test design, the performance tests are developed.
- Running the Tests – The tests are now ready to be executed and monitored.
- Analysing, Fine-tuning and Re-testing – This is the final step where the test results are analysed and consolidated. It could even be followed by a re-test to check for any increase or decrease in performance.
The Parameters of Performance Testing:
- The time taken up by the processor to perform non-idle threads, also known as Processor Usage.
- The available physical memory for various processing usage or Memory Use.
- The amount of time it takes the disk to execute a read or write request, also known as Disk Time.
- The usage of the network interface, calculated in bits per second, also known as Bandwidth.
- The number of pages written or read by the disk to rectify hard page faults is known as Memory Pages/Second. Hard page faults occur when codes crop up from elsewhere and not from the working set at use.
- The rate at which the processor processes the fault pages is known as Page Faults/Second. This happens when a process requires a code from outside its working set.
- The time taken to receive the first character of the response from the system when a user enters a request is what is known as Response Time.
- The rate at which a network or computer receives requests and calculated in requests/second, also known as Throughput.
- The maximum number of sessions that can remain active at the same time, also known as Maximum Active Sessions
- The health of an application is determined by the number of threads that are running and active, otherwise known as Thread Counts.
Summary:
Before any software product is introduced in the market, a Performance Test is obligatory. It addresses two extremely vital concerns pertaining to the launch of a new product. First being customer satisfaction and second and most importantly, maintaining the investor’s image and investment against product failure.