Functional test verifies scenarios from a user's perspective. It is similar to acceptance test but instead of communicating via HTTP it is filling up environment such as POST and GET parameters and then executes application instance right from the code.
Functional testing is implemented with the help of Codeception framework which has a nice documentation about it:
If you've started with advanced template, please refer to "testing" guide for more details about running tests.
If you've started with basic template, check its README "testing" section.