It is a type of non-functional software testing which ensures that the software application will perform well under the expected workload. The main aim of this type of testing is to eliminate the bugs which can affect our software application. In performance testing, we will test the stability and response time of the software application by applying some workload.
In this type of testing, we will check the speed, stability and scalability of the software application. It is also known as Perf Testing.
Why We need to perform Performance Testing?
Perf or Performance testing is performed so that we can provide information regarding speed, scalability and stability to the client. By performing Perf testing, you can find out the areas where the software application needs to improve. If you handover the application to the customer without perfroming this testing then your software application can face various issues like application crash, high response time, inconsistency across different operating system.
If the software application fails to meet the required goals then it can also affect the reputation of your company.
For Eg: You have made a chatting application where you need to create an account and then you can chat with people after making them friends. Let us suppose, you handover the application to the client without performing performance testing then the real-time users can face the following issues:
- Application gets crashed if there are more users accessing application at the same time.
- The application is very slow.
- The response time of the application is very high.
- Users are not able to use it smoothly etc.
Types of Performance Testing
- Load Testing
- Stress Testing
- Volume Testing
- Soak Testing/Endurance Testing
- Scalability Testing
- Spike Testing
In this type of testing , you will check your software application stability and response time by applying workload equal to or less than what your application can handle.
For Eg: Your application can handle 50 users then in this type of testing, 45 or 50 virtual users visit your application at the same time and then we will check the response time. If it remains good then our application is behaving good and if it doesn’t then we need to work.
In this type of testing, you will check your software application stability and response time by applying workload more than what your application can handle.
For Eg: Your application can handle 50 users then in this type of testing, 100, 200 then 300 users will visit your application then you will check the response time of your application. If your application doesn’t crash and response time is also good then your application is behaving well. We will check the breaking point in this type of testing.
In this type of testing, a large number of data is populated in the database and then we will check system behaviour. The main aim of performing this testing is to check the application performance when the database volume is varying.
Soak Testing/Endurance Testing
This type of testing is performed to make sure that our application can handle the expected load for a longer time.
For Eg: You all have used TV at your home. If someday you sleep in the night and woke up in the mornig and still your TV is on. Does the performance goes down? Did TV Stopped Working?
The answer is NO. This is because the TV is capable of handling expected workload for a longer period of time.
In this type of testing, we will check the breaking point where our application stops working. For Eg: Your application can handle 100 users at a time. Now you will increase the number of users and will check when your application stops working. Let us suppose, your application is working fine for 1000 users, 2000 users, 5000 users, 10000 users but it stopped working when there are 15000 users. So 15000 users will be the breaking point of your application.
In this type of testing, We will check how our application performs when there is a high spike in the number of users. For Eg: Your application can handle 100 users but now suddenly there are 1000 users accessing your application, then you will check the performance of your application at this time.
You all must have heard about Flipkart Big Billion Sale. Now in this sale, you can see that the number of users accessing the application increases at a very faster rate. Usually, if there are 100 users accessing this application then during the sale there can be 1000-2000 users. So if the application stops working at that time then there can be a huge loss to Flipkart. So it is better to perform this type of testing if you are going to start a live or bigger event.
Performance Testing Tools
- Apache jMeter
- HP LoadRunner
Common Performance Problems you may face
- The application can take long Load Time.
- Poor Response time can also be there.
- Poor Scalability.
- Bottlenecks can also degrade overall system performance. This can be due to coding errors or hardware issues. Common Bottlenecks issues are:
- CPU Utilization
- Memory Utilization
- Network Utilization
- Disk Usage etc.
In next topic we will discuss GUI Testing in details.