Está en la página 1de 12

Curso de Testing QA avanzado

MATERIAL DE LECTURA

Testing en Dispositivos
Móviles. Nivel 2
Objetivos de la Guia
En esta guía aprenderemos a:
● Conceptos de testing mobile
● Definición de emuladores
● Farm o granja de pruebas
● Concepto de APK
● Android Studio
● Appium como herramienta de pruebas
● Configuración de Appium

INTRODUCCIÓN

Con este material profundizaremos en temas relacionados a la creación de tests


(pruebas) asociadas al mundo mobile (dispositivos móviles), con la finalidad de definir el
uso de las herramientas y emuladores, además de hacer pruebas básicas que nos
permitiran incursionar en las tecnicas de pruebas mobile, con la herramienta de
inspección de appium aprenderemos a crear código sencillo para ejecutar pruebas y de
esta manera poder practicar con dispositivos reales y virtuales.
Testing en dispositivos móviles

La mayoría de las empresas necesitaron adaptar sus aplicaciones para que fueran accesibles a
través de los teléfonos móviles o desarrollar aplicaciones para dispositivos móviles, dado que los
teléfonos móviles son utilizados por casi todos los usuarios de Internet (99%). Además, el uso de
Internet exclusivamente a través de los teléfonos móviles es del 46% (Fuente: PAINEL TIC
COVID-19).

Por ello, se ha adoptado con fuerza el mobile first. Es decir, el enfoque inicial de los proyectos web
es servir a los dispositivos móviles y luego a los desktops.

Así, en relación con la arquitectura, podemos encontrar:


Aplicativos nativos:
Desarrollados para funcionar en una única plataforma como iOS, Android o Windows.
Generalmente son más rápidos.

Mobile web apps:


En realidad, se trata de sitios web que tienen parte de su ejecución realizada por un servidor. La
interfaz es procesada por diferentes navegadores como Chrome o Firefox (solo accesible con
conexión a Internet).
Aplicativos híbridos:
Son una combinación de aplicaciones nativas y web. Están hechas con código HTML5, JavaScript
y CSS.

También hay aplicaciones responsivas, diseñadas para servir a los usuarios en una variedad de
dispositivos.

Además, los usuarios exigen, cada vez más, una experiencia digital (en términos de velocidad,
funcionalidad y eficiencia). Por eso es crucial el papel del equipo de desarrollo en la evaluación de
la calidad del producto. Pero, ¿cómo se prueban estas aplicaciones durante su desarrollo? Con
emuladores. Veamos de qué se trata.
Emuladores
El emulador es un software que simula varios entornos y escenarios en el mismo software, lo que
permite una mayor investigación. En la categoría de emuladores de móviles hay 3 tipos:

● Emulador de dispositivos: simula algún tipo de dispositivo y suele ser


proporcionado por los propios fabricantes.
● Emulador de navegador: simula los distintos escenarios a los que puede
enfrentarse un navegador móvil.
● Emulador de SO: simulado disponible en el mercado.

Hay emuladores de móvil gratuitos y fáciles de usar. Algunos de ellos son: Mobile Phone
Emulator, MobiReady, Responsivepx, Screenfly y BrowserStack.

Emuladores para Android


En general, durante la creación de una app, podemos considerar las etapas de planificación,
creación de prototipos, desarrollo de software, pruebas de calidad y publicación. Entre las
pruebas más comunes, en este caso, están las de compatibilidad, movilidad, usabilidad,
rendimiento, sincronismo, seguridad y funcionalidad. Todas estas permiten lograr un mejor
resultado en la entrega de la app.

Así, cuando las empresas optan por desarrollar aplicaciones para dispositivos móviles, en
lugar de realizar cambios en la aplicación existente para que sea responsive (veremos este
concepto en el siguiente bloque), el equipo puede adoptar algunas estrategias para realizar
las pruebas en aplicaciones Android:

