What is Functional Testing?

Functional Testing is a type of software testing that validates the software system against the functional requirements/specifications. The purpose of Functional tests is to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements.

Functional testing mainly involves black box testing and it is not concerned about the source code of the application. This testing checks User Interface, APIs, Database, Security, Client/Server communication and other functionality of the Application Under Test. The testing can be done either manually or using automation.

What do you test in Functional Testing?

The prime objective of Functional testing is checking the functionalities of the software system. It mainly concentrates on –

  • Mainline functions:  Testing the main functions of an application
  • Basic Usability: It involves basic usability testing of the system. It checks whether a user can freely navigate through the screens without any difficulties.
  • Accessibility:  Checks the accessibility of the system for the user
  • Error Conditions: Usage of testing techniques to check for error conditions.  It checks whether suitable error messages are displayed.

Functional Testing Types

Here are Examples of Functional Testing Types

  • Unit testing
  • Smoke testing
  • User Acceptance
  • Integration Testing
  • Regression testing
  • Localization
  • Globalization
  • Interoperability

Functional Vs Non-Functional Testing:

Functional TestingNon-Functional Testing
Functional testing is performed using the functional specification provided by the client and verifies the system against the functional requirements.Non-Functional testing checks the  Performance, reliability, scalability and other non-functional aspects of the software system.
Functional testing is executed firstNon-functional testing should be performed after functional testing
Manual Testing or automation tools can be used for functional testingUsing tools will be effective for this testing
Business requirements are the inputs to functional testingPerformance parameters like speed, scalability are inputs to non-functional testing.
Functional testing describes what the product doesNonfunctional testing describes how good the product works
Easy to do Manual TestingTough to do Manual Testing
Examples of Functional testing are


  • Unit Testing
  • Smoke Testing
  • Sanity Testing
  • Integration Testing
  • White box testing
  • Black Box testing
  • User Acceptance testing
  • Regression Testing
Examples of Non-functional testing are


  • Performance Testing
  • Load Testing
  • Volume Testing
  • Stress Testing
  • Security Testing
  • Installation Testing
  • Penetration Testing
  • Compatibility Testing
  • Migration Testing