Un producto de calidad y con buena UX/UI potencia la imagen de marca y puede aumentar considerablemente los ingresos.

El desarrollo de aplicaciones móviles está en constante crecimiento. Cada vez más son las empresas que deciden desarrollar, para mejorar imagen de marca o incrementar sus ventas, algún tipo de aplicación móvil. Por tanto, en este entrada se busca introducir al tema de las pruebas de software en una aplicación móvil, considerando diferentes tipos e incidentes más comunes que se pueden presentar.

Un poco de historia…

Entre el 2007 y 2008 ocurren importantes eventos que marcaron el inicio de las Aplicaciones Móviles.

Apple fue el que dio el primer paso. Steve Jobs anunció el 9 de enero de 2007, en la convención Macworld el primer teléfono con pantalla táctil, el iPhone. Este anuncio recibió una considerable atención de los medios y además anunció que el primer iPhone se lanzaría a finales de ese año.

The iPhone introduction, Macworld, 9 Jan 2007 by Steve Jobs
The iPhone introduction, Macworld, 9 Jan 2007 by Steve Jobs

El iPhone con su sistema operativo iPhone OS 1.0 se lanzó al mercado el 29 de junio del mismo año. El iPhone original fue un éxito y pese a su precio de 399 dólares, Apple vendió 6 millones durante su existencia.

Google no se quedó atrás; el lanzamiento de la Open Handset Alliance el 5 de noviembre de 2007 sirvió también para anunciar su Sistema Operativo para Dispositivos Móviles: el Android 1.0. Ese mismo mes compartió el SDK de Android, para que fabricantes y desarrolladores se familiarizaran con Android y empezaran a trabajar con él.

Al año siguiente continuaron los eventos. La demanda del primer iPhone fue tan alta que finalmente cedió el SDK de iPhone y anunció la App Store en marzo de 2008. La App Store fue lanzada al público el 10 de julio de 2008. Steve Jobs declaró a USA Today que la App Store contenía 500 aplicaciones de terceros para iPhone y iPod Touch, de las cuales 125 eran gratuitas.

El 28 de agosto de 2008, Google anunció Android Market y el 23 de septiembre del mismo año, HTC anuncia que su nuevo teléfono móvil llamado HTC Dream, contaría con pantalla táctil y con un teclado oculto por defecto.

Android Market se lanzó al público el 22 de octubre de 2008. Ese mismo día HTC lanzó al mercado el HTC Dream a un precio estimado de 179 dólares, siendo​ el primer dispositivo móvil de comunicación en incorporar el sistema operativo móvil Android. El lanzamiento se hace en colaboración con T-Mobile en Estados Unidos, por lo que a este dispositivo también se le conoce como T-Mobile G1.

El impacto de la App Store y Android Market marcó el comienzo de una nueva era: la era de las aplicaciones móviles. Miles de desarrolladores comenzaron a escribir aplicaciones para ambas plataformas, lo que se convirtió en una competencia entre Apple y Google.

Descargas globales en App Store y Google Play

Descargas globales de App Store y Google Play desde el primer trimestre de 2015 hasta el segundo trimestre de 2020
Apple App Store and Google Play app downloads – Statista

Según los datos proporcionados por el portal Statista, entre enero de 2015 y julio de 2020 la descarga de aplicaciones ha crecido rápidamente. En los últimos 5 años, las descargas registradas aumentaron de 15,9 mil millones a 37,8 mil millones entre ambas tiendas de Apps.

Sin embargo, esto no significa que todas las aplicaciones móviles descargadas alcanzaron el éxito. Por esta y otras razones se vuelve de gran importancia realizar pruebas de software en una aplicación móvil:

  1. Un producto libre de errores aumenta la probabilidad de éxito, lo que implica un mayor número de descargas y un incremento en los ingresos.
  2. Reduce el riesgo del proyecto, ya que desarrollar aplicaciones es bastante costoso y puede generar grandes pérdidas si el producto falla y decepciona al usuario.
  3. Un producto de calidad y con una buena UX/UI ayuda a potenciar la imagen de marca y posiciona a la empresa como un proveedor de software fiable y atractivo.
  4. Garantiza la compatibilidad con distintos dispositivos y Sistemas Operativos, como pueden ser iOS y Android.
  5. Una inversión en QA puede ahorrar muchos costos a futuro: Detectar errores en fases tempranas hace que sea más fácil y económico arreglarlos, puesto que si son detectados por el usuario, los costos pueden ser muy elevados.

