Functional Testing Mod 4
Functional Testing Mod 4
MOD-4
What is Functional Testing
• In functional testing, testers evaluate an application’s basic
functionalities against a predetermined set of specifications.
• Using Black Box Testing techniques, functional tests measure whether
a given input returns the desired output, regardless of any other
details.
• Results are binary: tests pass or fail.
• This testing focuses on checking the user
interface, APIs, database, security, client or server application, and
functionality of the Application Under Test.
• Functional testing can be manual or automated.
Why?
• Functional testing is important because, without it, you may not
accurately understand whether your application functions as intended.
• An application may pass non-functional tests and otherwise perform well.
• Still, if the application doesn’t deliver the key expected outputs to the
end-user, it cannot be considered working.
• The tester tests each entry function of the application to check all the
entry and exit points.
• The flow of the GUI screen is checked so that the user can navigate
throughout the application.
What to Test in Functional Testing?
• Basic Usability: This checks if users can easily navigate the app
without any trouble. It’s all about making sure the experience is
smooth.
• Main Functions: Functional testing also looks at the app is a core
features to verify they are working correctly, just as they’re meant to.
• Accessibility: This ensures the app is accessible to everyone, including
users with disabilities. It checks whether accessibility features are in
place and functioning properly.
• Error Handling: Lastly, it tests how the app handles errors. Are the
right error messages shown when something goes wrong? This part
verify users are informed when an issue arises.
Process
Type of Functional Testing
• Unit Testing:
Unit testing breaks down the desired outcome into individual units, allowing you to test if a small number of
inputs (sometimes just one) produce the desired output. These tests tend to be small and quick to write and
execute. Each one is designed to cover a single section of code (a function, method, object, etc.) and verify
that code’s functionality.
• Smoke Testing:
Testers perform smoke testing to verify that the most critical parts of the application work as intended. It’s a
first pass through the testing process and isn’t meant to be exhaustive. Smoke tests ensure that the
application is operational on a basic level. If it’s not, there’s no need to progress to more detailed testing, and
the application can go right back to the development team for review.
• Sanity Testing:
Sanity testing acts as a cousin to smoke testing, verifying basic functionality to potentially bypass detailed
testing on broken software. Unlike smoke tests, sanity tests occur later in the process to confirm whether a
new code change achieves its intended effect. This ‘sanity check’ ensures the new code roughly performs as
expected.
• Integration Testing:
Integration testing determines whether combinations of individual software modules function properly
together. Individual modules may already have passed independent tests, but when they are dependent on
other modules to operate successfully, this kind of testing is necessary to ensure that all parts work together
as expected.
• Regression Testing:
Regression testing makes sure that the addition of new code does not break existing
functionalities. In other words, did your new code cause the quality of your application to
“regress” or go backward? Regression tests focus on recent changes and ensure that the whole
application remains stable and functions as expected.
• User Acceptance Testing (UAT)/Beta Testing:
Usability testing involves exposing your application to a limited group of real users in a
production environment. Teams use feedback from live users—who have no prior experience
with the application and may uncover critical bugs unknown to internal teams—to make
further changes before a full launch.
• UI/UX Testing:
UI/UX testing evaluates the application’s graphical user interface. The performance of UI
components such as menus, buttons, text fields, and more are verified to ensure that the user
experience is ideal for the application’s users. UI/UX testing is also known as visual testing and
can be manual or automated.
• System testing:
It is a type of software testing that is performed on the complete integrated system to evaluate
the compliance of the system with the corresponding requirements.
• White box testing:
It is a type of software testing that allows the tester to verify the internal workings of the
software system. This includes analyzing the code, infrastructure, and integrations with the
external system.
• Black box testing:
It is a type of software testing where the functionality of the software system is tested
without looking at the internal workings or structures of the software system.
• Database testing:
It is a type of software testing that checks the schema, tables, etc of the database under
test.
• Adhoc testing:
It also known as monkey testing or random testing is a type of software testing that does
not follow any documentation or test plan to perform testing.
• Recovery testing:
It is a type of software testing that verifies the software’s ability to recover from failures like
hardware failures, software failures, crashes, etc.
• Static testing: It is a type of software testing that is performed to
check the defects in software without actually executing the code of
the software application.
• Component testing: It is also known as program testing or module
testing is a type of software testing that is done after the unit testing.
In this, the test objects can be tested independently as a component
without integrating with other components.
How to Perform Functional Testing
Definition Functional testing verifies the operations and Non-functional verifies the behavior of an
actions of an application. application.
Testing based on It is based on the requirements of the customer. It is based on the expectations of the customer.
Objective The objective is to validate software actions. The objective is to performance of the software
system
Requirements Functional testing is carried out using the Non-functional testing is carried out using the
functional specification. performance specifications.
Functionality It describes what the product does. It describes how the product works.