Вот мой текущий подход к тестированию перед отправкой приложения.
1) Сборка и анализ с использованием встроенного в Xcode анализатора Clang.
Это полезно во многих отношениях, оно ловит много маленьких глупостей, а также некоторые утечки памяти (хотя иногда его результаты содержат ложные срабатывания).
2) Тщательно проверьте все предупреждения. Некоторые из них могут быть действительно вредными. Уберите предупреждения, где это возможно.
3) Используйте инструменты для проверки утечек памяти, объема памяти во время выполнения и т. Д.
4) Используйте Shark для выявления проблем с производительностью, когда я чувствую, что это необходимо.
5) Выполнить (вручную) все предопределенные серии тестов, чтобы убедиться, что и пользовательский интерфейс, и базовый код работают должным образом. При добавлении новых функций в приложение всегда повторяйте регрессионные тесты, чтобы убедиться, что все работает гладко и правильно. Я давно отказался от юнит-тестов из-за невероятного количества времени, необходимого для их установки и запуска.
6) Отправьте специальную версию приложения альфа-тестерам, исправьте обнаруженные ошибки, затем снова отправьте приложение как альфа-, так и бета-тестерам и сообщите о исправленных ошибках.
7) Финальный тест, проведенный лично на разных устройствах, на данный момент iPhone 3GS, iPhone 3G и iPod Touch.