¡El periodo de atención promedio de un ser humano es de menos de 9 segundos! ¿Alguna vez te has preguntado por qué? La mayoría de las aplicaciones móviles que han surgido recientemente requieren que te desplaces por un feed donde el cerebro está afinado para no mirar algo más allá de unos pocos segundos. Esto ha llevado a una reducción significativa en el período de atención de un usuario promedio.
Con la gran cantidad de aplicaciones móviles disponibles en la tienda de apps, viene la gran responsabilidad de probar aplicaciones móviles y escalar los esfuerzos de pruebas de regresión. Es aquí donde las herramientas de pruebas móviles resultan muy útiles.
He sido uno de los primeros en adoptar los frameworks de pruebas móviles y, en mi experiencia, enfocarse en la automatización, factores de forma y pruebas de rendimiento ha desempeñado un papel igualmente importante para escalar y aumentar el impacto en el mundo móvil. En este artículo, compartiré las técnicas más efectivas para automatizar las pruebas de tu aplicación móvil.
Pruebas de aplicaciones móviles: componentes a considerar
Probar en cualquier plataforma específica tiene sus propios desafíos, pero con los móviles, hay parámetros adicionales que debes tener en cuenta. Ya sea que realices pruebas manuales o automatizadas, aparte de las pruebas funcionales, tus casos de prueba deben enfocarse en:
Conectividad
Es importante abordar qué sucede si un usuario utiliza su dispositivo móvil en modo avión o sin conexión, qué pasa si la banda ancha fluctúa, etc., para garantizar que la app funcione.
Ubicación
Especialmente para las aplicaciones móviles que dependen de GPS o servicios basados en la ubicación, se deben realizar pruebas simulando la ubicación con herramientas como MobileSpy, Location Spoofer, etc. De lo contrario, sería difícil realizar pruebas—por ejemplo: Si quieres simular un escenario de prueba para una aplicación de viajes compartidos, donde alguien solicita un viaje desde Nueva York y se han realizado cambios en los microservicios backend específicos para encontrar un conductor en esa ubicación. Sin simulación, las pruebas no te darían resultados precisos.
Sistema Operativo
Especialmente con la cantidad de teléfonos Android que existen hoy en el mercado, probar en todas las versiones de sistemas operativos disponibles es casi imposible. ¿Entonces, cómo priorizar? Con iOS, tienes desafíos adicionales que Apple presenta relacionados con las versiones de Xcode asociadas a los cambios de versión de SO.
Hoy en día, las empresas recurren a proveedores de terceros como BrowserStack para brindar simuladores/emuladores de varios sistemas operativos, pruebas de dispositivos y pruebas cruzadas de navegadores.
Los íconos de la interfaz de usuario son diferentes según la plataforma del sistema operativo: Windows, iOS y Android. Y cuando se trata de automatizar pruebas, la mayoría terminamos usando simuladores; los de Android tardan mucho más en cargar mientras que los dispositivos iOS son más rápidos.
Las distintas combinaciones de teclas móviles a utilizar en función del tipo de sistema operativo para tomar capturas de pantalla para depurar problemas son un dato fundamental para cualquiera que pruebe aplicaciones móviles.
Factor de forma
Al desarrollar aplicaciones móviles, hay 5 factores de forma principales que deben considerarse para las diferentes versiones de sistemas operativos, además del modo vertical u horizontal en cada uno de estos tipos de dispositivos:
| Dispositivo | Tamaño de pantalla |
| Dispositivos móviles pequeños | 3.5 pulgadas o menos |
| Dispositivos móviles medianos | 3.5 a 5 pulgadas |
| Tabletas | 5 a 7 pulgadas |
| Tabletas pequeñas | 7 a 8.5 pulgadas |
| Tabletas de tamaño completo | 8.5 pulgadas o más |
Cómo elegir el framework adecuado para la automatización móvil
Considerar los factores de forma al crear aplicaciones móviles se refiere a garantizar la capacidad de respuesta cuando la misma app se abre en diferentes dispositivos móviles y tipos de sistemas operativos. Cuando el uso de la app se extiende por el mundo y si las empresas quieren aumentar su base de usuarios, deberán tomar esta decisión desde el principio del proceso de desarrollo para recurrir a frameworks React Native en lugar de desarrollo nativo Android o iOS.
De lo contrario, las empresas acabarán perdiendo tiempo y esfuerzo posteriormente para refactorizar y rediseñar las apps y cambiar a frameworks React Native. Esto impacta directamente en la cantidad de equipos y la carga de mantenimiento ya que los frameworks React Native soportan el desarrollo de aplicaciones tanto para iOS como para Android.
Cuando las aplicaciones móviles se desarrollan utilizando frameworks React Native, también reduce la carga sobre la automatización de pruebas, ya que solo es necesario mantener un único framework de pruebas automatizadas para iOS y Android.
Existen diferentes maneras de desarrollar aplicaciones móviles. Algunas empresas optan por utilizar lenguajes de programación nativos como Java y Objective C para aplicaciones Android y iOS, respectivamente. La ventaja de usar lenguajes nativos es que les permite ofrecer una funcionalidad enriquecida en sus aplicaciones.
Por otro lado, los ids de los elementos serán diferentes en ambas plataformas, lo que significa que necesitaremos tener frameworks de pruebas nativos separados para probar lo mismo, como Espresso en Android, XCUITest en iOS, etc.
React Native es otro lenguaje de programación ampliamente utilizado para desarrollar aplicaciones móviles responsivas que fue liberado como código abierto por Facebook. El objetivo era unificar los esfuerzos de desarrollo móvil en ambas plataformas para que pueda haber un solo equipo y así los ids de los elementos en ambas aplicaciones sean los mismos, lo que únicamente necesita un framework de pruebas como Appium para ayudar a testear las aplicaciones móviles.
Cuando se trata de automatizar las pruebas de tus aplicaciones móviles, elegir las herramientas de automatización QA adecuadas puede marcar una diferencia significativa en la eficiencia de tus pruebas.
Cómo automatizar las pruebas de aplicaciones móviles iOS
Al hacer pruebas manuales hay una serie de criterios que se deben cumplir: la mayoría de las empresas que desarrollan aplicaciones iOS especifican claramente qué sistemas operativos y versiones de SDK son compatibles. Esto ayuda a limitar tus esfuerzos de testing.
Para escalar los esfuerzos de pruebas de software, necesitamos invertir en automatización. Existen muchos frameworks populares que soportan pruebas automatizadas de aplicaciones móviles iOS, de los cuales limitaremos el alcance de nuestra discusión a las siguientes 2 herramientas de automatización:
- XCUITest
- Appium
| XCUITest | Appium |
| Framework de aplicaciones nativas que puede residir dentro del código fuente de iOS. | Framework de pruebas aislado que se construye fuera del código base fuente. |
| Escrito en Objective C o Swift | Escrito en Java, Python, etc. |
| Esperas explícitas que aplican una condición. | Esperas implícitas que implican el uso de sleep(), lo que hace que las pruebas sean inestables. |
| Mockear respuestas de backend API usando librerías de código abierto como Mockingjay | Soporta el uso de servidores simulados (mock server). |
| Como se trata de un framework nativo de aplicaciones, solo se puede utilizar para probar aplicaciones iOS. | Como las pruebas residen fuera del código base fuente y pueden escribirse en lenguajes como Java, Python, etc., se puede utilizar para probar aplicaciones multiplataforma como Windows, iOS y Android siempre que los ids de los elementos sean los mismos en ambas plataformas. |
He utilizado servidores simulados para ayudar a simular las llamadas al backend y probar exclusivamente la interfaz de usuario de la siguiente manera creando una clase base:

