Testing Xamarin Test Cloud
-
Upload
plain-concepts -
Category
Technology
-
view
49 -
download
0
Transcript of Testing Xamarin Test Cloud
22.02.2017
Testing: Xamarin Test Cloud
2
Qué veremos 1. Conseguir apps con calidad2. Tests de UI3. 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
4
Conseguir apps con calidad
5
Proceso tipo con Xamarin
@plainconcepts
HERRAMIENTAS QUE PODEMOS UTILIZAR
Distribute &
MonitorBuild Test
6
• Distintas versiones de sistema operativo (Android)
El reto de la FRAGMENTACIÓN
@plainconcepts
7
• Distintas versiones de sistema operativo (iOS)
El reto de la FRAGMENTACIÓN
@plainconcepts
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
9
Tests de UI
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
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
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
13
Automation con Xamarin FormsDEFINICIÓN DE QUERIES
// XAML <Button Text=“Submit" AutomationId=“SubmitButton“ />
// TESTS
_app.Tap(c.Marked(“SubmitButton"));
@plainconcepts
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
15
Demo
16
REPL como ayudaDEFINICIÓN DE QUERIES
[Test] public void Repl() { _app.Repl(); }
[Test] public void TapTest() { _app.Tap(c => c.Class(“EditText")); }
@plainconcepts
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
18
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
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
21@plainconcepts
22
Demo
23
¿Preguntas¿
@plainconcepts
¡GRACIAS!www.plainconcepts.com
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