Pruebas de performance mobile

En este post les comparto un resumen hecho por Sofía Palamarchuk, una de mis socias en Abstracta y CEO de Apptim. Sofi nos resume el webinar que dio donde habló de pruebas de performance mobile.



Hace poco realicé un webinar sobre pruebas de performance mobile (de aplicaciones móviles). El desempeño o performance de una aplicación es uno de los factores de calidad que están directamente relacionados con la experiencia del usuario y es un aspecto crítico que cualquier equipo de desarrollo de app móviles debe integrar en su ciclo de pruebas.

Les dejo aquí el video del webinar y un resumen de los aspectos más importantes de la charla.

La performance de una aplicación es el producto de distintos factores como ser el servidor, la red, el dispositivo en el que corre y la implementación de la app misma.

Como testers de performance, podemos medir la performance de una aplicación bajo distintos escenarios, puede ser mayor concurrencia de usuarios, diferentes modelos de dispositivos, que varían en recursos hardware y tamaños de pantalla, y tipos de redes, como puede ser 3G, G y Wifi y demás.

La realidad es que hay muchas variables que afectan la performance de una aplicación. Un usuario puede tener una muy mala experiencia y la causa puede estar fuera de lo que es la implementación o el código que ejecuta la app. Por esto es importante entender qué tipos de pruebas podemos realizar y dónde enfocar nuestros esfuerzos a la hora de buscar mejorar la experiencia de nuestros usuarios móviles.

¿Cómo podemos probar la performance de nuestra aplicación?

Podemos hacer pruebas de performance de cada uno de estos factores por separado, para identificar problemas y realizar optimizaciones.

1- Pruebas de performance de lado del servidor 

Estas son las pruebas que generalmente uno piensa cuando habla de performance. Pueden haber distintas, como pruebas de carga, de stress, de resistencia, entre otras. En general, el objetivo de este tipo de pruebas es entender el comportamiento de nuestra aplicación bajo cierto número de usuarios concurrentes, y ver cómo los componentes del lado del servidor se comportan y qué tan bien manejan mayores cargas. Si querés conocer cómo funcionan las herramientas para hacer estas pruebas, revisá este post.

2- Pruebas de performance en distintas redes

Existen dos grandes factores que afectan la performance de una app en una red: la latencia y el ancho de banda. La performance de una app puede variar dependiendo si se está conectado a una red 3G o una red LTE. Más allá de que esto sea algo fuera de nuestro control (qué tan buena la red es a la que está conectado nuestro usuario), si podemos incorporar en nuestra pruebas de carga, simular tipos de redes y ver su impacto en los tiempos de respuesta del lado del servidor.

También podemos ir un paso más y realizar pruebas desde el lado del cliente, utilizando dispositivos reales, y variando la red a la cual está conectado cada dispositivo. 

3- Pruebas de performance del lado del cliente

Al realizar pruebas de apps móviles, tenemos que tener en cuenta que solo probar el comportamiento funcional de una app no es suficiente para asegurarnos la mejor experiencia de los usuarios. Aquí, las pruebas de performance de la app juegan un rol crucial.

Hoy en día existen miles de dispositivos móviles en el mercado que varían en marca, hardware y sistema operativo. Esto hace que cada año sea más difícil asegurar que un app funcione bien en la mayoría de los dispositivos que tienen nuestros usuarios, sin generar fricciones en adopción y frustración que lleve a que desinstalen la app o la dejen de usar.

¿Por qué probar la performance mobile del lado del cliente?

Ya mencioné que la performance de una app está directamente relacionada con la experiencia de usuario. En particular, las pruebas de performance mobile, o sea, del lado del cliente, nos ayudan a entender cómo nuestra app se comporta en el dispositivo, cómo usa los recursos compartidos con otras aplicaciones y qué oportunidades de mejoras hay.

Con este tipo de pruebas podemos identificar problemas como:  

  • Leaks de memoria: sucede cuando una app no libera bien la memoria, luego de un tiempo de uso, se queda sin memoria disponible y crashea.
  • Pantallas congeladas: sucede muchas veces debido a tiempo de renderizado muy altos.
  • Crashes: excepciones que ocurren en la app y hace que se cierre inesperadamente.

¿Qué herramientas podemos usar para cada tipo de prueba?

Del lado del servidor, aquellos que hayan hecho pruebas de carga, deben conocer JMeter, Gatling, BlazeMeter, LoadRunner y otras. Hay muchas opciones en el mercado dependiendo de las necesidades y presupuesto de cada equipo.

Del lado del cliente, depende un poco del tipo de app que queremos probar. Para apps web móviles hay herramientas como Lighthouse de Google o APMs como New Relic que ayudan a medir qué tan rápido se cargan las páginas en mobile y ofrecen tips para optimizarlas, por ejemplo, cómo cargar los recursos JavaScript, políticas de caché, entre otros.

Para las apps nativas, hay herramientas de profiling como Android Studio (para apps Android) e Instruments (para apps iOS). Estas son de gran ayuda a la hora de hacer debugging de una app y encontrar la raíz de algunos problemas de performance.

Y también, desde hace unos pocos meses, existe Apptim Desktop, el primer producto que desarrollamos dentro de mi startup Apptim, enfocado en capturar información de performance de una app nativa del lado del cliente. 

Con Apptim Desktop, queremos democratizar el acceso a información de performance de apps móviles, permitiendo que cualquier persona en el equipo de desarrollo o testing, pueda realizar pruebas de manera fácil y rápida, con solo instalar una única herramienta para testear aplicaciones Android e iOS.

Pueden comenzar a utilizar esta herramienta de manera gratuita, registrándose en nuestro sitio web y descargando la aplicación en Windows o Mac.

¿Cuándo conviene comenzar a probar la performance del lado del cliente?

¡Lo antes posible! Una vez que se tenga acceso a la primera versión de la app, ya podemos empezar a sacar métricas de la performance. Esto nos va a ayudar a entender cómo nuestra app se comporta y familiarizarnos con estas métricas. 

Al realizar estas pruebas en conjunto con los test funcionales en cada sprint, utilizando distintos dispositivos que tengamos a nuestra disposición, vamos a lograr detectar de manera temprana qué cambios realizado en la app pueden afectar la performance (identificar regresiones) y entender cómo estas métricas evolucionan con el tiempo. 

Los invito a ver la charla de pruebas de performance mobile y que nos dejen sus dudas, preguntas y comentarios.

Iniciando la Abstracta Tech Talk de Sofi

Leave a Reply

Your email address will not be published. Required fields are marked *