● Para las necesidades básicas de pruebas, Android Studio incluye funciones que
ayudan a crear, ejecutar y visualizar los resultados en el entorno de desarrollo
integrado. Con Studio, podemos apuntar y hacer clic en el código fuente de la
aplicación para crear y ejecutar pruebas para clases o métodos específicos, utilizar
menús desplegables para configurar varios dispositivos de prueba e interactuar con la
ventana de la herramienta Text Matrix para visualizar los resultados.
● Para un control más refinado, podemos ejecutar las pruebas en la línea de comandos.
Esto ofrece una forma sencilla de realizar pruebas en módulos específicos, variantes
de construcción o combinaciones. La ejecución de pruebas desde el shell de Android
Debug Bridge (adb) permite la mayor personalización.
● Para las necesidades de pruebas avanzadas, es posible que desee anular la
configuración predeterminada, configurar las opciones de Gradle o refactorizar el
código para que las pruebas estén separadas en el propio módulo.
● Para probar cómo se comporta la aplicación cuando el usuario interactúa con ella,
podemos utilizar herramientas como Espresso Test Recorder, App Crawler,
Monkey Testing y monkeyrunner.
Conozcamos, a continuación, los emuladores para Android.

Android emulator
El emulador ofrece casi todas las funciones de un dispositivo Android real. Permite simular la
recepción de llamadas telefónicas y mensajes de texto, especificar la ubicación del dispositivo,
simular diferentes velocidades de red, simular la rotación y otros sensores de hardware, acceder a
Google Play Store y mucho más.

Probar la aplicación en el emulador es más rápido y fácil que en un dispositivo físico. Por ejemplo,
permite transferir datos más rápidamente al emulador que a un dispositivo conectado por USB.

Por defecto, el emulador de Android se ejecuta directamente en Android Studio. Permite ahorrar
espacio en la pantalla, navegar rápidamente entre el emulador y la ventana del editor utilizando
teclas de acceso rápido, y organizar el flujo de trabajo del entorno de desarrollo integrado y el
emulador en una sola ventana de aplicación.

Android Studio
Android Studio está diseñado para facilitar las pruebas y cuenta con varias funciones que
simplifican la creación, ejecución y análisis de las mismas. Permite configurar pruebas que se
ejecutarán en la máquina local o pruebas instrumentadas que se ejecutarán en un dispositivo. Es
fácil ejecutar una sola prueba o un grupo específico de pruebas en uno o más dispositivos. Los
resultados de las pruebas se muestran directamente en Android Studio.

Android Studio se puede instalar en sistemas operativos Windows, OSX y Linux. El propio Google
recomienda contar con un hardware que tenga al menos 4 GB de memoria y 1 GB de espacio libre
en disco. Sin embargo, nosotros recomendamos que tenga más memoria porque Android Studio
aún se vuelve un poco lento. Es necesario tener Java instalado en la máquina a través del JDK
(Java Development Kit) y no del JRE, como se instala normalmente, porque para desarrollar en
Android es necesario que todas las clases de desarrollo de Java estén presentes en la máquina.
Si las pruebas pueden automatizarse, puede utilizarse algunas bibliotecas:

● AndroidJUnitRunner: compatible con JUnit 4, también admite pruebas unitarias.

● Espresso: muy recomendable para las pruebas de pantalla funcionales.

● UI Automator: otro framework para probar la interfaz de usuario. A menudo se utiliza


para pruebas funcionales entre aplicaciones instaladas en el dispositivo del usuario.

Instalación del APK en el dispositivo


El APK (Android Application Pack) funciona como un archivo .exe para los dispositivos móviles
que utilizan el sistema operativo de Google. Es muy utilizado por los desarrolladores y por quienes
quieren aplicaciones que aún no han sido lanzadas, que no son compatibles con sus teléfonos o
que a menudo no están disponibles en las tiendas oficiales. Una alternativa para las pruebas
(principalmente manuales). Es necesario habilitarlo en el teléfono móvil, que no lo permite por
defecto.
Device farm (granja de dispositivos)
Especialmente útil para ejecutar pruebas de aplicaciones en una variedad de dispositivos. La
granja de dispositivos se refiere a un conjunto de dispositivos puestos a disposición (en la nube o
en la infraestructura física) para interactuar con aplicaciones Android, iOS y web en teléfonos
inteligentes y tablets.

