Test for all possible versions
Developing for the iOS, people often tend to fall under the impression that you only need to develop for the latest piece of hardware and OS version. This is a one-way ticket to 1-star reviews which will hurt your overall downloads for no reason.
It is important to test on an (at least one generation) older device for inferior hardware and at least 3 prior versions of the OS. There are people out there with all sorts of combinations of devices and OSes and when they run your application and find that it crashes due to memory leaks, they don’t care that those memory leaks don’t occur on the iPad 2 running iOS 4.3.3. They only care that it didn’t work on their iPad when they paid $0.99 for it and there is no excuse for that in their eyes. And of course, the customer is always right.
The fact of the matter is, all of this can be avoided by just testing thoroughly for these issues beforehand and spending a bit of time resolving them so that your customers running prehistoric versions of the iOS can happily enjoy your product as well.