Manual QA: Testing for Beginners - Types of QA Testing - Part 9
Summary
TLDRIn this QA tutorial, Alex USA Days discusses various types of software testing, including black box, white box, and gray box testing. He also covers positive and negative testing, functional and non-functional testing, and common types like acceptance, regression, API, exploratory, boundary, smoke, and beta testing. The video also touches on stress, load, accessibility, localization, and security testing, highlighting their importance in the QA process. Alex encourages viewers to explore the provided links for a deeper understanding of each test type.
Takeaways
- 📚 There are over 100 types of software testing methods, but QA professionals typically use around five to seven main types.
- 🔍 The three main categories of testing are Black Box (no access to internal code), White Box (access to internal code), and Gray Box (partial access to internal code).
- 🔑 Positive testing checks the application works as expected under normal conditions, while negative testing simulates incorrect user actions to see how the application handles errors.
- 🔄 Functional testing is based on requirements and acceptance criteria, ensuring the application performs its intended functions.
- 💡 Non-functional testing focuses on the system's stability, performance, and security rather than its features.
- 🎯 Acceptance testing confirms that features meet business requirements and are ready for release.
- 🔄 Regression testing is crucial for verifying that new changes or bug fixes do not break existing functionality.
- 🌐 API testing checks the communication between the front end and back end of an application.
- 🔍 Exploratory testing relies on the tester's experience to discover bugs by navigating and interacting with the application in unconventional ways.
- 🚦 Boundary testing verifies the application's behavior at the edge of input value ranges, ensuring it correctly handles minimum and maximum values.
- 🌬️ Smoke testing is a preliminary check to ensure the basic functionality of an application is intact before proceeding with more detailed testing.
Q & A
What is the primary focus of the video by Alex USA Days?
-The video focuses on explaining various types of software testing, their purposes, and how they are conducted within the quality assurance process.
How many types of testing are mentioned in the video?
-The video mentions around 100 different types of testing, but emphasizes that one doesn't need to remember all of them, just be aware of their existence.
What are the three main categories of testing discussed in the video?
-The three main categories of testing discussed are black box testing, white box testing, and gray box testing.
What is the difference between black box and white box testing?
-Black box testing is when you have no knowledge of the system's internal workings, while white box testing involves having access to the code and understanding the internal functions.
What is meant by positive and negative testing?
-Positive testing, also known as happy path testing, verifies the application's functionality as intended by the user. Negative testing involves providing invalid input or performing unexpected actions to see how the application handles them.
What is the purpose of functional and non-functional testing?
-Functional testing checks the application against its requirements and acceptance criteria, ensuring it performs its intended functions. Non-functional testing focuses on the system's stability, performance, and other attributes that don't directly relate to its functionality.
Why is acceptance testing important?
-Acceptance testing is crucial as it verifies that features are implemented according to business requirements, ensuring the application meets the expectations of the end users.
What is the role of regression testing in the QA process?
-Regression testing is performed to ensure that new changes, bug fixes, or releases have not introduced new issues or broken existing functionality.
Why is API testing considered important in the context of automation testing?
-API testing is significant in automation testing because it verifies the communication between the front end and back end. It's a good starting point for those looking to transition from manual testing to automation.
What is exploratory testing and how does it differ from other testing methods?
-Exploratory testing relies on the tester's experience and approach to discover bugs by navigating outside of standard testing processes. It's less structured and more flexible compared to other testing methods.
Can you explain the concept of boundary testing with an example?
-Boundary testing involves verifying the boundary values of input ranges. For example, if an application allows use only for individuals aged between 21 and 100, boundary testing would check that a 21-year-old can use it (positive test), a 20-year-old cannot (negative test), a 100-year-old can (positive test), and a 101-year-old cannot (negative test).
What is the significance of smoke testing in the QA process?
-Smoke testing, also known as sanity testing, is an initial verification to ensure that major functionality of the application works as expected. It's a preliminary check to determine if the build is stable enough to proceed with further testing.
What are the differences between closed and public beta testing?
-Closed beta testing involves a limited number of users, while public beta testing is open to everyone. Both are conducted in a production environment to identify issues before the final release.
How does stress testing differ from load testing?
-Stress testing aims to determine the stability and performance of an application under heavy loads or prolonged usage to find its breaking point. Load testing, on the other hand, measures how a system performs under expected heavy loads without the intention of breaking it.
Why is accessibility testing important?
-Accessibility testing is crucial to ensure that the application is inclusive and usable by as many people as possible, including those with disabilities, by verifying features like speech recognition and compatibility with reading systems.
What is the primary objective of security testing?
-The primary objective of security testing is to identify and fix system vulnerabilities and potential exploits early in the development process to prevent infiltration, data leaks, and cyber attacks.
Outlines
📚 Introduction to Testing Types and Test Plans
In this segment, Alex introduces the new module on quality assurance, focusing on various types of testing and test plans. Alex emphasizes that while there are over a hundred types of testing, one doesn't need to remember all of them but should be aware of their existence. The main types discussed include black box, white box, and gray box testing, which differ based on the tester's access to the internal code and workings of the software. Black box testing is manual and code-agnostic, white box testing involves coding knowledge and access to the codebase, and gray box testing is a mix of both. Alex also mentions positive and negative testing, functional and non-functional testing, and provides resources for further reading.
🔍 Common Testing Types and Their Applications
Alex continues by discussing common testing types encountered in the QA industry. Acceptance testing is highlighted as a crucial process to verify features against business requirements. Regression testing is also emphasized, with a focus on its role in confirming that bug fixes do not break existing functionalities. API testing is noted as a growing area, especially for those moving into automation. Exploratory testing is described as a more freeform approach based on tester experience, while boundary testing is explained with examples like age limits for using machinery. Smoke testing, or sanity testing, is introduced as preliminary verification before full QA begins.
🚀 Advanced Testing Concepts
This part delves into more advanced testing types. Beta testing is explained as early verification in a production environment, with a distinction between closed and public beta testing. Stress testing is introduced to assess stability and performance under heavy loads, while load testing focuses on how a system performs under expected limits. Accessibility testing ensures that applications are inclusive, and localization testing verifies that applications are suitable for different language and regional settings. Security testing is also covered, aiming to find and fix vulnerabilities before they can be exploited.
🛠️ Developer Testing and Integration Testing
Alex concludes the discussion on testing types by differentiating between QA testing and developer testing. Unit testing, performed by developers, is described as functional verification at the smallest level, ensuring individual functions operate correctly. Integration testing is also explained, involving multiple functions or modules working together. The importance of these tests in ensuring system components work harmoniously is highlighted.
👋 Closing Remarks
In the final paragraph, Alex wraps up the video with a brief thank you to viewers, encouraging them to like, subscribe, and comment if they have any questions or topics to discuss. He mentions his intention to continue posting content on becoming a QA tester, covering both manual and automation aspects.
Mindmap
Keywords
💡Quality Assurance (QA)
💡Black Box Testing
💡White Box Testing
💡Gray Box Testing
💡Positive Testing
💡Negative Testing
💡Functional Testing
💡Non-functional Testing
💡Regression Testing
💡API Testing
💡Test Plan
Highlights
Introduction to different types of testing in quality assurance.
There are over 100 types of testing, but you only need to be aware of the main types.
Main types of testing include black box, white box, and gray box testing.
Black box testing is manual testing without access to the code.
White box testing involves access to the code and requires coding knowledge.
Gray box testing is a mix of black and white box testing.
Tests can be categorized as positive or negative.
Functional testing is based on requirements and acceptance criteria.
Non-functional testing focuses on system stability and performance.
Acceptance testing verifies features against business requirements.
Regression testing involves re-running scenarios after a bug fix or release.
API testing verifies communication between front end and back end.
Exploratory testing relies on testers' bug discovery approach.
Boundary testing verifies boundary values for inputs.
Smoke testing is preliminary testing to verify major functionality.
Beta testing is early version verification in a production environment.
Stress testing verifies stability and performance under heavy loads.
Load testing measures system performance under expected load volumes.
Accessibility testing ensures inclusiveness for as many people as possible.
Localization testing verifies usability and content translations for specific regions.
Security testing searches for system vulnerabilities and exploits.
Dev testing includes unit testing and integration testing.
Encouragement to explore the provided links for more types of testing.
Transition to discussing test plans and their creation.
Transcripts
hello everyone this is Alex USA days and
we're continuing with our journey lower
quality assurance from scratch so now
we're moving into a new module today
we're going to talk about types of
testing but it also has a little bit
about test plans and with the last video
we actually completed a sectional
development Technologies Okay so
there are about 100 different types of
testing even more than that there's a
lot you don't have to remember all of
them uh you just need to be aware that
they exist
we will talk about the main test uh the
main types of tests that perform during
QA it is really hard to cover in a short
video everything so I will provide links
in the description to this video where
you can where you can read more about
what kind of tests there are what kind
of tests exist
one will be to the guru 99 the other
will be to atlassian website uh
essentially you will probably maybe use
like five six seven different types uh
what kind of tests you will be what kind
of types you will be running will
greatly depend on the application you
will be testing uh customer the end the
end user who is designed for by whom and
so on so there are really a lot of
variations what kind of product you're
testing uh what kind of tests you will
be running
but on the highest level I think you can
break it up into those categories
so you will you can have black box white
box or gray box testing where black box
you provide input and then you get some
output back you verify this output you
have knowledge no knowledge of the
system so Black Box term actually comes
from programming where it means exactly
the same thing you receive some sort of
a system that you need to work with but
you have no clue how it works inside you
can't really look in the code uh so
Black Box testing is mostly like manual
testing without access to the code then
there's white box testing and um with
white box testing you do actually have
access to the code you know what's going
on inside you know the functions are
running
um and maybe you even work in the same
repository alongside with developers
maybe you're doing some automation so it
involves a good extent of coding
knowledge understanding the base the
code base of the application what it's
doing and then there's a gray box
testing where you maybe have some access
to code at some place at other places
not
it's mix of both or maybe you're just
testing something in between so you
don't really know what's going on on the
back end but you do work with API so uh
so gray box testing is essential like
mix of books when you testing front-end
back-end looking at the code or not
looking the code so it's a mix of
everything
then you can break up all the tests in
positive negative tests where positive
tests are
they also hold happy happy pass tests so
you verify what user is supposed to do
so if user needs to log in or they
provide proper login and password they
log in if the user needs to create new
account they have to have certain
complexity for the password certain
links maybe certain symbols are not
accepted uh negative testing is actually
acting like users that doesn't really
know what it's he's doing or trying to
kind of break the application or see
what happens if you provide some invalid
input do some unexpected actions from
the user and see how the application
handles it so in our example of
invalid login like we had valid as a
happy pass and valid login you try to
provide invalid password and verify that
the actual error comes up or when you
try to create an account in the password
you start typing out invalid characters
when you're trying to create new
passwords so it also should gracefully
handle it and and show some errors to
the user
then there's there's functional and
non-functional testing
so those also include a lot of different
tests different categories within them
but functional testing is the testing
where you test against the requirements
and it is an acceptance criteria based
testing so you want to look at the
actual functionality of application
what's supposed to do it includes unit
testing regression integration user
acceptance localization we'll talk about
those types of tests later and then
there's non-functional testing aware
verification of the system is more about
the stability and performance so it's
including stress testing performance
tests and load testing secure testing
and so on okay so this is like the
highest level now we're going to talk
about categories that armoire popular
and you most likely going to see them
almost in any company you work maybe a
little bit less of those or more but
this is very close to like having
everything that you're going to
encounter throughout your career
uh some of the things might not be here
now and or you might work for some
industry or startup that has some
specific testing so I definitely
recommend going into the description for
this video and checking out the links to
other types of testing just to get
familiar with them uh so you understand
there are more other possible test type
that exist okay one of the most common
types of testing that you're going to
see almost everywhere is acceptance
testing
so acceptance testing is essentially
verifying uh feature or features and
that they are implemented according to
business requirements you might also
have heard about user acceptance testing
so that's essentially the same thing you
have a story that you know in Works uh
developers finish it you do some uh
verification of the story and then you
know you're okay to be released it's
acting as described in the acceptance
criteria
uh then there's regression testing a
regression testing
they're they're
kind of two definitions of some of the
regression testing specifically evolves
or revolves around bugs that you verify
that you know nothing got broken after a
bug fix but I think uh in more
recent ways regression testing is like
standard for re-running through set of
uh scenarios after a bug fix deployment
or release uh if you're automating
regression tests and those collection
will be like the largest collection so
you'll have regression testing based on
the priority where you first will verify
P0 test case P0 being in like most
important that will be P1 P2 and P3 so
regression test suit essentially keeps
on growing you keep on adding testing
there making sure that you're covering
most or all of the functionality that
you want to verify uh once the
application is released
um if something gets outdated you know
your regression testing will get updated
and some of the tests will get removed
but this is one of the most typical
tests uh that you will be running
regression testing
uh then there is API testing not all of
the companies do API testing uh or they
do it in you know unlimited way some
companies maybe more API focused so if
you work as a manual engineer maybe
you'll not be touching API testing but
if you're looking to get into Automation
and grow I think starting with API
testing after manual testing is one of
the great ways to kind of dig in working
in that direction
so APS testing is mostly verification of
communication between front end and back
end nowadays but also essentially API
stands for application programming
interface and it is a middleware that
allows different programs to communicate
to one another so there's a layer
communication there's a communication
protocol there's a layer application
between
front-end back-end or two different apps
that will allow them to talk to one
another okay this is API this is
actually testing that part
then there's exploratory testing and
exploratory testing is verification that
relies on testers bug Discovery approach
around application functionality so you
as a tester for some experience you look
at the new application and you start
testing a little bit outside of your
normal testing process not your normal
regression or acceptance testing but
actually try to navigate yourself around
the application see what things you can
break how you can interact with them
differently that would be explorator
testing it is mostly based on the
tester's experience
um
then there's boundary testing uh
boundary testing is also quite common
and this is verification of boundary
values for example verification of
accepted age so
a good example would that would be for
example you can use some piece of
Machinery or some application only when
you reach 21 but you cannot use it if
you're older than 100 years old right so
your lower boundary will be uh 21 is
positive tests still accepted input 20
negative should not be accepted this is
your lower boundary for the acceptance
for the boundary testing right so if you
can use it started 21 on the lower
boundary you test 21 positive snare 20
negative on the upper boundary your
positive scenario would be 100 and your
negative snare would be 101 so 100
should still be accepted 101 should not
be accepted you can also throw in maybe
a scenario in the middle so let's say
50s still it's the fifth is still going
through but typically you'll see lower
boundary positive negative upper
boundary positive negative
um there is also something called Smoke
testing
um sometimes it's called
sanity testing sometimes they're
different every place will talk a little
bit differently about what smoke is or
sanit testing for them uh what I've
so through my careers signing testing is
mostly just some developers having some
build they're making sure this still
works properly before you handle it two
QA so like a very very initial
verification uh you know is my build
still is my app still launching kind of
a thing right smoke testing is uh
preliminary testing that where you
verify major functionality of the
application and that it works as
expected so you will you would load you
would log in you would I don't know if
you're using some specific application
let's say uh YouTube app you can post
the video leave a like and stuff like
that
essentially your smoke testing enables
everything else if smoke testing passes
that means all other types of tests you
can run those you can schedule those you
can do whatever but um
if small smoke testing fails means
there's something wrong you know the
build has to go back right
so smoke testing is required to enable
all other testing processes right you
don't want to start scheduling
everything until you know that your
build is pretty much stable
uh then there is a
type of testing called beta testing and
beta testing is early uh version
verification in production environment
so the environment that actual users
will be using on those servers and so on
uh there are two types of beta testing
there's closed beta which is will have
like limited number of users and there's
public beta that's going to be open to
all
um
beta is close to
release application is very close to
actually ready application but it's not
it's not there yet so the idea of the
beta testing that you will have people
try and test your system to find any
extra issues or unexpected things before
the big release and if you're into
gaming and you play uh games like either
I play ton of different games you know
there are a lot of beta testing oh and
you actually have to pay sometimes for
it so you would buy not in terms of
paying for the testing but you would buy
a game
early release or early package for the
game pay a good amount of money so also
you can get a chance to participate in
beta so you can pay you can play the
game a lot earlier than it's actually
going to be released okay
another common type of testing is stress
testing and stress testing is
verification of stability reliability
and performance of application under
heavy loads or
or and prolonged period of time uh
periods of time so
one example of stress testing would be
hey what if I have this YouTube
application and I'm trying to have
millions or billions of users launched
at the same time on different laptops
right machines and
phones and then maybe or there's a video
that I'm gonna try and play like for
hours and hours maybe 48 hours or 72
hours and see how it behaves right
depends what we're testing here is it
the app is it the system is it actual
the phone but stress testing essentially
is structured around
stability reliability and performance
application and seeing the limit how far
can you push it uh to break it right
this is stress testing how long you can
run the tests uh stress in the
application
then there's some more so there's load
testing it's kind of
close to stress testing but load testing
is measuring system how a system will
manage and perform under heavy load
volumes over time with an expected limit
so you're not actually your goal is not
to crash an application here not to
break it but just to make sure that it
handles the load properly like it's
doing what it's supposed to do uh and if
your website should handle thousand
requests at a time it should handle
sales requests it should not decrease
the performance or the performance the
response time uh will only increase in a
certain amount of a loud amount of time
so it's not going to be three or like
five minutes to load a page maybe a
couple of seconds right
then there's accessibility testing and
accessibility testing is verification of
inclusiveness of application for as many
people as possible so it includes speech
recognition reading system uh special
inputs and so on you can read a little
bit more if you're interested in that
specific testing about the accessibility
you can read the web content
accessibility guidelines but essentially
this is kind of very focused on specific
type of testing there are certain tests
like accessibility and localization
where you can have a dedicated QA doing
just that right focusing on those
specific features
then there's localization and it is
verification of usability accessibility
and content translations for a specific
language region so not only that it's
translated properly but it also makes
sense uh there's some maybe phrases that
are common for the region uh and the
overall application so it's going to be
different localization testing for
example Spain if you're trying to move
application from England and you know
create your branch in Spain
and then it's going to be different
localization testings for Spain versus
localization testing for Mexico because
the Spanish there is different right and
there's different
variations different things like a lot
of things that
specific to that region have to be
verified and there are also QA positions
that just do that localization testing
then there's security testing and
security testing is a search for system
vulnerabilities and exploits so they can
be fixed early uh for example
penetration testing that use different
tools to find weaknesses and imitate
attacks or there are tons of different
tools to uh perform uh different types
of security testing and now actually you
have a very specific Branch or
profession called cyber security
Specialists that do a lot of that
a lot of secure testing falls under
cyber security and cyber security is
actually designed to Prevail prevent
infiltration the ideal leaks and cyber
attacks where QA security is more into
finding issues during development if
there are security issues
uh and there are two other types of
testing that you're gonna hear a lot
about and they're very common but
they're not exactly QA type of tests uh
there is Dev testing where there they do
unit testing unit testing is
verification on functional level like
the smallest functions possible that
should be created by developers
alongside development effort so if you
know for example that password field
only accept letters and numbers and not
special characters a unit test that a
developer might write alongside of the
creating that function for the password
input that he'll try to pass along
special characters and the tests you
know should return at some sort of
meaningful error saying that they're not
allowed this is unit testing so they
create the tests around functions like
on Atomic very small scale right
and there's integration testing
integration testing when you have
multiple functions multiple modules
maybe multiple microservices that talk
to one another so developers would
actually build tests that will trigger
other services or other responses where
you verify multiple modules or functions
combined and you verify them as a group
so you know it's not just a plus b
equals c you also do some other
functionalities we'll see later on
involving the other modules and you know
your testing becomes more complex but
you need to do integration testing
because you need to understand that all
of the components of the system are
working properly this could be
integration testing on a functionality
level this can be also integration
testing on Hardware software level when
you try you know putting your
processor in different motherboards so
you kind of already like on the system
level now as a whole thing
uh so yeah that's in a nutshell uh I'll
probably pick a couple tests
specifically from this list that we're
going to talk a little bit more about
and I'll have additional slides uh ones
that you will see almost all the time
and then from that we will move uh into
test plans right what they are and how
you work with them how you get them how
they're created uh and yeah that's
pretty much that's pretty much it this
section is not going to be very long but
I definitely definitely recommend you go
into the description and I have uh
couple links there to show more types of
testing just read them get familiar with
them you don't need to remember them the
tests that I list here those definitely
you want to research more take notes so
like this whole list because those are
the test types of tests you're going to
be running most likely one or the other
out of that list when you join a company
right those are very common the rest
just gets familiar with them they're in
the link is in the description so you
are aware that they exist
okay so this was Alex USA days uh
hopefully you liked the video leave like
And subscribe uh leave a comment if you
want to talk about something and uh
you'll see more of those videos on how
to become QA tester from scratch from
manual and maybe some automation as well
uh I'll keep on posting like every every
weekend add more content okay thanks
everyone for watching and bye bye
浏览更多相关视频
ISTQB FOUNDATION 4.0 | Tutorial 18 | Test Types | Functional Testing | Non-Functional Testing | CTFL
CH02. L02. Test-types
Types of Testing in Software Engineering | Levels of Testing
ISTQB FOUNDATION 4.0 | Tutorial 36 | Value of White Box Test Techniques | CTFL Tutorials | TM SQUARE
CH05.L01 . Black box or white box testing
ISTQB FOUNDATION 4.0 | Tutorial 19 | Test Types | White Box Testing | Black Box Testing | TM SQUARE
5.0 / 5 (0 votes)