Hay dos formas posibles de acceder a ellas:

● A través de pruebas automatizadas de aplicaciones utilizando una variedad de


estructuras.
● Acceso remoto a dispositivos en los que se puede interactuar con las aplicaciones en
tiempo real.

Emuladores para iOS


iOS es el segundo sistema operativo móvil más popular en todo el mundo. Sin embargo, los
testers se enfrentan a algunas dificultades a la hora de probar aplicaciones para dispositivos iOS
debido a algunas restricciones del sistema operativo. Por lo tanto, las opciones no son tan
numerosas.

Para probar las características de las aplicaciones de iOS tenemos algunas opciones (además de
acceder al device farm):

● Emuladores
○ Appetize.io
○ Smartface
○ Xamarin.ios
● Aparato físico
○ Podemos conectar el dispositivo a una Mac y elegir el dispositivo en el menú de
destino de ejecución (en Xcode). Para las versiones de macOS de una
aplicación para iPad, elegir “Mi Mac” (el Mac que ejecuta Xcode) como
dispositivo.
Dispositivo de simulación
● Es una de las opciones cuando ejecutamos la aplicación en Xcode (el entorno de
desarrollo integrado de Apple y software libre).

Simulador remoto para Windows

● El simulador remoto de iOS para Windows se instala automáticamente como parte de


Xamarin en Visual Studio 2019 y Visual Studio 2017. Para utilizarlo, debemos seguir estos
pasos:
1. Emparejar Visual Studio 2019 con un host de Mac Build.
2. En Visual Studio, comenzar a depurar un proyecto de iOS o tvOS. El
Simulador Remoto de iOS para Windows aparecerá en su ordenador con
Windows.
TestFlight
1. Made available by Apple permite que una versión beta esté disponible para ser probada
durante 90 días. Los testers utilizarán la aplicación TestFlight para instalar la aplicación
beta y dar su opinión. Pueden recibir una invitación por correo electrónico o simplemente el
enlace de invitación para instalar TestFlight y probar la beta.

2. TestFlight admite aplicaciones para iOS, iPadOS, macOS, tvOS, watchOS e iMessage,
además de actualizaciones automáticas para garantizar que los testers siempre realicen
pruebas con la última versión disponible. Se pueden probar hasta 100 aplicaciones a la
vez, de forma interna o externa, y se pueden probar varias compilaciones
simultáneamente.

3. Podemos asignar hasta 100 miembros de equipo, que tengan el papel de titular de la
cuenta, administrador, gestor de la aplicación, desarrollador o de marketing como beta
testers. También podemos crear varios grupos y añadir diferentes construcciones a cada
uno, dependiendo de las características en las que queramos que se centre cada grupo.
Mientras iteramos en nuestra aplicación, cada miembro puede probar rápidamente las
versiones beta en hasta 30 dispositivos y acceder a todas las versiones beta disponibles
para las pruebas.

4. Con la aplicación TestFlight para iOS, iPadOS y macOS, los testers pueden enviar sus
comentarios directamente desde su aplicación con solo hacer una captura de pantalla.
También pueden proporcionar un contexto adicional sobre un fallo de la aplicación
inmediatamente después de que se produzca. Esta información es fácil de conseguir.

¿Aplicación web o responsive?


Las aplicaciones responsivas pueden confundirse fácilmente con las aplicaciones web. Sin
embargo, la experiencia del usuario de una aplicación web móvil es más parecida a la de una
aplicación nativa, es capaz de adaptarse a pantallas de diferentes tamaños con un solo sitio web,
consumen datos de forma más eficiente, son multiplataforma porque se puede acceder a ellas a
través del navegador de cualquier teléfono móvil, independientemente de su sistema operativo.
Ambas requieren acceso a Internet.

