SlideShare una empresa de Scribd logo
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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
Javier Suárez
Microsoft MVP
Xamarin MVP
Software Developer at Plain Concepts
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
XAMARIN: APPS NATIVAS MULTIPLATAFORMA
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
Cualquier cosa que pudieras hacer con Objective-C, Swift, o Java
se puede hacer con C# y Visual Studio con Xamarin.
COSAS QUE
PASAN…
¿CIERTO?
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
¿QUÉ VAMOS A VER?
Un vistazo a la agenda
Repasamos nuestra App Xamarin y
creamos pruebas unitarias.
Pruebas unitarias
Xamarin UITest y Xamarin Test
Recorder
Pruebas de UI
Accedemos a cientos de dispositivos
para probar nuestra aplicación
utilizando Test Cloud.
Xamarin Test Cloud
Cerramos echando un vistazo a Mobile
Center.
Visual Studio Mobile Center
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
• Fragmentación
• Complejidad de Apps
• Ciclos ágiles
• Expectación alta usuarios
EL RETO
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
+5 Versiones del
sistema
22 Dispositivos
20 Idiomas
35 Localizaciones
6 Tamaños de pantalla
9 Versiones del sistema
6 Configuraciones de
pantalla
27 Tamaños de pantalla
39 Idiomas
57 Localizaciones
+15 Fabricantes
Más de 19,000
dispositivos distintos
EN TELÉFONOS, LA CALIDAD CUESTA
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DIVERSIFICACIÓN EN IOS
3D Touch
iPhone 6s
Apple pencil
iPad Pro
Multi Tasking
Solo en algunos iPads
iPads
iPod
touch
iPhones
Factores de forma Características iOS 9
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
Mercado dispositivos USA
Deberíamos tener 134 dispositivos para cubrir
al menos el 75% del Mercado de USA
25% 50% 75% 90%Market Share
NumberofDevices
13
45
134
288
0
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
Una prueba unitaria debe ser:
• Rápida.
• Reproducible.
• Mantenible.
• Independiente.
TEST UNITARIO
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
[TextFixture]
public class Tests
{
[Test]
public void TestSomething_ShouldBeOk()
{
}
}
ESCRIBIENDO TESTS UNITARIOS
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
App Xamarin y test unitarios
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
• Visual Studio cuenta
con una plantilla de
Proyecto
Xamarin.UITest en
Visual C# > Mobile
Apps.
CREANDO PROYECTO XAMARIN.UITEST
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
Creando Proyecto Xamarin UITest
TESTING DE APPS XAMARIN
JAVIER 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.UITEST
public class AppInitializer
{
public static Iapp
StartApp(Platform platform)
{
if(platform ==
Platform.Android) {
// Android
}
// iOS
}
}
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
TESTING DE APPS XAMARIN
JAVIER 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” />
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
Un vistazo a Tests de tipo Xamarin UITest
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
Creando pruebas con Test Recorder
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
XAMARIN TEST CLOUD
TESTING DE APPS XAMARIN
JAVIER 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?
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
Xamarin Test Cloud
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
A/B Testing
Live UpdateStorage
Push Notifications
Crash Reporting Remote Config. Identity
Tables
Visual Studio Mobile Center
Mission control para mobile apps
ANUNCIADO
:-)
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
Visual Studio
Mobile Center
Mission control para Apps móviles
build, test, despliegue, monitorear
(continuo)
Funciona con cualquier App móvil
http://mobile.azure.com
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
• Soporte para Apps iOS &
Android
• Build
• Xamarin
• Objective-C
• Swift
• Java
• Javascript
• Test:
• Xamarin.UITest
• Calabash
• Appium
Visual Studio Mobile Center
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
DEMO
Visual Studio Mobile Center
TESTING DE APPS XAMARIN
JAVIER 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
TESTING DE APPS XAMARIN
JAVIER 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.
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
¿PREGUNTAS y RESPUESTAS?
¿Dudas?
P&R
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
GRACIAS a TODOS
Por vuestro tiempo!
Javier Suárez
Microsoft MVP
Xamarin MVP
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
TESTING DE APPS XAMARIN
JAVIER SUÁREZ RUIZ
.
.
TESTING DE APPS XAMARIN
Como hacer test unitarios y de UI de Apps móviles multiplataforma Xamarin.

Más contenido relacionado

