What is Functional Testing?

What is Functional Testing?

In this comprehensive guide, you’ll learn all about

What is Functional Testing?

Functional testing is a type of black box testing that evaluates the conformance of a system or component with stated functional requirements. Functional testing specifies what the system does.

As the name specifies, the test verifies if all the functionalities of the application are working as expected and ready for release. Since it is black box testing, the tester will not know the internal structure of the app or the source code. Development team will create functional unit test cases with respect to user/business requirements and testers specify the functionality requirements based on the user perspective. Functional testing can be carried out by manual test teams or can be automated.

What do you test in functionality testing?

Functional testing also known as black box testing verifies

  • Functionality
  • End-to-end workflows
  • Business Scenarios
  • Data storage in the database
Functional testing compnents

Example of a functional test scenario

Sample Test scenario: Verify user is able to add new reminders – SMS

  1. Login to application
  2. Mouse hover on schedule menu
  3. Select Follow -up Reminders’
  4. Click ‘New Reminder’ button
  5. Select reminder type as ‘SMS’
  6. Select the reminder value
  7. Click ‘Update Reminders’

How do you perform functional testing?

Functional testing follows a step by step process,

  • Identify functions that the application is intended to perform
  • Create the input based on the function’s specifications
  • Establish the output based on the function’s specifications
  • Execute the written test cases
  • Compare the final actual and expected outputs

Let’s see the different functionality testing types and tools,

  • Unit Testing
  • Integration Testing
  • Smoke Testing
  • System Testing
  • Regression Testing
  • User Acceptance Testing
Types of Functional Testing

Unit Testing 

Unit testing in simple terms validates if the separate units of code function properly. For example, it validates if a function, loop, method or a statement in the piece of code is working as intended. It is written by developers.

Example of a Unit test for ‘Login’ will look like,

  • Navigate to login page
  • In the ’email’ field, enter the email address of the registered user
  • Click the ‘Next’ button
  • Enter the password of the registered user
  • Click ‘Sign In’
  • If success, go to next page
  • If not, throw error message and go back to login page
Examples of Unit Testing

Integration Testing 

Integration testing verifies the interfaces or the flow between the units. The focus is given on verifying the integrating links. Sample integration test case for the test scenario:  Add to bag -> My bag will look like,

Test Case ID  Test Case Objective Test Case Description  Expected Result 
1 Check the interface between the Add to cart and My cart module on the e-commerce application homepage From homepage select product and click Add to cart button Selected product should appear in the My cart folder

Here, the objective is to verify the integration between Add to cart and my cart folder.

Smoke Testing 

Smoke testing is performed once after developers publish the ‘new build’, usually unstable – to evaluate critical functionalities of the system. The objective of the testing is to verify the most important functionalities of the system and not run an exhaustive testing process. Critical functionality test cases are chosen, run and verified. Both testers and developers perform smoke testing and the testing is ‘build’ focused.

Smoke Sanity Testing 2

Sanity Testing  

Sanity Testing and smoke testing are used interchangeably in testing contexts. This is because both tests are run after the build is received. However, sanity testing, a subset of regression testing, focuses on executing test cases that are related to the changes made to the builds. In simple terms, when a build, usually stable, is received with minor changes, sanity test is performed. It is performed by testers and is ‘release focused’.

Functional Tests   Non-Functional Tests 
Tests the actions and working functionalities of the application Tests the non-functionality side of the application. I.e look and feel.


Ex., Performance, Security, Usability

Performed first – applicable in Unit, Integration, System Testing Performed after functionality tests – applicable in System Testing phase
Focus lies on user/business requirements Focus lies on User Expectations/Experience
Tests ‘What’ the system should do Tests ‘How’ the system should work
Can run manual and automated tests Mostly automated tests
  • Unit Testing
  • Integration Testing
  • System Testing
  • Acceptance Testing
  • Performance Testing
  • Security Testing
  • Recovery Testing
  • Usability Testing
Example: Verify the ‘Place Order’ functionality Example: Easy to navigate to ‘Place Order’ button and 100
number of people should be able to place order
concurrently irrespective of OS/browser/device configurations