¿Cómo automatizas las pruebas de software en Android?

Estaba preocupado por esto antes de comenzar a crear un marco de automatización y ahora, desde que se lanzó nuestra aplicación: Lecciones aprendidas al lanzar un 10M +, te daré mi perspectiva.

Primero, la mayoría de los errores / fallas en su aplicación no ocurren debido a problemas específicos del dispositivo. Suceden porque hay problemas lógicos en su código; consulte este GTAC 2013 de Google Talk: Breaking the Matrix, donde recomendarían probar solo con emuladores. Así que elige el último Android disponible.

Segundo, abstraiga su suite de automatización con algo como PageObjects. Esto le permitirá ampliar su marco. Déjame entrar en detalles: digamos que tienes que deslizar para ir al menú, mi código se ve así

home_screen.open_menu

En Android 17+ donde puedo usar el controlador de selenio, usé un método móvil: deslizar .
En Android> 17, donde tengo que usar el controlador de selendroid, usé find_element (: name, “menu”). Haga clic porque deslizar no es confiable.
Si ahora decimos que tenemos que admitir galaxy s4, que podría tener problemas para deslizar o encontrar elementos, podemos usar un enfoque que funcione para ello
En modo horizontal, nuestra aplicación no muestra este menú en la pantalla, pero tiene que presionar el ícono del menú de Android, para que mi código se vea como home_screen.open_menu_icon; find_element (: nombre, “menú”). clic ()

Tercero, analice los patrones de uso de dispositivos para su aplicación. No se alarme por las matrices de dispositivos. Aunque nuestra aplicación es utilizada por más de 1000 dispositivos, realmente nos preocupamos por los 10 principales porque representan más del 90% del uso. La ráfaga puede ser invaluable aquí. También me sorprendió que solo unas pocas personas usen Android 2.3, y muchas (75%) están en 4.2+ al menos para nuestra aplicación

Cuarto, el caso de uso más básico es instalar la aplicación, abrir la aplicación, cerrar la aplicación. Para ese tipo de pruebas, siga el consejo de Trent Peterson. Utilizamos appthwack y satisfizo mi temor de que nuestra aplicación no se instale en dispositivos más antiguos. Su corredor de la suite de mono hizo algunas acciones básicas en nuestra aplicación.

Finalmente, emplee pruebas automatizadas solo para pruebas de regresión. No para encontrar errores, ya que uno tiene que seguir el camino de las pruebas exploratorias. Piense en las condiciones de la red, las ubicaciones geográficas, wifi frente a 4g / 3g, caída de conexiones, interruptores de aplicación, diferentes puntos de entrada a la aplicación, paisaje frente a retrato, tableta frente a teléfono.

AppThwack es un servicio en línea que ejecuta un apk cargado contra un montón de teléfonos y tabletas reales y proporciona resultados, datos de rendimiento, registros (incluido logcat) y capturas de pantalla en múltiples orientaciones. También es compatible con las pruebas JUnit, incluidas las realizadas con Robotium. Divulgación completa: soy cofundador. http://www.appthwack.com

Es posible que necesite herramientas como: Appium, Robotium, Calabash, WebLOAD o Monkeytalk.

Conocimiento básico de esas herramientas, lea más en mi blog aquí: Las 10 mejores herramientas de automatización de pruebas móviles de Carl Alston en Gear Inc