Las pruebas con el instrumento Leaks deben ser parte de su estrategia, pero no todas. Deberá probar su aplicación desde múltiples ángulos.
Mi estrategia hacia las pruebas tiende a centrarse primero en las pruebas funcionales, seguidas de las pruebas de rendimiento y luego en una última ronda de pruebas funcionales. No tiene mucho sentido ajustar el rendimiento si tiene un error que se cuelga en algún lugar de su código, a menos que ese bloqueo se deba a un agotamiento de recursos de algún tipo.
Martille en la aplicación para tratar de romperla al ejecutar cada opción en cualquier condición que se le ocurra. Si eso pasa, suelo emplear mi prueba de "mono loco con crack", donde martillo botones y áreas al azar en la pantalla lo más rápido que puedo para ver si expongo a otros intrusos.
Solo entonces me vuelvo a Instrumentos. Ejecute la aplicación en el dispositivo (no se debe realizar ningún ajuste de rendimiento en el simulador) utilizando los instrumentos Time Profiler y Memory Monitor. Busque zonas activas de rendimiento y picos de memoria, así como acumulaciones de memoria. Repita el mismo tipo de prueba que utilizó para problemas funcionales antes al hacer esto.
Una vez que se ocupe de los puntos críticos y las acumulaciones obvias, puede pasar a un examen de memoria más detallado. De hecho, prefiero usar el instrumento Object Allocations con su nueva capacidad de análisis de fotogramas para el instrumento Leaks para encontrar sutiles acumulaciones de memoria y fugas. El instrumento de Leaks tiende a ser conservador, y puede pasar por alto algunas acumulaciones. Nathaniel señala el excelente post de Bill Bumgarner sobre el tema.
El instrumento Object Allocation y sus diapositivas son particularmente potentes cuando se combinan con el instrumento UI Automation, donde puede realizar cientos o miles de ciclos de pruebas en partes de su aplicación para resaltar incluso la acumulación de memoria más pequeña. Empecé a hacer más de este tipo de pruebas ahora.
Creo que funciona mejor para ver esto en acción en lugar de describirlo en el texto, por lo que recomendaría ver el video de mis clases "Prueba" y "Ajuste del rendimiento" como parte de mi advanced iOS course on iTunes U. Demuestro cada una de estas herramientas y cómo las uso en las pruebas de mis propias aplicaciones antes de la presentación en la App Store. Mi course notes (en formato VoodooPad) también describe esto en detalle.
Relacionados con esto son [¿Cuál es su enfoque para probar aplicaciones de iPhone/iPad?] (Http://stackoverflow.com/questions/2670107/whats-your-approach-to-testing-iphone-ipad-apps) y [ ¿Cuál es la estrategia de prueba de tu aplicación de iPhone?] (Http://stackoverflow.com/questions/860889/what-is-your-iphone-app-testing-strategy) –