Functional Testing means testing the application against business requirements. Functional testing is a software testing process used within software development in which software is tested to ensure that it conforms to all requirements. Functional testing is a way of checking software to ensure that it has all the required functionality that's specified within its functional requirements.

Functional testing involves evaluating and comparing each software function with the business requirements. Software is tested by providing it with some related input so that the output can be evaluated to see how it conforms, relates or varies compared to its base requirements. Moreover, functional testing also checks the software for usability, such as by ensuring that the navigational functions are working as required. Functional testing techniques that we use here at SDLC are, black box testing, boundary value analysis, end to end bug management, UI testing.

Functional testing is performed in following steps- identification of functions that the software is expected to perform, creation of input data based on the function's specifications, determination of output based on the function's specifications, execution of the test case, comparison of actual and expected outputs, check whether the application works as per the customer need.

Functional testing often contains number of test cases, as it focus on testing the solution against Business rules, Data mapping, Data Validation, Data re-engineering. Various documents are generated during functional testing; they are- Test Plan, Test Design Spec, Test Scenario, Test Log, and Test Summary. Flow of testing is as follows-