Tipos de Aplicaciones Móviles

Las aplicaciones móviles no son tan sencillas de probar como las aplicaciones web de escritorio; se dividen en tres tipos: Nativas, Híbridas y Web.

Aplicaciones Nativas

Una aplicación nativa es la que se ejecuta en el dispositivo de manera más rápida y avanzada en cuanto a las funciones, por lo que se debe descargar antes de usar. Dado que son aplicaciones específicas para una plataforma, se deben desarrollar utilizando IDEs y lenguajes específicos.

Android utiliza lenguajes como Java o Kotlin y Android Studio, o Eclipse como IDE; por su parte, Apple utiliza lenguajes como Objective-C o Swift y XCode como IDE.

Ventajas y desventajas de las aplicaciones nativas

Algunos ejemplos de aplicaciones Nativas son Google Maps, LinkedIn, Twitter, Telegram, PokemonGo, etc.

Aplicaciones Web

Una aplicación web es a la que se puede acceder a través de cualquier navegador móvil; esto significa que no se requiere descargarla al dispositivo para comenzar a usarla. Al igual que las aplicaciones web, las aplicaciones web móviles generalmente se crean utilizando JavaScript, CSS y HTML5.

Ventajas y desventajas de las aplicaciones web

Algunos ejemplos de aplicaciones Web son wordpress.com, Medium.com y emol.com.

Aplicaciones Híbridas

Una aplicación híbrida combina las características de las aplicaciones web y nativas. Usualmente es desarrollada como una aplicación móvil web utilizando JavaScript, CSS y HTML5. Al ser empaquetadas en un entorno nativo, se puede utilizar el mismo código para diferentes plataformas. Este tipo de aplicaciones se deben descargar al igual que las aplicaciones nativas.

Ventajas y desventajas de las aplicaciones híbridas

Algunos ejemplos de aplicaciones híbridas son Facebook, Instagram, Uber y Slack.

¿Qué considerar al realizar Pruebas de Software en una Aplicación Móvil?

Como testers, debemos tener en cuenta las siguientes consideraciones antes de comenzar a probar una aplicación móvil:

¿Cuál es el tipo de App que se probará?

Como se mencionó anteriormente existen 3 tipos de aplicaciones móviles: Nativas, Híbridas y Web; conocer esta información, ayudará a definir qué tipos de pruebas se pueden realizar.

¿En qué versiones del Sistema Operativo funcionará la App Móvil bajo prueba?

Se debe tener claro que versiones de iOS y Android se deben cubrir. Esta información deberá ser entregada por el Cliente o por el Equipo de Desarrollo.

¿En qué dispositivos se probará la Aplicación Móvil?

Independiente del tipo de aplicación móvil que se probará, se debe definir un set de dispositivos móviles físicos o reales de pruebas. Se recomienda siempre contar con set dispositivos de pruebas físicos o reales de cada una de las plataformas existentes, debido a que la mayoría de las pruebas se realizarán en los dispositivos definidos. Los dispositivos móviles físicos o reales permitirán probar principalmente la experiencia de usuario.

Debido a que tener un set de dispositivos solo físicos o reales puede ser muy costoso, se recomienda ampliar la cobertura de dispositivos con Simuladores y Emuladores.

Los Simuladores y Emuladores son aplicaciones limitadas, en cuanto a lo que se puede probar, por tanto, no se puede probar la experiencia del usuario.