PPTX
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
PPTX
Visual Studio 2017 Launch Event Sevilla
PPTX
PUE DAY 2017: Introducción a Xamarin
PPTX
Xamarin Live Player
PPTX
Codemotion 2017 - Taller Xamarin
PPTX
Xamarin Dev Days - Introducción a Xamarin
PPTX
Conociendo el resto de ecosistema Xamarin
PPTX
Introducción al desarrollo de aplicaciones Xamarin
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Visual Studio 2017 Launch Event Sevilla
PUE DAY 2017: Introducción a Xamarin
Xamarin Live Player
Codemotion 2017 - Taller Xamarin
Xamarin Dev Days - Introducción a Xamarin
Conociendo el resto de ecosistema Xamarin
Introducción al desarrollo de aplicaciones Xamarin

La actualidad más candente (20)

PPTX
Novedades Xamarin Connect(); 2017
PPTX
Servicios Xamarin
PPTX
Xamarin University Sprint Fling 2016
PPTX
Xamarin Dev Days Madrid - Taller Xamarin
PPTX
Extendiendo Xamarin.Forms con Custom Renders
PPTX
Introducción a Xamarin.Forms
PPTX
Introduccion a Xamarin
PDF
Arquitectura xamarin - Nuestra primera app
PPTX
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
PPTX
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
PPTX
Introduction to xamarin
PPTX
Integración Continua con Apps Xamarin
PPTX
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
PPTX
Introducción a Xamarin
PPTX
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
PPTX
Xamarin forms en el mundo real
PPTX
Xamarin for Everyone
PPTX
Arquitectura en Aplicaciones Xamarin
PPTX
Universal Windows Platform Bridges
PPTX
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Novedades Xamarin Connect(); 2017
Servicios Xamarin
Xamarin University Sprint Fling 2016
Xamarin Dev Days Madrid - Taller Xamarin
Extendiendo Xamarin.Forms con Custom Renders
Introducción a Xamarin.Forms
Introduccion a Xamarin
Arquitectura xamarin - Nuestra primera app
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Introduction to xamarin
Integración Continua con Apps Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Introducción a Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
Xamarin forms en el mundo real
Xamarin for Everyone
Arquitectura en Aplicaciones Xamarin
Universal Windows Platform Bridges
Introducción al desarrollo de apps móviles multiplataforma con Xamarin.Forms
Publicidad

Destacado (20)

PPTX
SVQDC - Desarrollo de Apps apra Hololens
PPTX
re-Connect Madrid: Novedades Xamarin
PPTX
dotNetMálaga - Taller Xamarin
PPTX
Xamarin Dev Days Madrid - Xamarin.Forms
PPTX
Interfaces nativas Cross-Platform con Xamarin.Forms
PPTX
WinObjC: Windows Bridge para iOS
PPTX
Extendiendo Xamarin.Forms
PPTX
Microsoft Tech Summit - Taller Xamarin
PPTX
Tus aplicaciones en pantalla grande con Xbox One
PPTX
Xamarin REvolve 2016
PPTX
Introducción al desarrollo en HoloLens
PPTX
Reconnect(); Sevilla - Keynote
PPTX
Reconnect(); Sevilla - Introducción a Xamarin 4
PPTX
Reconnect(); Sevilla - Universal Windows Platform
PPTX
Adaptando Apps Xamarin.Forms a tabletas
PDF
Introducción a Xamarin Forms con XAML
PPTX
Introducción a Xamarin utilizando MVVMCross
PDF
Xamarin y MS Azure | Cognitive Services
PPSX
Xamarin & Microsoft Cognitive Services
PPTX
Desarrollo para Microsoft Band con Xamarin
SVQDC - Desarrollo de Apps apra Hololens
re-Connect Madrid: Novedades Xamarin
dotNetMálaga - Taller Xamarin
Xamarin Dev Days Madrid - Xamarin.Forms
Interfaces nativas Cross-Platform con Xamarin.Forms
WinObjC: Windows Bridge para iOS
Extendiendo Xamarin.Forms
Microsoft Tech Summit - Taller Xamarin
Tus aplicaciones en pantalla grande con Xbox One
Xamarin REvolve 2016
Introducción al desarrollo en HoloLens
Reconnect(); Sevilla - Keynote
Reconnect(); Sevilla - Introducción a Xamarin 4
Reconnect(); Sevilla - Universal Windows Platform
Adaptando Apps Xamarin.Forms a tabletas
Introducción a Xamarin Forms con XAML
Introducción a Xamarin utilizando MVVMCross
Xamarin y MS Azure | Cognitive Services
Xamarin & Microsoft Cognitive Services
Desarrollo para Microsoft Band con Xamarin
Publicidad

