In layman terms, functional testing is done to test the functions of the component or system. Here, functional testing refers to the activities that verify a specific action or function of the code. Functional Testing also aims to answer the questions like “can the user do this?” or “how does this particular feature work?” 

The functional testing techniques are often based on the specifications or requirements of the software. There are two main perspectives in which functional testing can be done, these are 

Requirement Based Testing – In this type of testing, the main priority is given to the requirements, depending on the risk criteria and accordingly the tests are prioritized. This will make sure that even the most important and critical tests are also included in the testing process. 

Business Process Based Testing – This type of testing discusses the day to day business use of the system and introduces test techniques to validate the use of system in an environment similar to that. This type of testing uses the techniques that are based on the knowledge of business processes. For instance, consider a personal joining a company. The payroll system will have the business process along the lines of the personal, i.e. paying the employee on the regular basis until the employee finally leaves the company.