Un Simulador como el que nos proporciona Xcode, simula o imita dispositivos como iPhone o iPad. En cambio un Emulador – haciendo referencia a lo que nos proporciona Android Studio – actúa como el dispositivo configurado emulando su Sistema Operativo y su Hardware.

Se habla de Simuladores por la herramienta XCode, ya que solo permite simular dispositivos con sistema operativo iOS. En cambio Android Studio, permite emular distintos dispositivos con sistema operativo Android.

Otra alternativa son herramientas de Cloud Testing, aunque son de pago. Algunas de las más conocidas son Sauce Labs y Browser Stack. Al ser herramientas que se encuentran en la nube, nos permiten testear Apps a través del servicio Real Device Cloud, emuladores/simuladores móviles y pruebas de aplicaciones en vivo.

Ambas herramientas cuentan con una gran variedad de dispositivos de pruebas, a continuación se puede revisar su cobertura:

¿Qué equipos elegir para armar el set de Dispositivos de Prueba?

En este artículo de BrowserStack (actualizado a enero del 2020), se recopila información estadística sobre el uso de más de 2 millones de desarrolladores en BrowserStack y de las últimas tendencias del mercado global.

Una de las propuestas básicas es STARTING UP y consta de los siguientes dispositivos:

  • Apple iPhone 8 (Celular) iOS 13.0
  • Apple iPhone XR (Celular) iOS 12.0
  • Google Pixel 3 (Celular) Android 9.0
  • Samsung Galaxy S9 Plus (Celular) Android 8.0
  • Samsung Galaxy S8 (Celular) Android 7.0
  • Apple iPad 6th (Tablet) iOS 11.0

Con este Set de dispositivos se puede tener la siguiente Cobertura de Mercado.

STARTING UP: Propuesta de set de dispositivos de pruebas de BrowserStack

¿Dónde descargo la aplicación móvil a probar?

En los siguientes sitios web se pueden obtener las versiones para probar apps nativas e híbridas:

Testflight

Testflight está disponible solo para la plataforma Apple. Esta aplicación se descarga de App Store y se instala en el dispositivo de prueba. A través de una invitación se puede descargar la versión a probar.

Visual Studio App center

Visual Studio App Center es una plataforma donde se pueden cargar y descargar aplicaciones. Sus herramientas están diseñadas para aplicaciones Android e iOS construidas en Swift, Objective-C, Java, React Native, UWP y Xamarin. 

Almacenamiento en la Nube (Disponible para aplicaciones Android)

La APK de Android no tiene limitación en donde puede ser publicada, por lo que se puede utilizar algún servicio de almacenamiento en la nube como Google drive, One drive o Dropbox.

Diseños de Interfaces o Mockups

Los diseñadores pueden utilizar alguna herramienta para publicar el diseño de cada pantalla de la aplicación móvil, tales como Zeplin, Figma, Adobe XD o InVision. Cada una de estas herramientas ofrece un sin fin de funcionalidades.

¿Cómo capturar evidencias en un dispositivo móvil?

Probablemente sea una pregunta que se realice uno mismo si no es un usuario de algunas de las plataformas existentes. En Android, la funcionalidad de capturar pantalla es nativa y Google indica que se realiza de la siguiente manera:

¿Cómo hacer capturas de pantalla en teléfonos Android?

⚠ Esta combinación varía dependiendo del fabricante. Revise cómo hacer screenshots de manera alternativa en algunas marcas aquí.

La funcionalidad de Grabar Pantalla no es nativa de Android. Algunas marcas como Samsung, Xiaomi, Huawei, Honor, OPPO o Realme incluyen esta funcionalidad en sus teléfonos. Revise cómo grabar pantalla en las marcas mencionadas aquí

⚠ Si el dispositivo Android de pruebas no tiene esta funcionalidad, revisar las siguientes aplicaciones: Screen Recorder, Vysor y HiSuite (HUAWEI).

En iOS la funcionalidad de capturar pantalla es nativa y depende del modelo de iPhone; se realiza de la siguiente manera:

La funcionalidad de grabar pantalla también es nativa de iOS desde iOS 11 y se realiza de la siguiente manera:

¿Cómo grabar pantalla en teléfonos iOS?

Tipos de Pruebas de Software en una Aplicación Móvil

Algunas de las pruebas que debería tener en consideración todo tester en al momento de testear una aplicación móvil son:

Funcionalidad

En este tipo de pruebas nos enfocamos principalmente, ya que aseguran que la aplicación móvil funcione según lo indicado en los requerimientos y/o historias de usuario. Algunas de las funcionalidades a probar son:

Registro/Login

  • Verificar que el usuario pueda registrarse e iniciar sesión.
  • Verificar la integración con las aplicaciones como Facebook, Twitter, Snapchat o Google.

Modo vertical (Portrait) y horizontal (Landscape)

  • Verificar si la App tiene activado la opción landscape.

Acciones Básicas, opciones del Menú, Títulos, Textos y Botones

  • Asegurar que todos los botones, enlaces y otros elementos de la Interfaz de Usuario (IU) funcionen como se espera.
  • Revisar las integraciones con otras aplicaciones, como por ejemplo aplicaciones de pago (Transbank, PayPal, etc.)
  • Probar los formularios, verificar que la entrada está validada (campos obligatorios vs. campos opcionales).

Notificaciones, Mensajes Error/Éxito

  • Comprobar que las notificaciones push se procesen correctamente.

Gestos Básicos

  • Verificar cómo se comporta la aplicación al realizar algunos gestos básicos en la pantalla.
  • Como apoyo a los Gestos Básicos, Luke Wroblewski, Director de producto en Google, creó la Guía ilustrada referencial con los diferentes gestos que se pueden realizar en pantallas táctiles.
Guía ilustrada referencial de gestos básicos en pantallas táctiles de Luke Wroblewski, Director de producto de Google

Incidentes comunes que se reportan en las pruebas funcionales

  • Integración con redes sociales en las funcionalidades de Registro y Log in.

Al probar esta integración, a veces ocurre que después de “registrarse” o “loguear un usuario” no se retorna a la App, sino que se queda en las mismas RR.SS. Se recomienda probar estos escenarios con las Apps de RR.SS instaladas y desinstaladas.

  • Habilitar la opción de rotar pantalla

Al probar esta funcionalidad puede suceder que el contenido no se adapta a modo Landscape, ya que no está configurada.

  • Realizar un Gesto Básico en Pantalla

Ocurre que al intentar realizar algún gesto la App se rompe. Esto puede pasar cuando el gesto no está configurado correctamente.

Usabilidad

Este tipo de pruebas se centra en garantizar que el usuario final tenga una buena experiencia al usar la aplicación. Las pruebas de usabilidad aseguran que se construya una aplicación móvil intuitiva y fácil de usar.

Es recomendable incorporar a los usuarios desde que se liberan los Mockup o Diseño de interfaz, y obtener su feedback al respecto. 

También incorporar en nuestro proceso de pruebas las Pruebas UAT. Es vital obtener el feedback de los usuarios que no conocen la aplicación, antes de salir a producción. Nuestro rol como testers es ayudar a coordinar, preparar guiones de pruebas y orientar a los usuarios en las Pruebas UAT.

Su feedback ayudará a definir al cliente qué acciones tomar con respecto a la aplicación móvil, y si es factible lanzarla al mercado o ejecutar algunos cambios antes de su lanzamiento.

Conectividad

Las aplicaciones web no funcionan sin conexión y la misma regla se aplica a las aplicaciones web móviles. En este caso, se debe probar si funcionan bien frente diferentes velocidades de conexión a Internet.

Cuando se trata de aplicaciones móviles nativas y algunas aplicaciones móviles híbridas, es fundamental verificar si una aplicación funciona correctamente en el modo fuera de línea o modo avión, y cómo funciona con 3/4/5G o Wi-Fi.

