I am not going to go into too much detail on this as there is a massive amount of information out there on how to do this.
For me I have found a combination of boundary testing and combination testing, gives quick results with reasonable coverage and depth. Typically I would;
- Prepare my combination tests utilizing equivalence classes
- Prepare a list of all boundaries and exceptions
- Test the happy path from start to finish to prove that I had an end to end flow
- Complete the combination testing, and
- When I enter a screen for the first time, check the boundaries and exceptions
Usually I would get the team to do this to try and get as much coverage as possible, then use the risk based approach to determine where to focus the remaining effort.