Ahora que la clase base está lista, agrego la prueba real aprovechando el patrón de diseño page object de la siguiente manera:

Cómo automatizar las pruebas de aplicaciones móviles Android
Hay más de 2 mil millones de dispositivos Android activos en el mundo. ¡Probar tu aplicación Android en diferentes dispositivos y tipos de sistemas operativos es casi imposible! Por eso, las empresas indican explícitamente las versiones que dan soporte. Esto también asegura una mejor experiencia de usuario.
Los frameworks de automatización Android sin duda ayudan a acelerar los procesos de pruebas como Robotium, Selendroid, etc. y para el alcance de nuestra discusión, limitemos las herramientas de automatización a: Espresso y Appium:
| Espresso | Appium |
| Framework nativo que puede residir dentro del código fuente de Android. | Framework de pruebas aislado que se construye fuera del código fuente. |
| Escrito en Java y Kotlin | Escrito en Java, Python, etc. |
| Soporta esperas explícitas y operaciones asíncronas mediante la capacidad de recursos en espera | Soporta esperas implícitas que implican el uso de sleep(), lo que vuelve las pruebas inestables. |
| Permite simular respuestas backend utilizando bibliotecas de código abierto como Mockito y Retrofit builder | Soporta el uso de servidores simulados. |
| Al ser un framework nativo, solo se puede utilizar para probar aplicaciones Android. | Como las pruebas residen fuera de la base del código fuente y pueden escribirse en lenguajes como Java, Python, etc., puede usarse para probar aplicaciones multiplataforma tanto en iOS como en Android, siempre y cuando los ids de los elementos sean los mismos en ambas plataformas. |
Una de las ventajas de utilizar frameworks nativos para apps es la posibilidad de usar servidores simulados (mock servers) para simular las llamadas a las APIs backend y así probar exclusivamente la interfaz de usuario. Aquí tienes un ejemplo de fragmento de código de cómo lo he implementado:

