The best approach for UAT would be gherkin or keyword-driven testing
You can get more information for gherkin here at:
https://cucumber.io/docs/bdd/better-gherkin/
BDD driven
An example for UAT test could be :
Feature: Subscribers see different sets of stock images based on their subscription level
Scenario: Free subscribers see only the free articles
Given Free Frieda has a free subscription
When Free Frieda logs in with her valid credentials
Then she sees a Free article on the home page
Scenario: Subscriber with a paid subscription can access both free and paid articles
Given Paid Patty has a basic-level paid subscription
When Paid Patty logs in with her valid credentials
Then she sees a Free article and a Paid article on the home page
Here we hide the internal procedural flow, for example
When Paid Patty logs in with her valid credentials
step actually includes inputting credentials, clicking login button etc. But we hide the actual procedural flow from the final test.
So here we are considering more of what than how.
Keyword Driven
There are keyword driven frameworks like robotframework:
reference:
http://robotframework.org/robotframework/2.7.2/RobotFrameworkUserGuide.html
Example:
*** Test cases ***
Simple Smoke Test - Correct Answer
[Tags] cloud
Set Up And Open Android Application
Input Name ${NAME}
Select Option Use Testdroid Cloud
Submit Selection
Validate Correct Answer