You are on page 1of 6

Performance Testing Question

1. What are the different types of Performance Testing?


Load testing – It checks the application’s ability to perform under anticipated user loads. The
objective is to identify performance bottlenecks before the software application goes live.
Stress testing – This involves testing an application under extreme workloads to see how it
handles high traffic or data processing. The objective is to identify the breaking point of an
application.
Endurance testing – It is done to make sure the software can handle the expected load over a
long period of time.
Spike testing – This tests the software’s reaction to sudden large spikes in the load generated
by users.
Volume testing – Under Volume Testing large no. of. Data is populated in a database and the
overall software system’s behavior is monitored.
Scalability testing – The objective of scalability testing is to determine the software
application’s effectiveness in scaling up to support an increase in user load.

2. List out some common Performance bottlenecks.


Some common performance bottlenecks include:
 CPU Utilization
 Memory Utilization
 Networking Utilization
 S limitation
 Disk Usage

3. What are the Parameters considered for Performance Testing?


The Parameters for Performance Testing are:
 Memory usage
 Processor usage
 Bandwidth
 Memory pages
 Network output queue length
 Response time
 CPU interruption per second
 Committed memory
 Thread counts
 Top waits
4. What is throughput in Performance Testing?
Throughput is referred to the amount of data transported to the server in responds to
the client request at a given period of time. It is calculated in terms of requests per
second, calls per day, reports per year, hits per second, etc. Performance of application
depends on throughput value, higher the value of throughput -higher the performance
of the application.

5. What is Endurance Testing & Spike Testing?


Endurance Testing – It is a type of performance testing where the testing is conducted to
evaluate the behavior of the system when a significant workload is given continuously.
Spike Testing – It is a type of performance testing that is performed to analyze the behavior of
the system when the load is increased substantially.

6. Difference between Benchmark Testing & Baseline Testing?


Benchmark Testing Baseline Testing
 It is the procedure of running a set of test
 It is the method of comparing performance of your
capture performance information. When
system performance against an industry standard
change is made in the application, this inf
that is set by other organization
used as a reference
 
7. What is concurrent user load in Performance Testing?
Concurrent user load in performance testing can be defined as something when many users hit
any functionality or operation at the same time. Concurrent user load
testing sends simultaneous artificial traffic to a web application in order to stress the
infrastructure and record system response times during periods of sustained heavy load.
 
8. What is Profiling in Performance Testing?
Profiling is a procedure of pinpointing a bottleneck performance at miniature levels. This mainly
includes developers or performance testers and is done by presentation teams for
manufacturing . You can profile in any application layer which is getting tested. If you want to
do application profiling you may require utilizing tools for performance profiling of application
servers.

9. How would you identify the performance bottleneck situations?


Performance Bottlenecks are recognized by monitoring the app against load and stress
conditions. To find bottleneck situation in performance testing the testers usually use Load
Runner because it supports many different types of monitors like a run-time monitor, network
delay monitor, web resource monitor, database server monitor, firewall monitor, ERP server
resources monitor and Java performance monitor. These monitors in turn help to the tester to
establish the condition which causes an increase in the response time of the application. 
 
10. How to perform Spike Testing in JMeter?
In JMeter, spike testing can be achieved by using Synchronizing Timer. The threads are jammed
by synchronizing the timer until a specific number of threads have been successfully blocked,
and then release them at once thus creating large immediate load.

Q29. What is a correlation?


Correlation is used to handle the dynamic values in a script. The dynamic values change for
each user action when action is replayed by the same user or any different user. In both, the
cases correlation takes care of these values and prevents them from failing during execution.
 
11. Explain the difference between automatic correlation and
manual correlation?
Manual Correlation involves identifying the dynamic value, finding the first occurrence of
dynamic value, identifying the unique boundaries of capturing the dynamic value, writing
correlation function web_reg_save_param before the request having the first occurrence of
dynamic value in its response.

Automated correlation works on predefined correlation rules. The script is played back and
scanned for autocorrelation on failing. Vugen identifies the place wherever the correlation rules
work and correlate the value on approval.
 
12. How to identify performance testing use cases for any
application?
There are certain measures that you need to consider while monitoring the performance tests.
Users have to be working on the core functionality of the application, trying to perform
operations on database like CRUD, and the number of users trying to concurrently access the
application should be more. With all these criteria, even manual test cases can help you in
identifying the performance measurements.
 