Similar a Testing de Apps Xamarin (20)

PPTX
Desarrollo Xamarin, más allá del desarrollo
PPTX
Testing Xamarin Test Cloud
PPTX
Novedades de Xamarin 4
PDF
Knowing App Center Test
PPTX
Taller Xamarin Monkey Conf 2018
PDF
Taller evento TestingUY 2017 - Automatización de pruebas no funcionales con X...
PPTX
Non Funtional Testing con Xamarin Test Cloud
PDF
Probar aplicaciones en dispositivos moviles - Pia Tobar
PDF
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
PPTX
Experiencia con Xamarin en el mundo real de los proyectos.
PPTX
introducción a xamarin
PPTX
Dev Days 1 - Introducción a Xamarin
PPTX
Xamarin ui test
PPTX
Introducción a Xamarin
PPTX
Introduccion a xamarin
PPTX
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
PPTX
OpenSouthCode 2018: Taller Xamarin
PPTX
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
PPTX
Introducción a Xamarin
PPTX
Mobile Testing: planes de acción efectivos
Desarrollo Xamarin, más allá del desarrollo
Testing Xamarin Test Cloud
Novedades de Xamarin 4
Knowing App Center Test
Taller Xamarin Monkey Conf 2018
Taller evento TestingUY 2017 - Automatización de pruebas no funcionales con X...
Non Funtional Testing con Xamarin Test Cloud
Probar aplicaciones en dispositivos moviles - Pia Tobar
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Experiencia con Xamarin en el mundo real de los proyectos.
introducción a xamarin
Dev Days 1 - Introducción a Xamarin
Xamarin ui test
Introducción a Xamarin
Introduccion a xamarin
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
OpenSouthCode 2018: Taller Xamarin
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Introducción a Xamarin
Mobile Testing: planes de acción efectivos

Más de Javier Suárez Ruiz (20)

PPTX
Cape Town MS Developer User Group: Xamarin Community Toolkit
PPTX
DotNetDom: El futuro de Xamarin
PPTX
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
PPTX
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
PPTX
Monkey Conf 2020: .NET MAUI Handlers
PPTX
Creando controles para Xamarin.Forms
PPTX
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
PPTX
Crear interfaces de usuario atractivas con Xamarin.Forms
PPTX
#XamarinUIJuly Summary
PPTX
DotNet 2019: Optimizando Apps con Xamarin.Forms
PPTX
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
PPTX
.Net Conf Sevilla 2018
PPTX
Analizando interfaces de usuario avanzadas con Xamarin.Forms
PPTX
DotNet2018: Xamarin.Forms Everywhere!
PPTX
Novedades Xamarin 3.0 Preview
PPTX
Introducción a Xamarin.Forms
PPTX
Aumento de productividad, herramientas Xamarin
PPTX
SVQXDG - Introducción a Embeddinator-4000
PPTX
dotNetMálaga 2017 - Taller Hololens con Wave Engine
PPTX
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
Cape Town MS Developer User Group: Xamarin Community Toolkit
DotNetDom: El futuro de Xamarin
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: .NET MAUI Handlers
Creando controles para Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
#XamarinUIJuly Summary
DotNet 2019: Optimizando Apps con Xamarin.Forms
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
.Net Conf Sevilla 2018
Analizando interfaces de usuario avanzadas con Xamarin.Forms
DotNet2018: Xamarin.Forms Everywhere!
Novedades Xamarin 3.0 Preview
Introducción a Xamarin.Forms
Aumento de productividad, herramientas Xamarin
SVQXDG - Introducción a Embeddinator-4000
dotNetMálaga 2017 - Taller Hololens con Wave Engine
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms

Último (20)

DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
DOCX
Las nuevas tecnologías en la salud - enfermería técnica.
PDF
Temas y subtemas de las fichas 1 y 2.pdf
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PDF
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
PDF
Conceptos básicos de programación tecnología.pdf
PDF
Calidad desde el Docente y la mejora continua .pdf
PDF
SAP Transportation Management para LSP, TM140 Col18
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
taller de informática - LEY DE OHM
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PPT
Que son las redes de computadores y sus partes
Zarate Quispe Alex aldayir aplicaciones de internet .docx
introduccion a las_web en el 2025_mejoras.ppt
Estrategia de apoyo tecnología grado 9-3
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
Las nuevas tecnologías en la salud - enfermería técnica.
Temas y subtemas de las fichas 1 y 2.pdf
historia_web de la creacion de un navegador_presentacion.pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
Trabajo colaborativo Grupo #2.docxmmuhhlk
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Aristoteles-y-su-forma-de-entender-el-conocimiento-y-las-personas.pdf
Conceptos básicos de programación tecnología.pdf
Calidad desde el Docente y la mejora continua .pdf
SAP Transportation Management para LSP, TM140 Col18
Influencia-del-uso-de-redes-sociales.pdf
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
taller de informática - LEY DE OHM
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Que son las redes de computadores y sus partes

