I think that was well written, please note the best approach is to break down the tests. I am trying to separate the navigation from the actual verification point. For example if I where to need to navigate or to prepping before getting to the actual point of test. If your UI flow changes then you need to change navigation scripts. Here are some examples.
1) Testing to validate that the scores entered are correct.
a) The login is on to its own navigation and data driven from the parent.
b) The navigate too and prep are broken down (at least one or more test scripts). Make know I would have the prep changes as data driven ie the login user name and password.
c) Then the Validation of whatever screens you have (if need be you might want to break those out among steps and verification points).
2) Please note that if you data drive something not to wind up in an infinite loop. I sometimes test for a point that might not come out. Just let it time out. My favorite example is Dr. Who, The Doctor goes in trades, he leaves; don’t bother for that trip to end. *GRIN* be careful on what you base your actual test steps on.
Just my two cents,