Performance testing is very important especially when it’s come to the business point of view. You may have seen these things when you surf the internet, like you click on the site and the site is continuously loading and loading, you searched something and the result take 5-10 minutes to display on the page, sometime an error page occurs that the “connection time out” or the “server is busy” please try after sometime. So these things make you irritated and force you to switch other similar kind of websites.
Under performing application can cost your business loss also, consider a scenario, you want to buy a book which is available on X Website as well as on Y Website with the same price so you visited X Website first and searched the book and it taking so much time to show the result. Meanwhile you opened Y Website and searched the book name and it shown you result within the seconds and you added the book in cart and purchased it whereas the X Website is still loading the result. Here the person who thought to buy a book from the X Website but because of the poor speed and response it forced him to switch Y Website means there is a business loss for the X Website. This tell us how important performance testing is.
In application not only the functions, UI and features are important but also the other aspect like Performance has equal important.Performance testing the non-functional testing type. In performance we do not find the bugs. We test the speed, response, scalability and stability under changing workload.
Main focus of Performance Testing is on following aspects:
Speed of Application Under varying Workload : Traffic on Application is some time low sometime high, under these changing workload application should not get slow. On low traffic application may run fast and on high traffic it may get slow.so this things are tested and try to eliminate the causes.
Scalability of the Application : Scalability means the maximum user workload that can application handler. Every application has its limitation. In scalability we test the maximum number of concurrent user that can application easily handle without losing its speed and response.
Stability of Application Under varying Workload : Application may behave unexpectedly under changing user load. Application should behave expectedly under changing work load. Once the X Website announced the big billion day, on that day the traffic was huge on X Website and it was continuously varying due to this many user faced many problems. And X Website site started crashing due to the heavy user load. Application should not get crashed, should remain stable under such a varying load.
These are the key aspect which need to consider while testing the Application. There are many reasons which can make application slow like badly written code, sometime developer user a heavy which are not need that cause the time delay in producing the output and other response are hard issues which can also effect on software’s performance.
There are many types of Performance testing, some of those are explained below.
Load Testing : If Application is supposed to handle 10000 concurrent users for hour. Then load testing means subjecting 10000 concurrent user for hour and verifying the behaviors of the application.
Endurance Testing : Our application is supped to handle 10000 concurrent user for hour, so in endurance testing, an application is subjected to 10000 concurrent user but the time duration is increases from one hour to many hour. To verify the whether application can handle expected load for longer duration. Main difference between Load and Endurance testing is time duration.
Stress Testing : Our application is supped to handle 10000 concurrent user for hour, so the Stress testing would be exceeding the user limit from 10000 to its break point and the duration is also increase till the break point of the application. Here main aim is to break the system and find max user load that the application can handle.
Volume Testing : When there is lot of data in database then software may slow down because fetching and searching from heavy flooded database take time. In volume testing the database is full filled with data and then we check the speed and response of the application.
Spike Testing : We can’t predict the user load on application, it may 10 user to it may 10000 of user on application. In spike testing, we rapidly rise the user count and we rapidly decrease the user count and check the behaviors of the application.
The tools that is useful for performance testing are Jmeter, Roadrunner, HTTP load, Proxy snifer and Silk performer etc.