Software Testing Tutorial #21 - What is Non Functional Testing
Summary
TLDRThis tutorial explains the fundamentals of non-functional testing, essential for both interviews and practical projects. The video covers the differences between functional and non-functional testing, focusing on key aspects like responsiveness, stability, and performance under varying loads. It also introduces important testing types, including load, stress, soak, volume, and spike testing, with real-world examples such as e-commerce websites. The tutorial helps viewers understand how to evaluate an application's performance, reliability, and robustness in different scenarios, ensuring users can explain these concepts effectively in interviews.
Takeaways
- π Non-functional testing is essential to understand for both project work and interviews, as it helps assess an application's performance, stability, and responsiveness.
- βοΈ Functional testing checks the features and functionalities based on customer requirements, such as verifying a registration form's behavior.
- β‘ Non-functional testing evaluates how an application performs under various conditions, such as load, speed, and reliability, focusing on performance metrics like response time and stability.
- β³ Response time is a critical part of non-functional testing, ensuring that the application loads and responds within an acceptable timeframe.
- π¦ Stability testing measures how well an application performs under heavy traffic or load, such as during high-demand events like sales on e-commerce platforms.
- π‘ Performance indicators include response time, processing time, and the ability to handle concurrent users, which all help in determining the application's efficiency.
- π Load testing ensures that the application can handle a specified number of concurrent users without performance degradation.
- π₯ Stress testing pushes the application beyond its limits to determine the point where it breaks or fails under excessive load.
- π Soak testing examines how an application performs over an extended period with sustained load, ensuring long-term stability.
- π Spike testing evaluates how an application reacts to sudden and sharp increases in user traffic, testing its resilience under sudden load changes.
Q & A
What is the primary focus of non-functional testing?
-Non-functional testing focuses on testing the responsiveness, stability, and performance of an application under different conditions, such as high load or extended usage.
How does functional testing differ from non-functional testing?
-Functional testing verifies if the software works according to its functional requirements, such as whether the registration form works correctly. Non-functional testing, on the other hand, evaluates the system's performance, like how fast the registration page loads.
Why is non-functional testing important in an application?
-Non-functional testing ensures that the application performs well under different conditions, such as handling high user loads or extended operation times, making sure the application is reliable and responsive.
What are the common performance indicators in non-functional testing?
-Common performance indicators include response time, processing time, and concurrent user volume, all of which help assess how the application performs under different conditions.
What is load testing and why is it performed?
-Load testing verifies how the application performs under a specific load of users, ensuring that response times are within acceptable limits as defined by the customer.
How is stress testing different from load testing?
-Stress testing involves pushing the application beyond its normal load limits to find the breaking point, whereas load testing checks if the application meets performance requirements under expected user load.
What is soak testing, and what is its purpose?
-Soak testing involves running the application under a continuous load for an extended period to assess how it behaves over time, ensuring it remains stable under sustained usage.
What aspect of an application does volume testing focus on?
-Volume testing examines how an application handles large volumes of data, particularly its database, to ensure the system remains functional as data size increases.
What is spike testing, and when is it used?
-Spike testing is used to evaluate how an application reacts to sudden increases and decreases in user load, ensuring it can handle abrupt spikes in traffic without crashing.
What are the key benefits of non-functional testing?
-Non-functional testing ensures that an application is reliable, performs well under different conditions, is scalable, and can handle high user loads without compromising response time or stability.
Outlines
π Introduction to Non-Functional Testing
This paragraph introduces non-functional testing, emphasizing its importance in interviews and real-world projects. It explains that understanding non-functional testing helps in distinguishing between functional and non-functional aspects of testing in software. It also highlights that this tutorial will help individuals better understand these concepts, especially if they aim to explain them in interviews. The difference between functional testing, which checks if features meet customer requirements, and non-functional testing, which assesses performance like response time and stability, is introduced.
βοΈ Key Concepts: Responsiveness and Stability in Non-Functional Testing
This section provides a detailed comparison between functional and non-functional testing using an e-commerce website example. It explains how non-functional testing focuses on aspects like the application's responsiveness and stability under various conditions. The example illustrates how non-functional testing evaluates response times, such as how quickly a registration page loads or how long it takes to complete a process, highlighting the difference from functional tests, which only check if a feature works as expected.
π Responsiveness and Stability Testing
Here, the focus shifts to the testing of an application's responsiveness and stability, particularly under high load conditions, like during a festive sale on an e-commerce site. It explains how non-functional testing is crucial to ensuring that the application performs well under such circumstances. Key performance indicators such as response time, processing time, and concurrent user volume are introduced as essential factors for verifying the application's performance.
β³ Performance Indicators in Non-Functional Testing
This paragraph expands on key performance indicators used in non-functional testing, including response time, processing time, and concurrent user volume. It provides examples of how slow response times during peak user activity can negatively impact user experience. This section also emphasizes the importance of measuring these indicators to ensure the reliability and robustness of an application during high traffic periods.
π Types of Non-Functional Testing
The types of non-functional testing are introduced here, including load testing, stress testing, soak testing, volume testing, and spike testing. These are explained as key methods for assessing performance. The section sets up the structure for a deeper dive into each type of test, outlining that these methods ensure the application meets both customer expectations and handles extreme conditions.
π‘ Load Testing Explained
Load testing is explained as the process of verifying an applicationβs performance when it is used by a large number of concurrent users, based on customer requirements. An example is given of using tools to simulate 5000 users accessing an e-commerce website to ensure response times are under 5 seconds. This helps verify if the application can handle the expected user load efficiently.
π₯ Stress Testing: Pushing the Limits
Stress testing is described as pushing the application beyond its normal load, gradually increasing the number of users until the application breaks. The goal is to identify the point at which the system crashes, such as when it exceeds 50,000 users. This method helps determine the maximum capacity the application can handle before failing.
β±οΈ Soak Testing: Long-Term Load Testing
Soak testing is a form of load testing performed over an extended period. It checks how well an application performs when subjected to a continuous load for several hours or days. The example provided involves 5000 users accessing the system for five days, ensuring that the application can handle prolonged usage without performance degradation.
ποΈ Volume Testing: Database Performance Under Load
Volume testing focuses on the application's database performance when it reaches maximum capacity. It ensures the system can still function effectively as the database fills up. For instance, when an e-commerce site's database reaches its size limit, volume testing assesses how the application behaves under such conditions to prevent crashes or slowdowns.
π Spike Testing: Sudden Load Increases
Spike testing examines how an application handles sudden increases and decreases in user load. Unlike load testing's gradual ramp-up, spike testing involves sharp fluctuations in user activity to simulate real-world scenarios, such as a flash sale. This testing evaluates how the application responds to sudden changes and ensures stability despite rapid spikes in usage.
π― Non-Functional Testing Summary
The tutorial concludes by summarizing the importance of non-functional testing in verifying an application's reliability and robustness. It highlights that understanding performance indicators and types of testing, such as load, stress, soak, volume, and spike testing, is crucial for both interviews and real-life projects. Non-functional testing ensures that applications perform efficiently under different conditions, safeguarding user experience and system stability.
Mindmap
Keywords
π‘Non-functional testing
π‘Functional testing
π‘Response time
π‘Stability
π‘Load testing
π‘Stress testing
π‘Soak testing
π‘Volume testing
π‘Spike testing
π‘Concurrent user volume
Highlights
Introduction to non-functional testing and its importance in interviews and projects.
Difference between functional and non-functional testing: functional testing tests specific features, while non-functional testing assesses responsiveness and stability.
Explanation of how non-functional testing focuses on the application's performance, such as response time, under specific conditions like load.
Responsiveness and stability are key factors in non-functional testing, especially during high traffic periods (e.g., festive sales on e-commerce websites).
Performance indicators like response time, processing time, and concurrent user volume are crucial in non-functional testing.
Definition and purpose of load testing: verifying if the application performs as expected under a specified number of concurrent users.
Stress testing explained: pushing the system beyond its normal load to determine the breaking point where the application fails.
Soak testing simulates continuous load over an extended period (e.g., days) to ensure the application handles sustained pressure.
Volume testing targets database capacity, assessing how well the application performs as the database fills up.
Spike testing involves sudden increases and decreases in user load to verify how well the system handles these fluctuations.
Non-functional testing verifies the reliability, robustness, and performance of applications under various conditions.
Understanding different non-functional testing methods helps in both interview scenarios and practical project applications.
Tools are used to simulate thousands of concurrent users during load and stress testing.
Explanation of non-functional testing types: load, stress, soak, volume, and spike testing, with examples of how each type is used in real-world scenarios.
Non-functional testing ensures the system can handle high load conditions without crashing or experiencing long response times.
Transcripts
hello everyone welcome again in the
software testing tutorial
we are going to learn non-functional
testing
now understanding non-functional testing
is really important in terms of
interview or even if you are working in
any project you need to have a better
understanding of
what non-functional testing is what are
types of non-functional testing
and why do you need to do non-functional
testing right so because
when you understand all the concepts
then within your project you will be
able to easily
understand what all functional and
non-functional testing is being done
uh when somebody asks you about a
different terms of non-functional
testing and what exactly
that means then you will be able to
explain easily and understand
easily the conversation and discussions
right and if you are
trying to get into the non-functional
testing space
then that this tutorial will help you a
lot to understand
those concepts so that you can explain
those in the
interviews okay so let's uh start the
non-functional testing
prior to that i'll cover briefly about
the functional testing so in the
functional testing in the previous
tutorial we have understood
that functional testing is testing the
functional aspects of
the application or the software so what
are the functional aspects so functional
aspects
are the requirements that you get from
the customer okay say i'll take an
example of e-commerce website again so
e-commerce website
registration functionality registration
functionality is
the feature or the requirement given by
the customer to build
that registration functionality so when
you are testing the registration
functionality you are trying to launch
the registration form provide the
details and click on register link
that testing is the functional testing
now when
we talk about the non-functional testing
non-functional testing
tests the responsiveness and stability
of
the application right so when you are
testing about
uh how the application uh is responding
or how stable the application is
then those aspects are the
non-functional aspects of
the application right so say for example
this is the registration page for
example of an e-commerce website and
this is the link register link right
when i click on register link then it
will open
at the register form wherein i have all
the details of first name last name all
the details and then
i have to click on register button and
once i click on register button
my user details whatever details i have
provided
i should be registered and should be
redirected to the
dashboard page right so this is
something which is
functional aspect now the non-functional
aspect of the same operation would be
when i click on register button
or register link how much time or what
is the response time
to open the registration form right so
if
i am looking for this particular
response time say for example it is
taking you know two seconds
um then if i'm verifying this particular
aspect
the response time when i click on
register link
to open the register registration form
then
this is known as non-functional testing
if i'm interested into
the response time of particular
operation then that is non-functional
aspect
of the testing similarly once i click on
register
button here after filling out all the
details
how much response time it took to
basically redirect me to the
dashboard page so that is the response
time i am verifying so this type of
testing that you do
to verify the response to verify how
stable
application is that is non-functional
testing right so i'll cover
this non-functional testing a lot more
data but this is brief
um you know introduction what exactly
non-functional aspect is
there are many more non-functional
aspect that you'll be verifying in the
non-functional testing
right so responsiveness or response time
is one
factor of it so that is
um the brief now let me
um so the first thing we check is the
responsiveness
so i'll write responsiveness
of the application and then second
is the stability right so when we say
responsiveness
how the application is responding
on a particular condition or the load so
for example
in the festive season e-commerce website
have
lots and lots of load right so there
will be lot of
people who will be buying the items from
amazon from ebay so during the festive
season
there will be thousands and thousands of
users
concurrent users at one particular time
to buy the item or
say for example there is a sale declared
or
there is a sale on a particular you know
day then on that particular day there
will be
a huge amount of users or spike of users
on the website and then
in that particular condition how the
application is responding so when you
are verifying the responsiveness
then that is the non-functional aspect
and that is non-functional testing
whether your
application is stable in those heavy
load condition
if you are verifying the responsiveness
and stability this is
non-functional testing in the
non-functional testing what are
uh some of the you know performance
indicator basically so when you do
non-functional testing you verify
certain things so there are many
performance indicator
but i'll cover the the most common one
so the first one is basically the
response time right
so you verify the response time
so based on say for example 10 000 users
our concurrent users are accessing
uh ebay website at one particular time
how is the response time for the user
that is trying to access at
that particular peak time right so
whether the website is loading within
five
seconds or it is taking you know one
minute
okay so if this is not acceptable if
this is you know
taking a lot of time there will be a lot
of users frustrated and they'll leave
the site and
they won't access it right so this is
what basically the response time is all
about so
when uh you know during a peak load of
time
peak load what is the response time and
normally what is the response time so
if you are verifying the response time
so that is one of the factor in
non-functional testing or the
performance indicator
the second one is the processing time
right so processing
time so when we say processing time how
much time it takes to process say for
example
a customer came to the website and
they added the order they added items in
the order and
submitted the order made the payment so
after making the payment
how much time it took to process that
whole
payment and send the response back to
the customer
so that is the process time or
processing time um
so this is one of the second indicator
that you mostly check into the
non-functional testing or the
performance testing
uh the third one is uh the concurrent
user volume
right so concurrent
user volume okay so concurrent user
volume we've already touched base on it
so
say for example there is a sale going on
there will be thousands and thousands of
content user
trying to buy the on sale items on the
e-commerce website
so you verify the responsiveness and
stability of the application
during you know concurrent user volume
or when there are lots and lots of user
at one particular time so
these are some of the performance
indicator and in the non-functional
testing of performance testing
you basically verify how reliable your
application is how robust it is
so all these are some of the factors you
consider in the non-functional testing
now let me cover what our main type of
non-function testing of performance
testing
that we do so performance testing is one
type of non-function testing
and within performance testing there are
many subtypes right so
uh the main subtypes
will cover in this particular tutorial
and then i'll also cover
those subtypes with example in upcoming
tutorial
right so let me remove this
and the first non-functional testing or
um you know the performance testing i
want to cover is load testing
right so load testing this is very
common
um you would have heard so let me write
all of those so load
and then stress testing so these are the
common types of non-functional testing
or the performance testing that you will
hear
and you need to understand all these in
detail right so that you can explain to
the interview
the third one is soak testing
so soak testing
fourth one that will explain is volume
testing and fifth one
is spike testing
okay now let's start with
load testing so say for example you have
the e-commerce website okay and in this
particular application
your customer has given you the
non-functional requirement
say i want this particular application
to work perfectly fine if
up to 5000 concurrent users right so
five
up to five thousand concurrent users the
response time
for this particular website should be
less than
you know five seconds okay
so in this particular case what
you do in load testing is basically you
verify
that when the 5000 concurrent users are
accessing this particular application
the response time that you are getting
should be less than
five seconds so when there are five
thousand concrete user accessing
the particular website so uh in the
manual scenario what you can
think of is say for example you 5000
people
accessing ebay.com right or any
application that you are trying to build
and when you are the 5000 user
um and you for you the response time
should not be more than five seconds
but in the actual scenario in the real
testing it is not possible to have the
5000 confident physical user trying to
hit
the server it is only possible in the
production so in the testing scenarios
what is done is
the usage of tool is there so with the
tool
uh the 5000 concurrent threads are being
you know created and this um
you know simulates the user's 5000 users
and the response
time is checked whether it is less than
5 second
right so this is what
your load test is all about so testing
the performance of the application on a
particular load that is given by the
user
so if your application is performing or
the response time
is within the accepted limit as provided
by the customer
then your load testing is fine so this
is what load testing
is now when we talk about the stress
test
okay so now load test is verifying that
the response time is within the
expected limit uh when there are 5000 so
for example concurrent users which is
the requirement from the customer
in terms of stress testing what we do is
we verify
the we stress the system
or we increase the number of users and
verify
at which particular point of time the
application will break okay so for
example
uh the requirement is 5000 users and the
response time should be less than five
second
now this is what you will verify in load
test but in stress test what you will do
is you
increase the users to 6000 users and
then say for example once you increase
it to 6000 users
the response time was say 6 seconds
right then you will increase it to 7000
response was eight seconds
so you will keep doing it until the
application
breaks okay so you you just keep making
note of what is the response time and
what is the point when the application
crashes crashes
okay so for example here you have now
increased to
you know 50 000 users concrete users
trying to access the particular website
and the response time is one 1.5
minute okay so this is very high
response time but you keep
increasing the load okay so you keep
increasing the user
and say for example at 5 52 000
users you know the website crash so this
is the point that is basically the
crashing point
and this is what you do in the stress
testing
so in the load testing you verify as per
the customer's requirement the response
time should be within the limit but in
the stress testing you verify
how much load a particular application
is going to handle when you increase the
load
and up to what point the application is
going to
break all right so this is what you do
in the
stress test now coming back
to the soap test
right so in the soak test what you do is
so as we have done in the load test in
the soap test
you run the load test up to
in in the longer duration or up to
extended period of time
right so for example the requirement was
5000 users concurrent users
response time should be less than five
seconds okay
now what you do is uh soap test is
basically
you create five thousand concurrent
users
accessing that particular website and
that test
runs for couple of hours or a couple of
days based on requirement
okay so say for example uh this test
needs to run
for five days okay so
first day and then second third
fourth and fifth okay so you create
the load here of 5000 users
okay and then that
load continues for
five days and you test that the
different
operations with that load for
up to five days when you do that type of
testing it is known as soap testing so
basically you are
uh you know running the test for
extended period of time on the peak load
okay so that is what so testing is all
about
then if we talk about the volume testing
now volume testing is
mostly it's it's relevant for the
testing of the database of the
application
right so here we are more concerned load
stress and so we are concerned about the
users
concurrent users accessing the website
or the portal
but when we talk about the volume
testing it is about the
size of the database or when you
input a lot of data into the database
or you fill the data
completely or reduce the size of the
database
right uh not not reducing the size
basically say for example
your database size is of you know 5gb
and for that 5gb database you fill it up
and then verify how the application
behaves
then that particular you know type of
testing or the non-functional testing is
known as volume testing so this is
important because
say for example you have the e-commerce
website and when you start
getting lots and lots of order your
database or the
or database will fill right so once your
database
is full or near full how the application
behaves or what is the point when the
when the application will crash so that
sort of testing is also important
say for example the the space is not
left the
database is full then how the
application will behave
right so that is the volume testing now
spike testing is another
type of testing uh non-functional
testing what
you do in this pipe testing is uh in the
load testing we have
the load of 5000 users so basically how
we create
the load test is so there's a ramp up
and then as soon as so in the ramp of
phase the number of users or the threads
are increased and up to 5000 users
with the tool and then you know you have
this 5 000 users
you do the test and then you ramp down
right
now in the spike test what happens is
there are sudden spikes of users and
then sudden
you know reduction of the user so what
happens is suddenly there will be
like 5000 users and then there will be
you know like no user
or reduced to the half and then sudden
increase to the user to the 10 000
and then reduction to zero and again so
there is a spike
of users on the application and then
reduction of the users
from the application and then verify how
the application is performing
in that particular scenario so that is
known as pi
testing so these are some of the
non-functional testing there are many
more
non-functional aspects in non-functional
testing but
in terms of interview these are the five
key
uh you know non-functional testing that
should be good enough for you to explain
what exactly non-functional testing is
and
why non-functional testing is required
in any application so non-functional
testing is required to
you know verify the reliability how
robust the application is right so as we
have seen
basically what will be the response time
whether whether the application is
available
on the high load or high volume or if
the database is
full or near full so these are some of
the scenarios that you can explain
in your interview when somebody asks you
about
what is non-functional testing and what
are types of non-functional testing that
are commonly
uh used and you will hear very commonly
in your project
okay so that's all for this tutorial
hope it was helpful
please do share and subscribe and thank
you very much for watching
Browse More Related Video
Software Testing Tutorial #16 - Types of Software Testing
Software Testing Tutorial #17 - What is Functional Testing
ISTQB FOUNDATION 4.0 | Tutorial 18 | Test Types | Functional Testing | Non-Functional Testing | CTFL
CH02. L02. Test-types
Software Testing Tutorial #28 - End to End Testing in Software Testing
Manual QA: Testing for Beginners - Types of QA Testing - Part 9
5.0 / 5 (0 votes)