Functional testing is a type of testing which validates that each function of the application execute in accordance with the application specifications .Every specification is tested by providing appropriate input, verifying the result with the expected results. This testing involves checking of Integrations, User Interface, security, client/ server applications and the application functionality. You can do it manually or automate the test cases.
Testing the main functions of an application.
It checks the basic usability of the system. It validates whether an user can freely navigate through the UI without any difficulties.
Checks the accessibility of the system for the user.
Check for error conditions. It validates whether suitable error messages are displayed as expected.
Exploratory testing, is about discovery, learning and investigation. It's a full freedom to the tester but with the responsibility. Test cases are not created in advance but testers check system on the fly and try find out the unknowns. The focus of exploratory testing is a "thinking" activity to ensure the system is tested from all angles.
Scalability Testing is the ability of a system capacity, network bandwidth or a process capability to continue to function well, when the user base grows and the number of transactions increases or test the changes that are done in size or volume of the system to meet growing need. It is a type of non-functional testing. It ensures that an application is ready to handle the projected increase in user traffic, data size, transaction volume, etc. It tests the system ability, processes and database capability to meet the growing need.