Testing de Apps Xamarin

  • 1. 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
  • 2. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . Javier Suárez Microsoft MVP Xamarin MVP Software Developer at Plain Concepts • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 3. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . XAMARIN: APPS NATIVAS MULTIPLATAFORMA
  • 4. TESTING DE APPS XAMARIN JAVIER 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
  • 5. TESTING DE APPS XAMARIN JAVIER 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
  • 6. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . Cualquier cosa que pudieras hacer con Objective-C, Swift, o Java se puede hacer con C# y Visual Studio con Xamarin.
  • 8. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . ¿QUÉ VAMOS A VER? Un vistazo a la agenda Repasamos nuestra App Xamarin y creamos pruebas unitarias. Pruebas unitarias Xamarin UITest y Xamarin Test Recorder Pruebas de UI Accedemos a cientos de dispositivos para probar nuestra aplicación utilizando Test Cloud. Xamarin Test Cloud Cerramos echando un vistazo a Mobile Center. Visual Studio Mobile Center
  • 9. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . • Fragmentación • Complejidad de Apps • Ciclos ágiles • Expectación alta usuarios EL RETO
  • 10. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . +5 Versiones del sistema 22 Dispositivos 20 Idiomas 35 Localizaciones 6 Tamaños de pantalla 9 Versiones del sistema 6 Configuraciones de pantalla 27 Tamaños de pantalla 39 Idiomas 57 Localizaciones +15 Fabricantes Más de 19,000 dispositivos distintos EN TELÉFONOS, LA CALIDAD CUESTA
  • 11. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . .
  • 12. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . .
  • 13. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DIVERSIFICACIÓN EN IOS 3D Touch iPhone 6s Apple pencil iPad Pro Multi Tasking Solo en algunos iPads iPads iPod touch iPhones Factores de forma Características iOS 9
  • 14. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . Mercado dispositivos USA Deberíamos tener 134 dispositivos para cubrir al menos el 75% del Mercado de USA 25% 50% 75% 90%Market Share NumberofDevices 13 45 134 288 0
  • 15. TESTING DE APPS XAMARIN JAVIER 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
  • 16. TESTING DE APPS XAMARIN JAVIER 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
  • 17. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . Una prueba unitaria debe ser: • Rápida. • Reproducible. • Mantenible. • Independiente. TEST UNITARIO
  • 18. TESTING DE APPS XAMARIN JAVIER 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
  • 19. TESTING DE APPS XAMARIN JAVIER 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
  • 20. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . [TextFixture] public class Tests { [Test] public void TestSomething_ShouldBeOk() { } } ESCRIBIENDO TESTS UNITARIOS
  • 21. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO App Xamarin y test unitarios
  • 22. TESTING DE APPS XAMARIN JAVIER 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
  • 23. TESTING DE APPS XAMARIN JAVIER 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
  • 24. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . • Visual Studio cuenta con una plantilla de Proyecto Xamarin.UITest en Visual C# > Mobile Apps. CREANDO PROYECTO XAMARIN.UITEST
  • 25. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO Creando Proyecto Xamarin UITest
  • 26. TESTING DE APPS XAMARIN JAVIER 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.UITEST public class AppInitializer { public static Iapp StartApp(Platform platform) { if(platform == Platform.Android) { // Android } // iOS } }
  • 27. TESTING DE APPS XAMARIN JAVIER 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
  • 28. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . .
  • 29. TESTING DE APPS XAMARIN JAVIER 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” />
  • 30. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO Un vistazo a Tests de tipo Xamarin UITest
  • 31. TESTING DE APPS XAMARIN JAVIER 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
  • 32. TESTING DE APPS XAMARIN JAVIER 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
  • 33. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO Creando pruebas con Test Recorder
  • 34. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . XAMARIN TEST CLOUD
  • 35. TESTING DE APPS XAMARIN JAVIER 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?
  • 36. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO Xamarin Test Cloud
  • 37. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . A/B Testing Live UpdateStorage Push Notifications Crash Reporting Remote Config. Identity Tables Visual Studio Mobile Center Mission control para mobile apps ANUNCIADO :-)
  • 38. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . Visual Studio Mobile Center Mission control para Apps móviles build, test, despliegue, monitorear (continuo) Funciona con cualquier App móvil http://mobile.azure.com
  • 39. TESTING DE APPS XAMARIN JAVIER 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
  • 40. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . • Soporte para Apps iOS & Android • Build • Xamarin • Objective-C • Swift • Java • Javascript • Test: • Xamarin.UITest • Calabash • Appium Visual Studio Mobile Center
  • 41. TESTING DE APPS XAMARIN JAVIER 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
  • 42. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . DEMO Visual Studio Mobile Center
  • 43. TESTING DE APPS XAMARIN JAVIER 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
  • 44. TESTING DE APPS XAMARIN JAVIER 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.
  • 45. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . ¿PREGUNTAS y RESPUESTAS? ¿Dudas? P&R
  • 46. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . GRACIAS a TODOS Por vuestro tiempo! Javier Suárez Microsoft MVP Xamarin MVP • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 47. TESTING DE APPS XAMARIN JAVIER SUÁREZ RUIZ . . TESTING DE APPS XAMARIN Como hacer test unitarios y de UI de Apps móviles multiplataforma Xamarin.

Notas del editor

  • #5: UI build natively per platform, leveraging C# C# + XAML C# + XML C# + XIB One shared app logic code base, iOS, Android, Mac, Windows Phone, Windows Store, Windows
  • #6: Xamarin recently introduced Xamarin.Forms a new library for cross platform user interface. We will touch up on this later, but this enables you to be highly productive, share code, but build out UI on each platform and access platform APIs. With Xamarin.Forms you now have a nice Shared UI Code layer, but still access to platform APIs You can start from native, pick a few screens, or start with forms, and replace with native later
  • #10: Well there are several challenges that we must overcome as mobile developers including….
  • #11: First let’s take a look at the shear number of configurations there are between iOS and Android. As iOS progresses this number is only set to increase, and on Android it is already a HUGE number of configurations to even think about testing. iOS: 7, 7.1, 8, 8.1, 8.2
  • #12: OpenSignal is a global app that publishes an annual report on Android device fragmentation based on the distinct Android device types that download their app. This is their August 2014 data, with an astonishing 19,000 device types using their app, up by 60% from just last year. Different device operating systems, form factors, screen sizes, resolutions, chip sets, and manufacturer modifications make it difficult to know that your app will work well on all devices
  • #13: Looking at just a few of the screen sizes of Samsung devices you couldn’t even fit all of them on the screen, so how do you handle this problem?
  • #15: To hit 75% of the US market you would need over 130 devices and nearly 300 devices to hit 90% of what your users are using today. That is unrealistic to even think about purchasing.
  • #16: There are several different ways to test mobile applications. We can have extensive beta tests with our users, which is good for hands on, but hard to get feedback. We can spend hours upon hours manually testing which can help find bugs, but can bog down developers. Unit testing is essential for our business logic, but only Automated UI Testing can really ensure that as we add new features and fix bugs our UI isn’t impacted before we release.
  • #17: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #18: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #19: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #20: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #21: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #23: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #24: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #25: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #27: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #28: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #29: With a simple command you can simulate all of your users interactions to build out a great test suite that can be run over and over again.
  • #30: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #32: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #33: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #36: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.
  • #44: This is where Xamarin.UITest comes in to help with this shift. Xamarin.UITest is a framework that ties in directly to the Nunit testing framework to write the UI tests. You can even run them directly against a simulator for free to do regression tests on your applications.