1) Use bottom up approach (start from the lowest component level)
2) Derive the functional test case from Use case or SRS module wise.
3) Identify the interfacing references to get the integration test cases.
4) Have a higher level composite systems test case to test the system’s functionality end to end.
5) For each build released, most critical features covering all the functionalities, a smoke test or build validation regression suite can be built based on the priority of the test cases set at the time of creation.
Post UAT there might at time ORT or operational readiness test cases written and executed which comprises of network, bandwidth, load stress (Non functional requirement) and critical functions and documentation for maintenance.
Lastly … check what you intend to test and what is it that you are testing, if it matches "Bingo!!!" you are on the right track ….