From an automation angle, I categorize functional testing into UI, business logic, and integrations.
For example, if your app involves payments, you need to validate transaction success, error handling, and third-party gateway responses.
I also ensure testing covers multiple screen sizes and OS versions. Tools like Appium help simulate various environments to make sure functions behave the same everywhere.