What Is Functional Testing?
Functional Testing is a type of software testing that verifies that each function of the software application. Each function of the system/application is tested by feeding them input and examining the output by comparing the actual results with the expected results. Functional testing primarily tests the mainline functions of a system.
Functional testing includes verifying UI, APIs, Database, and Security. It can be either automated or done manually.
What Do You Test In Functional Testing?
The principal objective of Functional testing is verification and validation.
Types Of Functional Testing
Unit Testing
Unit Testing is a software testing approach where the behavior of individual units/components of the software/application is tested.
Objective
The objective is to validate that each unit of the software performs as intended.
Component Testing
Component Testing is an approach of testing each component of the application individually without integrating it with other components. It’s also known as Module Testing.
Objective
The main objective is to verify the input/output behavior of each individual object.
Smoke Testing
Smoke Testing is usually performed after getting a software build to ensure that the critical functionalities of the program are working fine. It is also known as “Build Verification Testing”.
Objective
The goal of this testing is to determine whether a build is stable or not.
Integration Testing
Integration Testing is a level of software testing where individual units are consolidated and tested as a group.
Objective
The purpose of this testing is to detect defects in the interaction between integrated units.
Regression Testing
Regression Testing is defined as a type of software testing approach to confirm that a new code change has not affected existing features. Regression Testing is nothing but a selected execution of already executed test cases to ensure existing functionalities work fine.
Objective
The goal of this testing is to ensure existing functionalities not affected and working fine.
Sanity Testing
Sanity Testing is a type of testing performed after a minor software build/patch, with few changes in code/ functionality like a bug fix.
Objective
The goal is to check whether the intended functionality works as expected.
System Testing
System Testing is a type of software testing where complete application is tested.
Objective
The purpose of this test is to evaluate the system’s compliance with the specified requirements.
User Acceptance Testing
User Acceptance Testing is an approach of testing an application from the end-user or the client perspective to verify the usability and accessibility of the software system before moving to the production environment. UAT is done in the final phase of testing all the above tests are done and usually performed by Business analysts and clients.
Objective
The main purpose of User Acceptance Testing is to validate the end to end business flow.
