Skip to main content

Performance Testing


                                
As I have shared before about testing experience here. Today I am pen downing my experience regarding performance testing.
Here I am not going explain about advantage or anything about automation over manual. I start with basic knowledge of performance which I have grabbed till now in my words. Please feel to free to express about any point.

Performance testing: A type of testing which has different outlook for an application. I believe that performance testing is not performed for finding bugs or defects in application.

Performance testing is a type of testing which determine performance of application in terms of its component for particular condition or time or stage.
There are various industry based benchmarks which need to be follow by each of application.

Performance testing helps us to established benchmark of our application basis on industry standard.

When I am saying benchmark, it does not represent customer exact requirements. Customer requirement always lead us to functionality of application but benchmark is something when we say this application with so and so functionality can behave in stable manner in which kind of environment.
When we say minimum requirements for an application means we are providing a benchmark for our application with which it will behave stable and reliable.
So now I can define performance testing as a type of testing to establish various benchmarks to become certain that how components are behaving under specific situation and same time we can also determine that resources usage in terms minimum , maximum or avg , network usage and other factors which can impact our application performance. Such as , memory used by various process called by application, network connection, network bandwidth used any application, amount of time for fetching the data over networks from various tier of application like database server, index server, content server .

There are various types of performance which help us to determine performance of an application. These types are defined on basis of approach of performance testing:

1.       Load testing: Load testing is very important perspective in performance testing. If I say that for achieving primary goal of performance always require.  Load testing is a type of performance testing which is performed to determine exact load your application can sustain successfully and explore various non-functional defects of application like memory leak, network outage and also at same time load testing can determine upper limit of resources used by application.  So in other words, Load testing is performance testing technique to determine behavior of application under various loads and mainly focused on response time of application. Also known as capacity testing.

2.     Stress Testing: It is also very important aspect of performance testing. Stress testing is performance testing technique to determine breaking point of application in terms of load. It is extension of load testing. After load testing we perform stress testing to find out the breaking point of our application. Stress testing mainly focused on throughput ( amount of data exchanged between client and server)


3.     Longevity testing/Endurance test: A similar type of load testing. It is a load testing executed for more longer duration (more than 8 hrs I suggest) to determine memory utilization

4.     Volume testing: Volume testing is a type of performance testing to behavior when under peak load time user performs complex functionality of application. E.g. performing other tasks on irctc in talkal timings J

5.      Spike Testing: Spike testing is performance testing technique to determine how application will behave under significant change in load at time like low load to high then  low in sudden manner.it help us to determine that our application can handle load in spike manner and how it will response.


6.     Availability Testing: Availability testing is another type of testing which help us to determine down time possibilities of our application. By performing this performance testing we can determine that 24x7 our application will be available under what conditions

7.     Scalability Testing: Scalability Testing is a performance testing technique which helps us to forecast scalability of our application for future in case of what if users increase. this testing help use to determine that what kind of and how many additional resources can help us to scale up our application

PS: I will explain major performance testing types and their difference in next post J

è How to determine which application can become under performance testing:

Any application which has at least two tiers architecture can be tested using performance.
So why do we need at least two tier application. If you consider observations in performance testing, you will find what we record actually when we plan performance testing.
Basically, Performance tool always record request (sent by user/client) and response received from server. Other inputs from user also get recorded and some time in specific settings mouse/keyboard activities but not always. So, to perform performance testing, we ideally required an application which has at least two tier communications.

è How to determine which tool can use for performance testing:

Now, we have an application then second step is to choose performance testing tool.
There are various tools are available in market which help us to perform performance testing.

è For choosing the suitable tool, we need to understand our application communication process with client and other tier of application. Knowing the way communication will let us know about protocol used in application at various level.

è Other import factor will be , on which technologies application has developed

è On which platform our application is compatible and same time required platform for tool too

è Above  factors will tell us compatibility of performance tool with our application

è Now other factors which we should consider for choosing the tool will , our performance testing goals like for how many users (possible highest number), size of project (cost wise of course because each tool has their costing along with it)


Above mentioned factors can lead us to choose suitable tool for performance testing.

Hope this post will be given a basic idea about the performance testing.  I will try to share more on concept basis and tool specific pointers too.


                             



Happy Exploring!!!


image source: google

Comments

Post a Comment