2010-04-19 12 views

Respuesta

9

Aquí está mi enfoque actual para probar antes de enviar una aplicación.

1) Cree y analice utilizando el analizador integrado Clang de Xcode.

Esto es útil de muchas maneras, atrapa muchas cosas estúpidas y también algunas pérdidas de memoria (aunque a veces sus resultados contienen falsos positivos).

2) Compruebe a fondo todas las advertencias. Algunos de ellos pueden ser realmente dañinos. Retire las advertencias cuando sea posible.

3) utilizar instrumentos para comprobar si hay fugas de memoria, uso de memoria en tiempo de ejecución, etc.

4) Uso de tiburón para identificar problemas de rendimiento cuando siento que sea necesario.

5) Ejecute (manualmente) todas las series predefinidas de pruebas, para verificar que tanto la interfaz de usuario como el código subyacente funcionen como se esperaba. Al agregar nuevas funcionalidades a una aplicación, siempre realice las pruebas de regresión de nuevo para asegurarse de que todo se ejecute sin inconvenientes y de forma adecuada.He descartado las pruebas unitarias hace mucho tiempo, debido a la increíble cantidad de tiempo necesaria para configurarlas y ejecutarlas.

6) Envíe una versión ad hoc de la aplicación a los testers alfa, corrija los errores informados, luego envíe la aplicación nuevamente a los probadores alfa y beta y corrija los errores reportados.

7) Prueba final realizada personalmente en diferentes dispositivos, actualmente iPhone 3GS, iPhone 3G y iPod Touch.

2
  1. No
  2. N/A
  3. N/A

En toda honestidad, conocer la cantidad de trabajo necesario para crear una sola unidad de prueba para ser un dolor completa. Hay una tonelada de burla que se requiere incluso para las pruebas más básicas. Además, ha sido difícil separar los modelos, vistas y controladores en iPhone. Y dado que mi aplicación era bastante pequeña, no valía la pena el tiempo.

Si/Cuando estaba escribiendo algo más grande, volvería a investigar las pruebas de unidad nuevamente.

Dicho esto, hice un montón de pruebas de estilo de usuario/QA. Ver a los demás usar la aplicación (¡realmente útil!), Usar la aplicación, etc. ¡No se puede escatimar si se escatiman pruebas de la unidad!

+0

¿Conoces alguna herramienta que al menos ayude a automatizar las pruebas de UI o es prácticamente manual en este momento? – R0MANARMY

+0

@ R0MANARMY - No lo siento. –

+0

Re: Automatización .. hay un marco de automatización de prueba en 4.0 SDK que usa javascript – nolim1t

0

He hecho algunas pruebas unitarias en mis aplicaciones. Pero como la mía es una calculadora, es más fácil de probar en comparación con otras aplicaciones más complejas. Encuentro épicamente útil cuando encuentro un caso que no funciona bien (generalmente a partir de pruebas manuales), luego escribo una prueba para que el caso (afortunadamente poco claro) siempre se pruebe en el futuro. De esa forma no repito errores más adelante en la línea.

0

La única prueba que hace es con la aplicación Instruments, y eso solo algunas veces.

+0

Cualquier posibilidad de que pueda explicar por qué (y enlace a la aplicación?). – R0MANARMY

+0

La aplicación viene de serie con las herramientas de desarrollador y le brinda mucha información, especialmente sobre el uso de la memoria. –

5

Personalmente solo realizo pruebas unitarias de clases y/o métodos que tienen sentido para la prueba de unidad y que valen la pena. En mi opinión esto se reduce a los siguientes tipos de código:

  • algoritmos computacionales Pure
  • analizador de datos de varios tipos (archivos de datos, Internet, etc.)
  • métodos que tienen una relación de entrada/salida
  • Y probablemente uno o dos más me olvidé.

Casi nunca utilizo pruebas unitarias para probar el código relacionado con la GUI.

Solo he usado el marco OCUnit/SenTesting enviado con el iPhone hasta ahora.

También he descubierto que hacer una breve lista de cosas que hacer como parte del proceso de lanzamiento constituye una gran cantidad de pruebas. A menudo no es el material directamente relacionado con la prueba lo que crea problemas en el producto, sino también los pasos pequeños (olvidados) en el proceso de compilación/lanzamiento.

Cuestiones relacionadas