Functional testing allows testing mobile apps by interacting with the user interface in a live manner similarly to how a human user would. It involves arranging test data, acting by programmatically interacting with UI elements, and asserting expected results. With Xamarin.UI.Test, functional tests for Xamarin apps can be written in C# to click buttons, enter text, and verify outcomes by querying the app user interface. While it provides a way to test apps across platforms, there are some limitations such as only running iOS tests on a Mac and no support for Universal Windows Platform apps.