Software Testing Tutorial #17 - What is Functional Testing
Summary
TLDRThis tutorial introduces functional testing in software testing. It explains how functional testing focuses on verifying the functionality of an application, using Gmail as an example. The tutorial walks through testing processes such as account creation and email composition, highlighting the steps involved in manual testing. Functional testing ensures that the application's requirements are met without concern for performance or speed. The video also touches on how functional testing can be automated using tools like Selenium, and mentions that it is a type of black box testing.
Takeaways
- 😀 Functional testing verifies the functionality of an application.
- 📧 An example used is creating an account in Gmail, which involves steps like launching the site, providing user details, and verifying account creation.
- 🧪 Functional testing focuses on the functional aspects, not non-functional aspects like response time or performance.
- 🔍 Functional requirements are derived from customer or end-user needs and market research.
- 📄 Testing steps are written as test cases to verify that each requirement is fulfilled by the application.
- 📝 Each test step, like launching a site or filling out user details, is verified as part of functional testing.
- 🛠 Functional testing can be automated after manual verification using tools like Selenium.
- 🔒 Functional testing is considered black-box testing, where the tester doesn’t need to understand the internal code.
- 📊 Functional testing is one of the first steps in software testing, especially for beginners.
- 📧 Testing the Gmail example includes functionalities like account creation, email composition, and editing features.
Q & A
What is functional testing?
-Functional testing is the process of testing the functionality of a software application by verifying that it meets the specified requirements. It focuses on checking whether the application performs its intended functions correctly.
How is functional testing different from non-functional testing?
-Functional testing focuses on verifying that the software functions as expected, while non-functional testing assesses aspects like performance, scalability, and security. For example, functional testing checks if you can create an account, whereas non-functional testing evaluates how fast the account is created.
Can you give a real-life example of functional testing?
-A real-life example of functional testing is testing the 'create account' feature in Gmail. The tester verifies that after launching the Gmail website, clicking 'create account,' and entering the necessary user details, the account is successfully created.
What are some typical steps in a functional test case for Gmail's 'create account' feature?
-Typical steps include: launching Gmail's website, clicking on 'create account,' supplying user details (such as first name, last name, email, and password), and clicking the 'create account' button. Each step is verified to ensure proper functionality.
What does a functional tester verify when testing a feature like 'compose email' in Gmail?
-A functional tester verifies that after creating an account, the user can compose an email. The tester checks functionalities within the email editor, such as typing text, formatting options, attaching files, and sending the email.
Why is functional testing important in software development?
-Functional testing is important because it ensures that the software works as intended, meeting the user's requirements and providing a good user experience. It helps identify bugs and issues early in the development process.
What is black-box testing, and how does it relate to functional testing?
-Black-box testing is a testing approach where the tester does not need to know the internal workings of the application. In functional testing, black-box testing is often used, as the tester focuses only on verifying the software's functionality based on user inputs and expected outputs.
How can functional testing be automated?
-Functional testing can be automated by using tools like Selenium to write scripts that mimic user actions (e.g., clicking buttons, filling out forms). Once the functional steps are automated, they can be run repeatedly without manual intervention, saving time and effort.
Who are the 'customers' when referring to functional testing?
-The 'customers' can either be end-users (like the general public in the case of Gmail) or internal stakeholders within a company. Functional testing ensures that the software meets the needs and expectations of these customers.
Why is it important to perform manual functional testing before automation?
-Manual functional testing is important before automation because it allows testers to verify that the core functionalities are working correctly. Once these tests pass, they can be automated to ensure that future changes do not break existing functionality.
Outlines
🔍 Understanding Functional Testing
In this introduction, the speaker begins by explaining functional testing, building on prior discussions about different types of testing. Functional testing focuses on validating the functionality of an application, ensuring it works as expected. The speaker introduces a real-life example using Gmail, explaining that functional testing verifies whether the account creation feature works correctly. They emphasize that functional testing does not focus on performance aspects like how long the account creation process takes, which would be part of non-functional testing.
🖥️ Practical Example of Functional Testing in Gmail
The speaker walks through a step-by-step example of functional testing using Gmail. Starting with launching the Gmail website, the speaker explains how to create an account by entering user details and verifying if the account is successfully created. This practical example illustrates how testers follow a series of steps (test cases) to ensure that a feature like account creation works properly. Each step is verified individually, and if successful, the test passes.
✅ Test Case Steps and Verification in Functional Testing
This section delves deeper into test case creation and execution for functional testing. The speaker explains how each step in the test case (such as launching Gmail, clicking 'create account,' and entering details) is considered a 'test step.' If these steps are completed successfully, the test case passes. The focus is solely on verifying functionality, and non-functional aspects like performance are not considered at this stage.
🚫 Distinction Between Functional and Non-Functional Testing
Here, the speaker clarifies the key difference between functional and non-functional testing. In functional testing, the goal is to ensure that a feature, like account creation, works according to requirements. In contrast, non-functional testing deals with other aspects such as performance, like how quickly the account creation process occurs. Functional testers focus only on the correctness of the functionality, not on how fast or slow it operates.
📋 Functional Requirements and Testing in Real Projects
In this part, the speaker elaborates on how functional requirements are established in real-world projects. For instance, in the case of Gmail, requirements like 'create account' and 'compose email' are derived from customer needs or market research. These functionalities are then built and tested. The speaker emphasizes that functional testing involves verifying whether these requirements have been correctly implemented, using detailed documentation that specifies expected outcomes.
🧑💻 Manual Functional Testing and Its Importance
The speaker highlights that functional testing is typically manual at the start of a tester's career. Functional testing is a crucial step, involving the manual verification of various features of an application. Since it's a form of black-box testing, the tester focuses solely on inputs and outputs without worrying about the internal workings of the software. The speaker also notes that functional testing is important before any automation is applied.
⚙️ Automation of Functional Testing
In this final section, the speaker discusses the potential for automating functional testing. Once the manual testing of a feature is completed successfully, tools like Selenium can be used to automate repetitive test cases. This automation reduces the need for manual effort in subsequent testing cycles, making the process more efficient. The speaker emphasizes that automated testing ensures continuous validation of features without repeated manual intervention.
Mindmap
Keywords
💡Functional Testing
💡Non-Functional Testing
💡Test Case
💡Requirement Verification
💡Black Box Testing
💡UI Testing
💡Automation
💡Gmail Example
💡Selenium
💡Manual Testing
Highlights
Introduction to functional testing, including its significance and core concept.
Difference between functional and non-functional testing is briefly explained.
Functional testing is described as verifying the functionality of an application.
A real-life example using Gmail's account creation process is provided to explain functional testing.
In functional testing, the focus is on the steps followed to achieve a task, not on how long it takes, which falls under non-functional testing.
The Gmail account creation process is outlined, emphasizing how each step represents a functional test.
Explanation of how functional testing validates whether the system meets the user's requirements.
The example also highlights the importance of verifying that each feature works as expected.
Functional testing is critical for validating that the software satisfies the functional requirements.
Testers perform functional testing by following predefined steps and verifying the expected outcome.
Functional testing is a type of black-box testing, focusing on the output without considering the internal code structure.
Functional testing can be easily automated using tools like Selenium, especially for repetitive tests.
Automation allows testers to run scripts and avoid manual testing once the functionality is verified.
Functional testing is often the first testing method for new testers before moving into automation.
The tutorial concludes with a reminder that functional testing ensures the features of the software work as intended, which can be later automated.
Transcripts
hello everyone welcome again in this
software testing tutorial
we are going to learn what is functional
testing
now in the previous tutorial i have
explained about the types of testing
already and i have briefly covered the
functional testing as well and
briefly uh also explain about the
difference between the functional
and non-functional testing now in this
tutorial what i'll cover
is i'll take the real example and i'll
show you
what exactly functional testing means
along with
the definition of functional testing now
if you see
the functional testing word itself
defines the functional
within it right so it's when we say
functional testing it's
where it's basically testing the
functionality of the application
now if you take any any example of an
application say for example i'll take an
example of the gmail
in this particular tutorial now when we
launch a website or gmail.com
in any browser if you don't have an
account you click on create
account then it redirects you to the
create account page where you can
provide all the username password all
details
and click on create account and it
creates account for you
right so this whole process that you
follow is basically
verifying or you know creating the
account or
this type of testing that you do in the
any test project is the functional
testing right
in this case you are not worried about
one
once you click on create account how
much time it takes
to actually create the account that's
the non-functional aspect of the create
account
functionality right so when we say
functional testing it is
verifying the functionality of an
application now how
will or how these functionalities are
being built now
usually in case of gmail say for example
we are the customers right the end users
are the customers
so we'll be having you know
customers so
customers right and if google is
building the gmail
or email client for the customers which
is basically
the general public then they will do a
basic research what all
things are missing in the application
right so usually
in the actual you know projects or many
projects that you would be working
in customers might be either the general
public
for example in case of gmail people like
us
who will be using gmail or customer can
be
a company and within a company there
could be you know like people
and the team who will be providing the
detailed requirements
to the organization
who is building any software right so we
are the customer let's take an example
of the gmail we are the customers the
end users
and what google has done
they they had done the market research
they have researched the existing
softwares that are available or the
email clients that were available at
that particular time
what all limitations were there and
based on that they came up with the
functionalities that we need to build
in that particular application right so
usually whatever requirements
are being built within the application
are the functionalities within the
application and when you are testing or
verifying those requirements
those are or that is known as functional
testing so
any verification of the requirement is
functional testing
so let's take an example here so what
i'll do is i'll take a couple of you
know examples of
gmail so usually if i talk about gmail
so gmail
let's say i have a functionality of
create account
okay and
then so create account functionality
or feature will
allow you to basically create the
account for gmail right so that you can
draft email and send emails right uh the
next functionality could be
after you create the account you should
be able to compose email right so i can
compose email
that is another functionality i can
you know have the functionalities or the
requirements around the editor so
once i click on compose email what all
functionalities editing functionalities
are available
in the email editor right so email
uh editor so
that can have a lot many more
requirements within it right so this is
high level requirement that i'm covering
and then uh you know send email right
so these are some of the um you know
functional requirement or the
requirements that
need to be verified in gmail right
so if you are verifying the this create
account so what you will do is you will
follow certain steps you will launch
so you launch the website
launch um you know gmail
okay and then you will click on
create account so click
create account
and then you will click on you will
supply all the details so supply
user details and in user details usually
like first name last name uh what email
you are looking for
the password etc so what all details are
required you supply all the user details
and then you click on create
account button right
so these are the normal steps that you
will follow to verify the account
creation is
being successful on gmail.com right so
this is usually
how the test case will look like so
you'll follow certain steps the process
and then you will verify the expected
outcome right so i'll cover how you will
write test cases as well
in future tutorials but just to explain
your functional testing
so we we are following certain steps
which is basically nothing in the
testing project it's the test case
and then based on those test cases we
verify whether that test
step has passed now each of these step
is a test step right so
whether these if i launch gmail it
should launch successfully if it is it
has launched
that means that test step has passed so
when a tester is performing all these
steps one by one
and verifying that these steps are being
passed that is what
functional testing is and functional
testing is verifying
these requirements or the requirements
that need that are built within the
application
right now when we talk about functional
testing
functional testing is not or the person
doing functional testing
is not worried about the non-functional
aspect for example how is the
performance
what is the response time right so you
don't need to worry about
the non-functional aspect of the account
creation so for example when i click on
create account button
i'm not worried about whether i'm
redirected after 30 seconds to the
actual account or three seconds right so
that
needs to be tested as part of the
non-functional testing
in the functional testing i'm just
worried about or i need to cover
that the steps that i follow or
the requirements that need that are
being built in the application
are being working properly or being
fulfilled by the application
developer or the development that has
been done as part of the application
now this is the live example that i have
taken but usually you can correlate
with the actual scenario so for example
i am a new organization and i have a
requirement to build something similar
to gmail this is
what i'll be getting as the requirement
so create account compose email
and in the requirements document all the
details will be provided right
so for example when create account
button what will be the
text on it and then in the supply user
detail
how the form will look like what all
fields will be there so all these
details will be provided
in those requirement and when as a
testing team or a test
team member i verify all those when i
run those test cases
okay so this is what functional testing
is
and function testing is a very important
aspect of software testing because most
of the time
when you start your career into into the
software testing
you'll be doing you know functional
testing first before
you can actually you know you know go
ahead and
automate the function testing right so
it's basically a manual testing
uh manual verification of the features
and
functional testing is black box testing
so i'll cover what exactly black box
testing it
is in upcoming tutorial as well right so
this is a brief about you know um
what the function testing is and uh
other important thing about function
testing is that it can be automated
easily so once
so for example you you follow all these
steps here right
so this is all ui you know that gmail
can be open in any browser so this is ui
there are a lot of tools to automate uis
selenium is very popular so you can once
you verify
that all these functionalities are
working fine
then you can use any automation tool
and go ahead and automate these steps so
that next time you can easily
run those scripts and you do not have to
perform manual testing of these
features or test cases again right so
this is a brief introduction about the
functional testing
what functional testing is and how you
can perform functional testing
within software um project all right
so that's all for this tutorial hope you
like it please do share and subscribe
and thank you very much for watching
浏览更多相关视频
Software Testing Tutorial #16 - Types of Software Testing
ISTQB FOUNDATION 4.0 | Tutorial 15 | Test Levels | System Testing | CTFL Tutorials | TM Square
Software Testing Tutorial #21 - What is Non Functional Testing
Software Testing Tutorial #18 - What is Black Box Testing
ISTQB FOUNDATION 4.0 | Tutorial 18 | Test Types | Functional Testing | Non-Functional Testing | CTFL
CH05.L01 . Black box or white box testing
5.0 / 5 (0 votes)