Dependiendo de cómo esté desarrollada la arquitectura de microservicios, puedes obtener la respuesta desde la pestaña de red de tu navegador o directamente de los desarrolladores y referenciarla así dentro de tu prueba:

Como puedes ver en el ejemplo anterior, HomeTabPage se llama dentro de la prueba, en lugar de tener que hacer una afirmación explícita de cada elemento—he aprovechado el patrón de objetos de página en el framework como se muestra a continuación:

Herramientas para pruebas de aplicaciones móviles
Hay diversas herramientas de testing en la industria y la elección depende de múltiples factores:
- Conocimientos del equipo
- Propósito de la automatización
- Público objetivo de la automatización: Product Managers/Ventas/Ingenieros/Testers
- Compatibilidad del framework de pruebas y el código fuente nativo
- Número de apps híbridas
Diversas herramientas que son populares en la industria incluyen:
- Selendroid
- Robotium
- Appium
- Testdroid
- UiAutomator
¿No te apetece hacer pruebas internas? También puedes contratar servicios de pruebas de aplicaciones móviles para que lo hagan por ti.
Pruebas de rendimiento de aplicaciones móviles
Al probar aplicaciones móviles, además de enfocarnos en la automatización para escalar los esfuerzos de testing, también debemos priorizar las pruebas de rendimiento, ya que desempeñan un papel crucial para determinar si un usuario continuará utilizando nuestra aplicación.
Si la pantalla tarda más de 2 segundos en cargar, las personas se impacientan—esto vuelve a nuestro estudio sobre la capacidad de atención, y por ello, para retener usuarios, debemos invertir en pruebas de rendimiento.
Al probar el rendimiento de la app, necesitaremos identificar los KPIs y establecer referencias para compararlos:
- Tiempo máximo de respuesta
- Tiempo de respuesta promedio
- Flujo promedio de datos (throughput)
- Número máximo de usuarios activos por sistema operativo y dispositivo
Utilizar una herramienta de pruebas de apps móviles puede simplificar los tests de rendimiento. Por ejemplo, Apptim puede rastrear métricas de rendimiento desde el punto de vista del usuario final: proporciona informes completos para todos los parámetros clave de rendimiento.
Para monitorear el rendimiento de las aplicaciones móviles, podemos utilizar Firebase Performance Monitoring, que proporciona control sobre los datos de rendimiento al compartir información sobre cómo funciona tu aplicación, desglosando los datos de rastreo y red en dimensiones como versión de la aplicación, país, dispositivo y tipo de red.
Existen otras herramientas como Appium Studio, Sauce Labs, Testdroid, etc., que ofrecen capacidades similares de monitoreo de rendimiento.
¡Espero que este artículo te haya dado una introducción sobre las pruebas de aplicaciones móviles y los factores críticos asociados a ellas!
Para más buenas prácticas y consejos que mejoren tu proceso de desarrollo, suscríbete al boletín de The QA Lead.
Lectura relacionada:
No te pierdas esto:
- ¿QUÉ ES TESTGEAR? VISIÓN GENERAL Y RECORRIDO POR SUS FUNCIONES
- MÉTRICAS DE MONITOREO DE SERVIDORES A SEGUIR PARA LA SALUD Y RENDIMIENTO DEL SISTEMA
Lista relacionada de herramientas:
