¿Cómo realizar Pruebas de Software en una Aplicación Móvil?

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

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

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:

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. 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. 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. Garantiza la compatibilidad con distintos dispositivos y Sistemas Operativos, como pueden ser iOS y Android. 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.

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.

Algunos ejemplos de aplicaciones Web son y

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.

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.

¿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:

⚠ 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:

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.

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.

[Video] Pruebas de performance en aplicaciones móviles

Previous articleTipos de Pruebas Para Aplicaci...
Next articleMejora del rendimiento de las aplic...

LEAVE A REPLY

Please enter your comment!
Please enter your name here