GUI Testing: GUI Testing means checking the availability of controls (fields buttons dropdowns etc..) on the application.
GUI Testing not comes under Functionality Testing.
Functionality Testing: Validation of actual functionality of Controls after giving input to certain fields in the application.
We can devide System Testing into following categories
1. Functionality Testing
2. GUI Testing
3. Performance Testing
4. Security Testing ....etc.