En resumen

Dada la popularidad de las aplicaciones, y de las aplicaciones que promueven una buena
experiencia para los usuarios que acceden a ellas a través de los teléfonos móviles, la demanda
de profesionales que sepan cómo probar estas aplicaciones es cada vez mayor. Esto también se
debe a la importancia de este papel en el equipo de desarrollo y su aporte crítico en relación con
la calidad.

Capacidad de respuesta de los emuladores

Una aplicación web responsiva se refiere a un diseño que responde eficazmente al


comportamiento del usuario y al entorno en función del tamaño de la pantalla, la orientación y la
plataforma. Cuando los usuarios quieren pasar del iPad al laptop, la aplicación web responsiva
cambia automáticamente para adaptarse a la resolución, las capacidades de scripting y el tamaño
de la imagen. En la práctica, los elementos que componen la aplicación se reorganizan y
redimensionan automáticamente en función del tamaño de la pantalla del dispositivo que accede a
ella.
Esta es la forma que adoptan las empresas para reducir el coste de producción, eliminar la
necesidad de instalar software en su dispositivo y permitir un mejor intercambio de contenidos.

El desarrollo de aplicaciones web responsive no consiste únicamente en ajustar las resoluciones


de pantalla y cambiar el tamaño de las imágenes. Aporta una forma totalmente nueva de pensar
en el diseño de aplicaciones web.

Prueba de aplicaciones con capacidad de respuesta

Existen algunas herramientas para comprobar la capacidad de respuesta de las aplicaciones y


validar que el diseño funciona correctamente.

Chrome DevTools
Device Mode es el nombre de un conjunto de características ofrecidas por Google Chrome que
ayuda a simular la presentación de los sitios web en los dispositivos móviles. Dentro de este
conjunto de herramientas de autoría y depuración web integradas en el navegador, existe una
función también llamada Device Mode (Modo dispositivo). A diferencia de otras herramientas,
Device Mode muestra exactamente cómo funciona la experiencia del consumidor en móviles,
tabletas, etc.

Esta herramienta ofrece una multitud de funciones extremadamente útiles para probar el sitio web
responsive, incluyendo, tocar y deslizar por el propio navegador web. Además, no afecta al tráfico
de las otras pestañas y permite ver e inspeccionar las consultas de medios CSS. En el caso de las
aplicaciones responsivas, device farm también es una opción.

Appium
Como ya sabemos, actualmente existe una gran variedad de dispositivos y plataformas, las cuales
a su vez, cuentan con distintas versiones. Esto puede ocasionar que el testing de aplicaciones
pueda resultar bastante complejo y llevarnos mucho tiempo y esfuerzo. En estas circunstancias
Appium nos puede ser de gran ayuda.

¿Qué es Appium?
Appium es una herramienta open-source (código abierto) para la automatización de aplicaciones
web nativas e híbridas en las plataformas móviles iOS y Android, y en la plataforma de escritorio
Windows.

Es cross-platform por lo que es posible crear pruebas en diversas plataformas utilizando la misma
API. Esto permite la reutilización de código entre conjuntos de casos de prueba definidos para una
aplicación desarrollada para varias plataformas.

Appium emplea el WebDriver de Selenium, que es un entorno de pruebas para aplicaciones web y
que especifica un protocolo cliente-servidor conocido como JSON Wire Protocol. Esto permite al
cliente el uso de marcos de pruebas escritos en cualquier lenguaje, enviando las solicitudes HTTP
apropiadas al servidor.
¿Cómo funciona?

El funcionamiento a grandes rasgos es el siguiente:

● La prueba que se está ejecutando en la máquina es enviada al servidor.


● Este envía los comandos al framework para pruebas correspondiente a cada plataforma.
● En Android es Google’s UI Automator, en iOS Apple’s UI Automation.