Los escenarios que se pueden probar son los siguientes:

  • Cómo se comporta conectada a una red de Datos de un Operador. 
  • Cómo se comporta conectada a una red Wi-Fi.
  • Cómo se comporta conectada a una red de datos de un operador y a una red Wi-Fi.
  • Cómo se comporta cuando se pierde la conexión.
  • Cómo se comporta cuando la señal es débil.

Incidentes comunes que se reportan en las pruebas de conectividad

  • Cuando se pierde la conexiona Internet la App no muestra una alerta.

La App no informa al usuario que se perdió la conexión.

  • Cuando una App está conectada a la red de datos de un operador y esta se queda sin Internet (se terminó el saldo del teléfono).

La App no alerta esta situación y queda en un estado de loop, esperando respuesta del servidor.

Rendimiento

Las pruebas de rendimiento ayudan a garantizar que la aplicación móvil funcione como se espera bajo cargas de trabajo diferentes y específicas. El rendimiento de una aplicación móvil es crítico, y se considera un factor importante para su éxito.

Nadie quiere esperar, y muchos usuarios desinstalan una aplicación si se inicia lentamente, o bien, si tarda demasiado en cargar el contenido, por lo que se recomienda:

  • Contabilizar el tiempo desde que se abre la App hasta que se muestra la primera pantalla, pues no debe exceder los 2 segundos. 
  • Verificar el consumo de batería.
  • Chequear si se sobrecalienta el dispositivo móvil. 
  • Revisar el uso de memoria.

Los escenarios indicados anteriormente se pueden probar con el solo hecho de utilizar un dispositivo móvil físico de pruebas. A medida que se utilice la App se deben tener en cuenta factores como el tiempo de respuesta, la batería y la memoria. No debemos ser especialistas en pruebas de rendimiento para alertar alguna de estas situaciones.

Incidentes comunes que se reportan en las pruebas de rendimiento

  • La App se demora mucho en cargar. La primera vez que se usa se tarda mucho en que cargue la primera pantalla.

Apptim

Apptim es un Spin-off de Abstracta que permite probar y analizar fácilmente el rendimiento de las aplicaciones móviles, evitando que los problemas se transmitan a sus usuarios. Actualmente solamente está disponible para aplicaciones nativas.

Interrupciones

Este tipo de pruebas asegura que la aplicación móvil funcione como se espera cuando se encuentre ante eventos abruptos e inesperados. Existen muchas posibilidades de que un usuario reciba una llamada o una notificación push mientras usa la aplicación móvil.

Algunos de los escenarios que podemos probar son:

  • ¿Qué ocurre al recibir una llamada o un SMS? ¿Qué ocurre al realizar una llamada o enviar un SMS? ¿La aplicación móvil continúa funcionando o se rompe?
  • Qué sucede después que el usuario apaga el dispositivo o que el dispositivo se apaga inesperadamente, ¿la aplicación móvil abre correctamente o se rompe?
  • ¿Cómo se comporta la app al recibir una alerta o notificación?
  • ¿Qué pasa con la aplicación al interactuar con otras del dispositivo?

Compatibilidad

Para este tipo de pruebas es recomendable crear una estrategia de pruebas de dispositivos combinada, entre dispositivos físicos o reales. Se debe definir qué versiones del sistema operativo soporta la aplicación móvil y probar lo siguiente:

Independiente del tipo de aplicación, todo diseño de una aplicación móvil debe ser responsivo. Al igual que las aplicaciones web de escritorio, las aplicaciones web móviles se deben probar en varios navegadores. Algunos de los navegadores móviles más conocidos son Google Chrome, Safari, Firefox, Edge, Opera y Samsung.

  • Cómo se comporta en diferentes versiones del sistema operativo, tales como iOS y Android.
  • Cómo funciona en diferentes dispositivos móviles de especificaciones de hardware.
  • La aplicación móvil se ve bien y funciona sin problemas en diferentes resoluciones y tamaños de pantalla.

