Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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:
Hay emuladores de móvil gratuitos y fáciles de usar. Algunos de ellos son: Mobile Phone
Emulator, MobiReady, Responsivepx, Screenfly y BrowserStack.
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:
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).
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.
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.
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?
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.
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.