25
22.02.2017 Testing: Xamarin Test Cloud

Testing Xamarin Test Cloud

Embed Size (px)

Citation preview

Page 1: Testing Xamarin Test Cloud

22.02.2017

Testing: Xamarin Test Cloud

Page 2: Testing Xamarin Test Cloud

2

Qué veremos 1. Conseguir apps con calidad2. Tests de UI3. Xamarin Test Cloud

Page 3: Testing Xamarin Test Cloud

@plainconcepts 3

XAMARIN DEVELOPERTrabajando con .NET y varias de sus tecnologías desde el día en que nació (literalmente). Desde hace 2 años, miembro del equipo de desarrollo Xamarin de Plain Concepts.

Sergio Escalada

@sescaladab

Page 4: Testing Xamarin Test Cloud

4

Conseguir apps con calidad

Page 5: Testing Xamarin Test Cloud

5

Proceso tipo con Xamarin

@plainconcepts

HERRAMIENTAS QUE PODEMOS UTILIZAR

Distribute &

MonitorBuild Test

Page 6: Testing Xamarin Test Cloud

6

• Distintas versiones de sistema operativo (Android)

El reto de la FRAGMENTACIÓN

@plainconcepts

Page 7: Testing Xamarin Test Cloud

7

• Distintas versiones de sistema operativo (iOS)

El reto de la FRAGMENTACIÓN

@plainconcepts

Page 8: Testing Xamarin Test Cloud

8

• Gran cantidad de dispositivos: – 24.000+ dispositivos– +1300 fabricantes

• Distintas especificaciones de los terminales– Memoria– Procesador (Número de cores, x86/x64/ARM)– Tamaños de pantalla (Retina)

• Phones & Tablets• Sensores• Idioma• ¿Cómo saber si nuestra app funciona bien dentro de esta variedad?

El reto de la FRAGMENTACIÓN

@plainconcepts

Page 9: Testing Xamarin Test Cloud

9

Tests de UI

Page 10: Testing Xamarin Test Cloud

10

• Momento de incorporarlos a nuestro proyecto:– Funcionalidad implementada en las plataformas (UI estable).– Reporte de algún bug: podemos hacer un test para que cubra el caso en el futuro.– Mucho menos útiles de forma retroactiva.

• Recomendaciones:– Hacer test simples, respecto a casos de uso.– Construirlos paso a paso.

• Útiles para asegurar el arranque, la apariencia y el comportamiento de nuestra app.

Tests de UI

@plainconcepts

Page 11: Testing Xamarin Test Cloud

11

NUnit 2.6.x como Framework de Testing.Arrange-Act-Assert pattern.Requiere que recompilemos los proyectos de plataformapara funcionar.Uso de queries sobre las vistas para acceder a los elementos.Sólo soporta Android/iOS.

Xamarin.UITest

@plainconcepts

PROYECTOS DE TEST CROSS-PLATFORM

Page 12: Testing Xamarin Test Cloud

12

Uso de atributos propios de NUNit como:• TestFixture• SetUp• Test

DEFINICIÓN de testsDEFINICIÓN DE TESTS

[TestFixture] public class Tests { private IApp _app; private Platform _platform;

[SetUp] public void BeforeEachTest() { _app = AppInitializer.StartApp(_platform); }

[Test] public void AppLaunches() { _app.Screenshot("First screen."); }}

@plainconcepts

Page 13: Testing Xamarin Test Cloud

13

Automation con Xamarin FormsDEFINICIÓN DE QUERIES

// XAML <Button Text=“Submit" AutomationId=“SubmitButton“ />

// TESTS

_app.Tap(c.Marked(“SubmitButton"));

@plainconcepts

Page 14: Testing Xamarin Test Cloud

14

Configuración por plataformaDEFINICIÓN DE QUERIES

// iOS // AppDelegate.FinishedLaunching

#if ENABLE_TEST_CLOUDXamarin.Calabash.Start();#endif

@plainconcepts

Android: APK en Release

iOS: generar el IPA, inicializar el agente

Page 15: Testing Xamarin Test Cloud

15

Demo

Page 16: Testing Xamarin Test Cloud

16

REPL como ayudaDEFINICIÓN DE QUERIES

[Test] public void Repl() { _app.Repl(); }

[Test] public void TapTest() { _app.Tap(c => c.Class(“EditText")); }

@plainconcepts

Page 17: Testing Xamarin Test Cloud

17

Herramienta que podemos usar desde OSX/Windows para hacer la grabación de tests.Plugin para VS (Enterprise).Nos permite exportar los tests a C#.

Xamarin Test Recorder

@plainconcepts

TESTS PASO A PASO

Page 18: Testing Xamarin Test Cloud

18

Xamarin Test Cloud

Page 19: Testing Xamarin Test Cloud

19

Soporta Xamarin UI.Test.Proporciona acceso a +2000 dispositivos.Nos va a permitir probar nuestra app en distintas versiones de S.O.

Xamarin Test Cloud

@plainconcepts

EJECUTAR NUESTROS TESTS

Page 20: Testing Xamarin Test Cloud

20@plainconcepts

Algunas opciones desde command line

> test-cloud.exe submit <PATH-TO-APK> <TEAM API KEY> --devices=<DEVICES> --assembly-dir=<PATH-TO-TEST-ASSEMBLY-DIR> --user=<EMAIL>

> test-cloud.exe submit <PATH-TO-IPA> <TEAM API KEY> --devices=<DEVICES> --assembly-dir=<PATH-TO-TEST-ASSEMBLY-DIR> --user=<EMAIL>

> test-cloud.exe <APK or IPA> <TEAM_API_KEY> --user <EMAIL> --category flerp

Test Cloud desde command-lineSUBIDA Y EJECUCIÓN DE LOS TESTS

Page 21: Testing Xamarin Test Cloud

21@plainconcepts

Page 22: Testing Xamarin Test Cloud

22

Demo

Page 23: Testing Xamarin Test Cloud

23

¿Preguntas¿

Page 24: Testing Xamarin Test Cloud

@plainconcepts

¡GRACIAS!www.plainconcepts.com

Page 25: Testing Xamarin Test Cloud

www.plainconcepts.com

MADRIDPaseo de la Castellana 163, 10º

28046 Madrid. EspañaT. (+34) 91 5346 836

BILBAONervión 3 , 6º

48001 Bilbao. EspañaT. (+34) 94 6008 168

BARCELONAAv. Josep Tarradellas 10, 6º 1ª

08029 Barcelona. EspañaT. (+34) 93 3607 114

SEVILLAAvenida de la innovación s/nEdificio Renta Sevilla, 3º A

41020 Sevilla. España

DUBAIDubai Internet City. Building 1

73030 Dubai. EAUT. (+971) 4 551 6653

LONDONImpact Hub Kings Cross24B York Way, N1 9AB

London. UK

SEATTLE1511, Third Ave

Seattle WA 98101. USAT. (+1) 206 708 1285