Existen muchas herramientas similares a Appium, tales como MonkeyTalk, KIF, Calabash, entre otros.
A diferencia de Appium, la mayoría de ellas requieren un componente adicional que se debe compilar
con el código de la aplicación para que la herramienta pueda interactuar con ella. Como consecuencia,
se deberá eliminar lo añadido para la automatización a la hora de publicarla.

Una fase importante en la automatización de pruebas es la localización de los elementos con los que
se desea interactuar. Appium permite comprobar automáticamente las propiedades y el
comportamiento de los distintos elementos (botones, cajas de texto, etc) que componen la interfaz
gráfica de una aplicación. Esto es posible mediante el uso de herramientas que inspeccionan los
elementos de la aplicación como, por ejemplo, UIAutomatorViewer o el propio inspector de Appium, y a
través de métodos de Selenium como FindElement, By, etc.
Aplicaciones híbridas
En el caso de aplicaciones híbridas, al utilizar un navegador integrado en una aplicación nativa, conocido
como WebView, algunas herramientas de inspección no nos permiten acceder a lo que está bajo el
WebView. Por este motivo se suele emplear el depurador de Chrome.

Aún con la gran ayuda que brinda Appium, presenta algunos inconvenientes como son:

● No se pueden ejecutar las pruebas en varios dispositivos iOS a la vez. Para solventar esta
limitación se puede ejecutar el script de prueba en la nube móvil de la compañía Sauce Labs, lo
que permite su ejecución en varios simuladores de iOS al mismo tiempo.

● El uso de UIAutomatorViewer en Android es válido a partir de la API 16 (Jelly Bean) en adelante.


Para solucionarlo se debe emplear la biblioteca open-source Selendroid, dando soporte a las APIs
más antiguas.

Nota: Para este curso solo haremos pruebas en dispositivos android ya que la herramienta de android
studio es únicamente compatible con estos dispositivos, las herramientas para IOS en su mayoría son de
pago.
Material de apoyo sugerido

Sugerimos el siguiente material para aprender a hacer pruebas en dispositivos móviles, se encontraran varios
videos desde la forma de crear un proyecto, hasta creación de una prueba básica usando la herramienta de
inspección de appium.

Configuración básica de maven y capabilities para pruebas con appium:


https://www.youtube.com/watch?v=I5tHUhb6z5o&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=3

Conexión del móvil desde el emulador a appium:


https://www.youtube.com/watch?v=YizRPeOd7bQ&t=228s

Conexión del móvil físico a appium y Android studio:


https://www.youtube.com/watch?v=5vp2PBydhQQ&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=2
https://www.youtube.com/watch?v=y3nMaXfNOcg

Casos de prueba en dispositivos físicos:


https://www.youtube.com/watch?v=I5tHUhb6z5o&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=3

Uso del inspector de appium:


https://www.youtube.com/watch?v=78NueRsKYYc&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=4

Uso de Android Studio:


https://www.youtube.com/watch?v=8WfQQ0BRDY8

Como descargar un APK en un dispositivo dentro de Android Studio:


https://www.youtube.com/watch?v=rXiby07Iql4

Proyecto completo de ejemplo:


https://www.youtube.com/watch?v=7Ahx3hmLg4Y

Vídeos Adicionales no obligatorios, ya que será necesario una cuenta empresarial:

Instalación de appium studio:


https://www.youtube.com/watch?v=bi95sm8aKto&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=8

Creacion de prueba con appium studio:


https://www.youtube.com/watch?v=cS0y7gIrxNg&list=PLm2ylBViICRjtZ92uPgDMpwqrq0txAhWy&index=9

Sugerencias para la práctica


En la parte práctica deberemos usar los videos para crear casos de prueba de dispositivos móviles como
sugerencias:

● Mira los videos a medida que vas practicando


● Descargar las herramientas del encuentro anterior
● Si sabes como crear una máquina virtual podría serte útil para ejecutar las pruebas
● En el emulador usa dispositivos que tengan playstore disponible

También podría gustarte