+ All Categories
Home > Technology > Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

Date post: 15-Feb-2017
Category:
Upload: javier-suarez-ruiz
View: 2,647 times
Download: 3 times
Share this document with a friend
49
INTEGRACIÓN CONTINUA CON XAMARIN JAVIER SUÁREZ RUIZ Integración continua con Apps Xamarin Javier Suárez Ruiz MADRID · NOV 27-28 · 2015
Transcript
Page 1: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Integración continua con Apps XamarinJavier Suárez Ruiz

MADRID · NOV 27-28 · 2015

Page 2: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Javier SuárezMicrosoft MVP Windows Platform DevelopmentSoftware Developer at Plain Concepts

• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz

Page 3: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 4: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

XAMARIN: APPS NATIVAS MULTIPLATAFORMA

Page 5: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 6: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

XAMARIN + XAMARIN.FORMS

Original Con Xamarin.Forms

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Backend

Shared UI Code

Shared C# Backend

Page 7: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 8: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.ESTADÍSTICAS DE

CÓDIGO COMPARTID

O

Mac

iOS

Android

Windows Phone

iCircuit Touch Draw

86%

14%

72%

28%

70%

30%

61%

39%

88%

12%

76%

24%

90%

10%

Page 9: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOXamarin Classic y Xamarin Forms

Page 10: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

COSAS QUE PASAN…

¿CIERTO?

Page 11: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿QUÉ VAMOS A VER?Un vistazo a la agenda

Repasamos nuestra App Xamarin, creamos pruebas unitarias y pruebas de interfaz de usuario.

Pruebas unitarias y de UIUn vistazo rápido a que es la integración continua, que puede hacer por nosotros además de que es necesario.

Integración Continua

Nos centraremos en utilizar Team City que configuraremos para desplegar, compilar y pasar tests unitarios de Apps Xamarin.

Configuración y usoCerramos integrando Xamarin Test Cloud en nuestro proceso de integración continua.

Xamarin Test Cloud

Page 12: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

• Fragmentación

• Complejidad de Apps

• Ciclos ágiles

• Expectación alta usuarios

EL RETO

Page 13: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 14: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 15: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 16: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 17: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 18: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 19: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOApp Xamarin y test unitarios

Page 20: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON 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 21: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

XAMARIN TEST CLOUD

Page 22: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 23: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOXamarin UITest

Page 24: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿INTEGRACIÓN CONTINUA?¿Qué es?

La integración continua consiste en hacer integraciones automáticas de un Proyecto lo más a menudo possible para así detector fallos cuantos antes.Entendemos por integración la compilación y ejecución de pruebas.Wikipedia

Page 25: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

INTEGRACIÓN CONTINUAWorkflow

Resultados

Repositorio de código

Servidor BUILD

Desarrollador

App BuildEjecutar tests

Unitarios

Commit

CódigoTests Unitarios

Page 26: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios

“La integración continua no evitará que se produzcan bugs, pero si nos permite encontrarlos

y solucionarlos de una forma dramáticamente más fácil” Martin Flowler

Page 27: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. Encontrar errores más rápido!

• Detectar errores con mayor rapidez y antelación.

• Más sencillo de corregir.

• Más barato.

Page 28: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. Minimiza problemas en Merges.

• Una integración continua con Builds frecuentes tiende a forzar Commits más pequeños.

• Más fácil de hacer rollback.

Page 29: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿QUÉ NOS APORTA LA INTEGRACIÓN CONTINUA?Beneficios. En mi máquina funciona…

• Consistencia. Builds reproducibles.

• La App funcionará en cualquier entorno con las mismas condiciones.

• Evitamos la “contaminación de la Build”

Page 30: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

VENTAJAS INTEGRACIÓN CONTINUAPoder desplegar en cualquier momento

• Necesitamos entregar una version al cliente…

• ¿Para cuando?• AHORA

Page 31: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

