Overview
Prior to
starting the course of JMeter, I want to start the course with a few basic definitions
that are relevant to any person that want to take part in the world of
performance testing. I will explain each
category with a very short description and add further information during the
course.
What is Performance testing?
Performance testing
is a is a non-functional testing technique that we execute when we need to
validate how the tested software performs in terms of stability, reliability,
responsiveness and scalability under a predefined system workload.
What are the benefits of Performance test types?
- Comparing the performance attributes against other applications/Old version of the same application.
- Understand the kind of errors that may affect the system functionality and user experience.
- Understand the connection between slow performances based on
the related defects.
- Reveal the bottlenecks of the application that will not cover
in the functional tests.
- Understand how different hardware will affect the application
performance.
- Understand the tuning that you need to create a better load
balancing.
- Understand if the software behaves according to the client
demands.
- Reveal functionality errors that occurred during load/stress
tests.
- Get the answer to the basic question of "how many users
can use the software at the same time prior to compromise the application performance?"
- Collect great data about the software scalability and
stability.
- Understand of how the system behaves on different loads.
- Understand how the system can handle different loads.
- Reveal defects that come from concurrency scenarios.
- Understand the system boundaries.
- Determine the application performance against the market
demands, which lead to continues improvement.
- Provide a great view on the amount of data that the system
can process when exceeding the upper limitations.
What are the Key Types of performance testing?
Load/Capacity Testing
Load testing
is the process where we want to examine how the system behave when tested under
a specific expected load while constantly increasing the system transactions (until
the system reaches to the end boundaries). The load can simulated by the number
of users that simulate a specific number of operations/transactions under a specific
duration.
Load tests
will help the tester to uncover bugs in the application related to bottlenecks,
CPU/Memory overflows… and get a better knowledge about the system limits when the
user uses it for a long period of time (Remember that load and Endurance tests
are almost always executed as corresponding with each other).
Stress Testing
Every system
has a capacity limit, when the system load exceeds this limit, the application
will fail to be responsive to the user request and in some cases it becomes
unusable. Therefore, we need to run
Stress tests to understand what the system limits are and how the system handles
such situations.
Endurance Testing
Endurance
testing is performed when you want to test the application behavior and
parameters (Memory, CPU….) under long term loads. The main purpose of this test, is to revel
the bugs that may raise during sustained use of the application
functionalities.
Spike Testing
Spike testing
is performed when the tester need to test the application against sudden loads
(Both increment/Decrement). The goal of pike tests is to determine the behavior
of the application when its needs to handle a dramatic change in load.
Volume Testing
Volume testing
is done when you want to determine the efficiency of the application when
processing a Hugh amount data that processes be the application. Running volume
tests will help you to show that the system cannot be used when the amount of
data become too heavy for the system to handle.
No comments:
Post a Comment