Testing de Apps Xamarin
-
Upload
javier-suarez-ruiz -
Category
Technology
-
view
51 -
download
0
Transcript of Testing de Apps Xamarin
![Page 1: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/1.jpg)
TESTING DE APPS XAMARIN
Como hacer pruebas unitarios y de interfaz de Apps móviles multiplataforma Xamarin.
Además veremos como utilizar Xamarin Test Cloud y una introducción a Visual
Studio Mobile Center.
SVQXDG
![Page 2: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/2.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Javier SuárezMicrosoft MVP Xamarin MVPSoftware Developer at Plain Concepts
• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz
![Page 3: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/3.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
XAMARIN: APPS NATIVAS MULTIPLATAFORMA
![Page 4: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/4.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
XAMARIN
Base de código C# compartido • 100% acceso a APIs nativas • Alto rendimiento
iOS C# UI
Windows C# UIAndroid C# UI
Shared C# Mobile
![Page 5: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/5.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
XAMARIN + XAMARIN.FORMS
Classic Con Xamarin.Forms
iOS C# UI
Windows C# UIAndroid C# UI
Shared C# Backend
Shared UI Code
Shared C# Backend
![Page 6: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/6.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Cualquier cosa que pudieras hacer con Objective-C, Swift, o Java
se puede hacer con C# y Visual Studio con Xamarin.
![Page 7: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/7.jpg)
COSAS QUE PASAN…
¿CIERTO?
![Page 8: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/8.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
¿QUÉ VAMOS A VER?Un vistazo a la agenda
Repasamos nuestra App Xamarin y creamos pruebas unitarias.
Pruebas unitariasXamarin UITest y Xamarin Test Recorder
Pruebas de UI
Accedemos a cientos de dispositivos para probar nuestra aplicación utilizando Test Cloud.
Xamarin Test CloudCerramos echando un vistazo a Mobile Center.
Visual Studio Mobile Center
![Page 9: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/9.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Fragmentación
• Complejidad de Apps
• Ciclos ágiles
• Expectación alta usuarios
EL RETO
![Page 10: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/10.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
+5 Versiones del sistema22 Dispositivos20 Idiomas35 Localizaciones6 Tamaños de pantalla
9 Versiones del sistema6 Configuraciones de pantalla27 Tamaños de pantalla39 Idiomas
57 Localizaciones+15 FabricantesMás de 19,000 dispositivos distintos
EN TELÉFONOS, LA CALIDAD CUESTA
![Page 11: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/11.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
![Page 12: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/12.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
![Page 13: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/13.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DIVERSIFICACIÓN EN IOS
3D Touch iPhone 6s
Apple penciliPad Pro
Multi TaskingSolo en algunos iPads
iPads
iPod touchiPhones
Factores de forma
Características iOS 9
![Page 14: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/14.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Mercado dispositivos USADeberíamos tener 134 dispositivos para cubrir al menos el 75% del Mercado de USA
25% 50% 75% 90%Market Share
Num
ber o
f Dev
ices
13
45
134
288
0
![Page 15: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/15.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Ciclos prolongados
Iteraciones rápidas
Test más complejos
Tests simples
Beta Testing
Test manuales
Test automáticos de UI
Unit Testing
¿Cómo testeamos?
Test automáticos de UI permiten asegurar:
• Arranque• Apariencia• Comportamiento
En distintos dispositivos
![Page 16: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/16.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Tenemos grandes razones para hacer pruebas unitarias a nuestro código:• Reducir la cantidad de bugs.• Detectar errores de forma más rápida y efectiva.• Añaden documentación.• Reducen costes.
MOTIVOS PARA HACER A TESTS UNITARIOS
![Page 17: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/17.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Una prueba unitaria debe ser:• Rápida.• Reproducible.• Mantenible.• Independiente.
TEST UNITARIO
![Page 18: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/18.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Para hacer pruebas unitarias utilizaremos un framework de testing.• En Xamarin Studio se utiliza por defecto
Nunit.• Visual Studio utiliza por defecto MSTest.
Podemos utilizar Nunit o Xunit también en ambos IDEs.
FRAMEWORKS PARA HACER TESTING UNITARIO
![Page 19: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/19.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Recuerda:• Deben ser lo más simples posibles.• Prueba lógica de la aplicación NO métodos. Es común ver
multiples pruebas para un sencillo método.• Si el test es difícil de escribir…
– Falta context para identificar requisites.– Indicar un problema de diseño.
ESCRIBIENDO TESTS UNITARIOS
![Page 20: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/20.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
[TextFixture]public class Tests{ [Test]
public void TestSomething_ShouldBeOk(){
}}
ESCRIBIENDO TESTS UNITARIOS
![Page 21: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/21.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOApp Xamarin y test unitarios
![Page 22: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/22.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Las pruebas de UI es el proceso de probar la interfaz de usuario de la aplicación y su interacción de forma automática.• Normalmente se suelen hacer estas pruebas de forma
manual.• Utilizadas para identificar problemas de UX.• Pueden identificar problemas con algunas plataformas,
Sistemas operativos o factores de forma.
INTRODUCCIÓN A LAS PRUEBAS DE UI
![Page 23: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/23.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Crear tests automáticos de la interfaz de usuarios en C#
• Se pueden corer directamente desde Visual Studio o Xamarin Studio
• Se pueden usar simuladores• Funciona con apps: Nativas,
Híbridas o Xamarin• Se pueden subir a Test Cloud
INTRODUCCIÓN A XAMARIN.UITEST
![Page 24: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/24.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Visual Studio cuenta con una plantilla de Proyecto Xamarin.UITest en Visual C# > Mobile Apps.
CREANDO PROYECTO XAMARIN.UITEST
![Page 25: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/25.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOCreando Proyecto Xamarin UITest
![Page 26: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/26.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
La plantilla del Proyecto Xamarin.UITests crea una clase [SetUp] encarga de la inicialización de UITest. El contenido será diferente dependiendo del tipo de Proyecto (Mobile, iOS, Android).
ANATOMÍA PROYECTO XAMARIN.UITESTpublic class AppInitializer{ public static Iapp StartApp(Platform platform) { if(platform == Platform.Android) { // Android } // iOS }}
![Page 27: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/27.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
La API de Testing define un conjunto de métodos destinados a interaccionar con la UI disponibles vía la interfaz IApp.
Actualmente hay dos implementaciones disponibles• iOSApp• AndroidApp
INTERACCIÓN CON UITEST
![Page 28: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/28.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
![Page 29: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/29.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Se utiliza la propiedad AutomationId para permitir el acceso al control utilizando el selector Marked.
AÑADIENDO SOPORTE A XAMARIN.FORMS
<Button Text=“Click Me” AutomationId=“MyButton” />
![Page 30: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/30.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOUn vistazo a Tests de tipo Xamarin UITest
![Page 31: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/31.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Test Recorder es una herramienta que permite crear pruebas de forma sumamente sencilla realizando una interacción directa con la aplicación.
Disponible tanto para Windows como para MacOS.
UTILIZANDO TEST RECORDER
![Page 32: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/32.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Requiere un API Key de Xamarin Test Cloud– Se puede obtener de forma gratuita.
• Soporta iOS 8 o superior.
• Soporta Android 4.2 o superior.– Es necesario incluir el permiso de Internet.
LOS REQUISITOS
![Page 33: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/33.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOCreando pruebas con Test Recorder
![Page 34: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/34.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
XAMARIN TEST CLOUD
![Page 35: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/35.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Xamarin Test Cloud es un servicio disponible en la nube que permite ejecutar pruebas de UI en cientos de dispositivos móviles (reales) diferentes.
Disponible en testcloud.xamarin.com
¿QUÉ ES XAMARIN TEST CLOUD?
![Page 36: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/36.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOXamarin Test Cloud
![Page 37: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/37.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
A/B Testing
Live UpdateStorage
Push Notifications
Crash Reporting Remote Config. Identity
Tables
Visual Studio Mobile CenterMission control para mobile apps
ANUNCIADO
:-)
![Page 38: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/38.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Visual Studio Mobile Center
Mission control para Apps móvilesbuild, test, despliegue, monitorear (continuo)Funciona con cualquier App móvilhttp://mobile.azure.com
![Page 39: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/39.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Incluye los siguientes servicios:• Build: CI y CD• Test: Pruebas automáticas en dispositivos reales• Reporte de errores: Analíticas de errores en tiempo real• Distribución: Despliegue a usuarios o grupos• Analíticas: Métricas de uso• Autenticación: Integración sencilla con métodos comunes• EasyTables: Crear almacenamiento de forma muy rápida
Visual Studio Mobile Center
![Page 40: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/40.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Soporte para Apps iOS & Android
• Build• Xamarin• Objective-C• Swift• Java• Javascript
• Test:• Xamarin.UITest• Calabash• Appium
Visual Studio Mobile Center
![Page 41: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/41.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
• Soporte para iOS & Android• Mobile SDK
• Analíticas• Reporte errores• Mobile Backend
• API :• Open Source CLI• http://github.com/Microsoft/MobileCenter-Cli
Visual Studio Mobile Center
![Page 42: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/42.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
DEMOVisual Studio Mobile Center
![Page 43: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/43.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
Visual Studio Mobile Center cuenta con una herramienta de línea de commandos llamada mobile-center-cli: https://github.com/Microsoft/mobile-center-cli
SUBIR XAMARIN.UITEST
mobile-center test run uitest
![Page 44: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/44.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
CONCLUSIONES TESTING¿Qué hemos aprendido?
• Pruebas unitarias, cortas reproducibles que verifiquen la lógica de nuestra App.
• Pruebas de UI validan el comportamiento de la aplicación, problemas de UX y validación de funcionamiento en dispositivos.
• Fácil de crear tests con Test Recorder.
• Acceso a cientos de dispositivos con Test Cloud.
![Page 45: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/45.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
¿PREGUNTAS y RESPUESTAS?¿Dudas?
P&R
![Page 46: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/46.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
GRACIAS a TODOSPor vuestro tiempo!
Javier SuárezMicrosoft MVP Xamarin MVP
• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz
![Page 47: Testing de Apps Xamarin](https://reader036.fdocuments.net/reader036/viewer/2022081419/58a3d06b1a28ab98588b641f/html5/thumbnails/47.jpg)
TESTING DE APPS XAMARINJAVIER SUÁREZ RUIZ
.
.
TESTING DE APPS XAMARINComo hacer test unitarios y de UI de Apps móviles multiplataforma Xamarin.