13. What is Correlate graph and overlay graph?
Correlate graph – The Y-axis of the graphs are plotted against each other. After this, the Y-axis
of the graph that is active is considered to be the X-axis of the graph that is merged.
Henceforth, the graph that was merged with the Y-axis of that graph becomes the Y-axis
merged.
Overlay graph – Plot two graphs which contain the same x-axis. Left Y-axis in the merged graph
shows the current value of graph. Right Y-axis shows the value of the Y-axis of the graph that
was merged.

14. What are some of the common performance bottlenecks and


how do they impact your application?
Bottlenecks are system obstructions that contribute to degradation in the system’s
performance. They are caused either by hardware issues or coding errors that lead to a
reduction of throughput under varying loads. Some of the common bottlenecks in performance
are:
 Processor bottlenecks: These occur when the processor is overloaded and cannot perform its
tasks and respond to requests on time. These can be in 2 forms:
o CPU running at above 80% capacity for a prolonged period.
o A long queue of requests for the processor.
Both of these forms occur when the system has insufficient memory and has continuous
interruption from the I/O devices. They can be resolved by adding more RAM, increasing CPU
power and improving algorithmic efficiency.
 Memory Utilization: This bottleneck occurs when the system does not have fast RAM or does
not have sufficient memory. This impacts the speed of serving information to the CPU thereby
slowing down the application. Whenever the device does not have enough RAM, the storage
will be offloaded to SSD or HDD. These issues can be resolved by increasing the memory
capacity or increasing RAM. If the RAM is very slow, then it can be replaced. Sometimes the
problem can arise due to memory leak issues wherein a program does not release memory so
that the system can use it. Correcting the application program to free memory also can fix the
issue.
 Network bottlenecks: These occur when two or more devices lack the necessary bandwidth to
communicate with each other. Whenever there is an overburdened server or overloaded
network that causes the network to lose its integrity. These issues can be resolved by upgrading
servers, network hardware like hubs, routers, access points etc.
 Software bottlenecks: These bottlenecks are due to the software where programs are built for
handling finite tasks so that it doesn’t utilize additional RAM or CPU. This makes the program
use only a single core or processor despite the availability of resources. These can be resolved
by making the software program more efficient so that it can use available resources efficiently.
 Disk Usage: The slowest component in a server is long-term storage units like SSDs or HDDs
that are unavoidable. The fastest long-term storage units have physical limits which makes it
difficult for the programmers to troubleshoot such issues. These can be fixed by increasing RAM
caching rates, reducing fragmentation issues or by addressing insufficient bandwidth by
switching to faster storage units.
The key to fixing all the bottlenecks are by pinpointing the root cause of the system degradation
and then by fixing the code or by adding additional hardware resources depending on the
causes.

15. How is load testing different from stress testing?


 Load testing is a type of testing that analyzes the software performance when it is saddled with
more than normal workloads. The load can be of any kind - data or users accessing the system
or the application itself on the server’s operating system. When the load is increased, some
applications tend to perform slowly (degenerate) and in some other cases, the applications run
normally. Load testing determines that the applications run at optimal levels irrespective of the
load given to them. 
 Stress testing on the other hand has a broader approach to the software’s performance. It
considers the amount of data processed, time taken to process it, network connectivity levels
and other applications running in the background. When the stress levels are high, software
tends to crash or stop working altogether. This testing imitates the stressful environment to
test the resistance of the software to operate correctly.

16. How is endurance testing different from spike testing?


 Endurance testing deals with how long the application can endure and perform well
irrespective of the loads. Sometimes when an application is used for a long time, it becomes
slow or inactive which is why it becomes important to conduct this testing. Endurance testing
analyses all changes in the application by simulating lengthy application usage. For example,
endurance testing is conducted on a Banking application where we test if it can perform
normally under continuous load or large transactions for a long time.
 Spike testing deals with pushing the application to the limits by subjecting the software to the
highest operation level for identifying the strengths and weaknesses of the application. Spike
testing is necessary for instances when eCommerce or shopping sites launch flash sales or
holiday discount deals where suddenly a large number of users will be accessing the
application. If the application crashes under sudden spike every time, then it would result in a
bad user experience and the users would lose faith in the application.
17. Why does JMeter become a natural choice of the tester when it
comes to performance testing?
JMeter tool has benefits like
 It can be used for testing both static resources like HTML and JavaScript, as well as
dynamic resources like Servlets, Ajax, JSP, etc.
 JMeter has a tendency to determine the maximum number of concurrent users that
your website can handle
 It provides a variety of graphical analyses of performance reports

18. What is concurrent user hits in load testing?


 In load testing, without any time difference when multiple users hit on the same event
of an application under the load test is called a concurrent user hit.

You might also like