Incidentes comunes que se reportan en las pruebas de compatibilidad

  • La App no es responsiva: El diseño de la App no se adapta correctamente al tamaño de pantallas más pequeñas.
  • El contenido de la App web no se visualiza correctamente: Los campos de la página se desconfiguran en cierto navegador y sistema operativo.

Descarga, Instalación y Actualización

La aplicación móvil más fabulosa no es útil si los usuarios no pueden descargarla, instalarla o actualizarla sin tener problemas. Por tanto, se debe verificar lo siguiente:

  • ¿Se puede descargar la aplicación?
  • ¿Cómo se comporta la aplicación móvil durante la instalación, desinstalación y reinstalación? ¿Se presentó alguna interrupción?
  • ¿Se puede actualizar la aplicación móvil? ¿Los datos almacenados son consistentes después de la actualización?
  • ¿Se puede actualizar la App cuando existen múltiples actualizaciones disponibles? ¿Cómo se comporta cuando otras aplicaciones móviles se están actualizando?
  • ¿La aplicación móvil funciona correctamente después de actualizar el sistema operativo del dispositivo? Es vital verificar que una actualización del sistema operativo no rompa la aplicación y se pueda volver a utilizar.

Incidentes comunes que se reportan en este tipo de pruebas

  • La App no funciona luego de actualizar el Sistema Operativo del dispositivo móvil.

Localización

Las pruebas de localización aseguran que la aplicación móvil funcione como se espera en diferentes mercados, países y regiones. Algunos de los escenarios que podemos probar son:

  • Verificar que las traducciones sean correctas y que no sean traducciones generadas automáticamente, ya que los usuarios reconocerán esto de inmediato y probablemente no disfrutarán usando la App.
  • Comprobar que la aplicación muestre la hora correctamente en diferentes zonas horarias.
  • Confirmar que los textos y los elementos de la interfaz se vean y funcionen en diferentes idiomas sin problemas.

Incidentes comunes que se reportan en las pruebas de localización

  • En una App las traducciones son generadas automáticamente. El texto en otro idioma auto-generado no entrega el mensaje correcto.

Lecciones aprendidas sobre Pruebas de Software en una Aplicación Móvil

  1. El tipo de aplicación móvil y su versión de Sistema Operativo definirá las pruebas que se deben incluir en el plan.
  2. Siempre se debe tener al menos un dispositivo móvil físico o real para probar, complementar con simuladores o emuladores y herramientas en la nube. Se debe buscar una estrategia combinada de dispositivos reales y virtuales que abarquen las necesidades de las pruebas.
  3. Considerar las pruebas de usabilidad en el proceso de testing. Debe existir un grupo de usuarios que evalúen la aplicación móvil antes de salir al mercado, no solo bastará con la visión de los testers.
  4. Siempre considerar distintos escenarios de conectividad en las pruebas, tales como modo avión, Wi-Fi o diferentes redes de cobertura.
  5. No tenemos que ser especialistas en performance para alertar de algún comportamiento irregular en el dispositivo móvil.
  6. Revisar siempre cómo se comportará la App después de una actualización. Es vital asegurarse si se instaló la versión que corresponde.
  7. No es lo mismo probar una aplicación para escritorio que para un dispositivo móvil. Tenemos que considerar otros escenarios para realizar las pruebas de software en una aplicación móvil.

¿Busca ayuda para lanzar al mercado una aplicación de calidad? Nuestro equipo puede ayudarlo a ejecutar las pruebas adecuadas para cada entorno (iOS o Android), asegurando que se ejecuten correctamente y funcionen bien en diferentes plataformas y dispositivos, proporcionando a sus usuarios finales una experiencia positiva.

Conozca más sobre nuestro servicio de testing para aplicaciones móviles o agende aquí una consultoría gratuita y personalizada de 30 minutos con nuestros expertos, y conozca cómo nuestros testers pueden colaborar con su proyecto.


Otros contenidos relacionados

Shift Left a11y: ¿cómo incluir la accesibilidad lo antes posible en los proyectos?

Mejore su estrategia de pruebas: un modelo de madurez de testing de software