Functional testing is testing the ‘Functionality’ of a software or an application under test.
It tests the behavior of the software under test. Based on the requirement of the client, a document called a software specification or Requirement Specification is used as a guide to test the application.
A test data is sculpted based on it and a set of Test Cases are prepared. The software is then tested in a real environment to check whether the actual result is in sync with the expected result. This technique is called as Black Box Technique and is mostly carried out manually and is also very effective in finding bugs.