Functional Testing
Functional testing ensures that the requirements are properly satisfied by the application system. The functions are those tasks that the system is designed to accomplish. Functional testing is not concerned with how processing occurs, but rather, with the results of processing. Software development organizations with an effective functional testing practice have a fast and objective way to determine whether each functional requirement is actually implemented in the code. Although functional testing is often done toward the end of the development cycle, it can—and should, say experts—be started much earlier. Individual components and processes can be tested early on, even before it's possible to do functional testing on the entire system.
Dive deep into Functional Testing with these below excellent resources:
Wrox - Functional Testing
Informit - Functional Testing
PezzeYoung - Functional Testing