CONTROL DE CÓDIGO FUENTEOpciones

Team Foundation Server

o

Visual Studio Online

Git / GitHub

Page 32: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

CI SOFTWARETFS

• Mucho más que CI• Sólo para Windows. Requiere

utilizat Mac Build Host.• Requiere Xamarin Pro o Business.

Page 33: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

CI SOFTWARETeamCity

• Fácil de instalar.• Windows & OSX.• Versión gratuita.

Page 34: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

CI SOFTWAREJenkis

• Open Source• Windows & OSX• Fácil de instalar• Enorme cantidad de plug-ins

Page 35: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

SETUP1. Servidor de control de

código Fuente.2. Servidor Integración

Continua.3. Instalar y activar Xamarin

Studio.4. Preparar Build script.5. Configurar la Build en el

servidor de Integración Continua.

MAC para la compilación de Apps iOS. Suficiente MAC Mini.

Page 36: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOUn vistazo a Team City

Page 37: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿PORQUE CREAR UN SCRIPT?La importancia del Script

• Traceable• Los Devs pueden usarlo también!• Documentación• Mayor facilidad a la hora de

mantenerlo todo• Simplifica la configuración del

servidor de integración

Page 38: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿PORQUE CREAR UN SCRIPT?F# MAKE

• F# Make o más conocido como FAKE, es un Sistema de automatización de Builds.

• Similar a Make o Rake.• DSL sin necesidad de F#. Si

necesitamos más funcionalidad que la disponible por defecto escribiremos código F# o referencias a librerías .NET.

• Funciona en Windows y OSX.

Page 39: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

HOLA MUNDO FAKEF# MAKE

#r "tools/FAKE/tools/FakeLib.dll" // include Fake libopen Fake   Target "Test" (fun _ ->    trace "Testing stuff...") Target "Deploy" (fun _ ->    trace "Deploy stuff...") "Test"            // define the dependencies   ==> "Deploy" Run "Deploy"

Page 40: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOBUILDs automáticas de Apps Xamarin con Team City

Page 41: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

ENTREGA DE LA APLICACIÓNHockeyApp

• Podemos subir versiones de la App de manera automática desde nuestras Builds.

• Podemos notificar a clientes o testers.

• Recibir feedback.• Crashs.• API para desarrolladores.

Page 42: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 43: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Page 44: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

DEMOEntrega continua

Page 45: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

CONCLUSIONES INTEGRACIÓN CONTINUA¿Qué hemos aprendido?

• Automatización• Commits más frecuentes• Builds continuas, se detectan

fallos más rápido• No se sube código que rompa

la Build• Corrección de bugs con mayor

facilidad y rapidez• Build en cualquier entorno

destino

Page 46: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

Rápido

Equipo de QA puede probar con rapidez y recibir completos informes desde Xamarin Test Cloud

Cientos de dispositivos

Podemos accede y probar nuestra aplicación en gran cantidad de dispositivos diferentes

Integración Continua

Compilación, pruebas unitarias e integración con Xamarin Test Cloud

Reportes

Mucho más que feedback, informes completes de errores y rendimiento

Fragmentación

Combinaciones de diferentes dispositivos, versions del Sistema operative, resoluciones y pantallas.

UI testing

Pruebas en la UI de todo tipo, toques, deslizamientos, etc.

CONCLUSIONES INTEGRACIÓN CONTINUA

Page 47: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

¿PREGUNTAS y RESPUESTAS?¿Dudas?

P&R

Page 48: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

GRACIAS a TODOSPor vuestro tiempo!

Javier SuárezMicrosoft MVP Windows Platform Development

• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz

Page 49: Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin

INTEGRACIÓN CONTINUA CON XAMARINJAVIER SUÁREZ RUIZ

.

.

INTEGRACIÓN CONTINUA CON APPS XAMARINComo pasar Builds y test unitarios de Apps móviles multiplataforma Xamarin desde TeamCity.


Recommended