We currently have a two-week sprint and we seem to have issues with timing between testing and development. We have (nearly) daily releases to a test environment. We stage our release about 1.5 days before the production release in a separate environment. We have 3 developers and 1 tester.
One strategy is to test through these daily releases as features/bug fixes are code-completed. The drawback with this strategy is that the code base is in constant flux and what passed testing at the beginning may not pass at the end. There is a little bit of time to retest things during the 1.5-day window, but not enough to test everything.
The other strategy is to stagger the testing so that the tester is working on the (frozen) codebase one sprint behind the developers. The drawback with this is that if problems are found, the functionality needs to be remembered/rehashed/etc - a lot of the arguments against the waterfall.
Does anyone have any opinions about which way is better or an alternative?