Good requirements help here. Also requirements should be the basis of your test cases.
Correct, and if you're starting a project from scratch, then you can establish good requirements by identifying the problem and determining constraints and actions a user might take.