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
good one
ReplyDeleteThank you!!!
ReplyDeleteI really like your postings, I am expecting more monitoring and analysis postings.
ReplyDelete