Le operazioni di testing possono richiedere molto tempo e possono implicare ingenti costi per le imprese. Per questo motivo è di fondamentale importanza individuare sul mercato le migliori soluzioni disponibili, al fine di ridurre al minimo gli effort impiegati per testare le proprie applicazioni.
TestComplete di SmartBear centra appieno questi obiettivi: TestComplete, infatti, offre una piattaforma di test per creare, eseguire e mantenere in modo semplice test automatici per applicazioni software di tipo desktop, Web, mobile, e client-server, favorendo un’elevata riduzione dei tempi e dei costi dedicati alle operazioni di testing.
In questo webinar uno dei Testing Guru di Emerasoft mostra come sfruttare al meglio le potenzialità offerte dal testing automatico grazie all’utilizzo di TestComplete.
Guarda il webinar on demand: https://www.youtube.com/watch?v=N7aTTfSoREI
In questa sessione andremo in dettaglio sul come poter migliorare le nostre applicazioni ASP.NET dal punto delle vista delle performance: Come capire dove interventire? Cosa possiamo migliorare? A cosa dobbiamo prestare attenzione? E nel caso di un'applicazione esistente, dove possiamo intervenire per migliorarla ulteriormente?
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Codemotion
Codemotion Rome 2015 - Xamarin Forms è la nuova tecnologia introdotta da Xamarin per supportare lo sviluppo multi piattaforma di applicazioni per iOS, Android e Windows Phone utilizzando un unico linguaggio di design (lo XAML) e di sviluppo (C#). Nel corso di questa sessione vedremo le basi di questa piattaforma, gli scenari in cui è adatta e quelli in cui lo è di meno e una serie di preziosi consigli, nati dall'esperienza maturata nello sviluppo di un'importante progetto.
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
"Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM" by Matteo Pagani.
Xamarin è una delle tecnologie più interessanti quando si parla di sviluppo cross-platform, in quanto permette di riutilizzare le proprie conoscenze di C# per realizzare applicazioni con le stesse feature e performance di un'applicazione nativa. Usare Xamarin, però, non significa solamente poter realizzare app Android e iOS in C#, ma anche e soprattutto non dover scrivere e mantenere codebase completamente diverse. In questa sessione vedremo come poter massimizzare il riutilizzo di codice tra le diverse versioni della nostra applicazioni, aiutandoci con il pattern MVVM.
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
Sfrutta le tue abilità come sviluppatore web per creare app mobile per Windows Phone, iOS ed Android utilizzando una unica code-base (composta da codice HTML, CSS e JavaScript) e lavora direttamente in Visual Studio. Questo è ora possibile grazie all'estensione "Multi-Device Hybrid Apps for Visual Studio" ed all'uso di Apache Cordova. Un unico IDE ed un singolo progetto per sviluppare per le più diffuse piattaforme mobile.
In questa sessione scopriremo i vantaggi di questa combinazione e daremo risposta ad alcune domande: Quali vantaggi abbiamo dall'utilizzare Visual Studio? Perchè e quando sviluppare un'app ibrida? ...
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Introduction to Blazor and WebAssembly in Christmas sauce. In this session we will see how to create a small demonstration application to send Christmas greetings.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
L'App store per applicazioni Enterprise: La mobilità porta a portaMicrofocusitalia
L'intervento di Fabio Milanese, Senior Borland Solutions Specialist di Micro Focus Italia, al Mobile Summit 2013. La presentazione spiega l'importanza e i vantaggi del testing di applicazioni mobile Enterprise.
Si parla tanto di DevOps e alle conferenze gli argomenti più gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perché non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi così il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
Selenium framework: Selenium è un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
Durante l'ottavo Meetup di Milano, tenutosi il 19 Maggio dalle ore 10:30, si è potuto approfondire con Paolo Petronzi tutte le metodologie di testing e automazione con MUnit, invce con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, c'è stato un focus sull'integrazione con Salesforce.
Xamarin Forms: one technology to rule them all - Matteo Pagani - Codemotion R...Codemotion
Codemotion Rome 2015 - Xamarin Forms è la nuova tecnologia introdotta da Xamarin per supportare lo sviluppo multi piattaforma di applicazioni per iOS, Android e Windows Phone utilizzando un unico linguaggio di design (lo XAML) e di sviluppo (C#). Nel corso di questa sessione vedremo le basi di questa piattaforma, gli scenari in cui è adatta e quelli in cui lo è di meno e una serie di preziosi consigli, nati dall'esperienza maturata nello sviluppo di un'importante progetto.
Realizzare applicazioni cross-platform con Xamarin e il pattern MVVMCodemotion
"Realizzare applicazioni cross-platform con Xamarin e il pattern MVVM" by Matteo Pagani.
Xamarin è una delle tecnologie più interessanti quando si parla di sviluppo cross-platform, in quanto permette di riutilizzare le proprie conoscenze di C# per realizzare applicazioni con le stesse feature e performance di un'applicazione nativa. Usare Xamarin, però, non significa solamente poter realizzare app Android e iOS in C#, ma anche e soprattutto non dover scrivere e mantenere codebase completamente diverse. In questa sessione vedremo come poter massimizzare il riutilizzo di codice tra le diverse versioni della nostra applicazioni, aiutandoci con il pattern MVVM.
Xamarin.Forms is a framework for building cross-platform applications that share most of the UI codebase among the UWP, iOS and Android platforms. Due to the higher level of abstraction compared to Xamarin.Native, Xamarin.Forms applications may suffer from memory leaks and slow rendering times at the expense of the final user experience. In the session, we will explore the mechanisms used by Xamarin.Forms to translate abstract UI components into native ones, highlight with demos what are the main bottlenecks met by developer, how to solve them and get close to native performances.
Multi-Device Hybrid Apps con Visual Studio e Apache CordovaAndrea Dottor
Sfrutta le tue abilità come sviluppatore web per creare app mobile per Windows Phone, iOS ed Android utilizzando una unica code-base (composta da codice HTML, CSS e JavaScript) e lavora direttamente in Visual Studio. Questo è ora possibile grazie all'estensione "Multi-Device Hybrid Apps for Visual Studio" ed all'uso di Apache Cordova. Un unico IDE ed un singolo progetto per sviluppare per le più diffuse piattaforme mobile.
In questa sessione scopriremo i vantaggi di questa combinazione e daremo risposta ad alcune domande: Quali vantaggi abbiamo dall'utilizzare Visual Studio? Perchè e quando sviluppare un'app ibrida? ...
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
Continuous Integration con SQL Server. Come automatizzare i processi di build e di test su database SQL Server. Come includere SQL Server nei processi di Application Lifecycle Management (Database Lifecycle Management).
Introduction to Blazor and WebAssembly in Christmas sauce. In this session we will see how to create a small demonstration application to send Christmas greetings.
Dependency injection questa sconosciutaAndrea Dottor
L'uscita di ASP.NET Core ha portato a una maggiore diffusione dell'utilizzo della DI (Dependency Injection) ma spesso senza che lo sviluppatore sappia la sua reale utilità o potenzialità.
Dependency Injection, uno dei design pattern della programmazione OOP. Una best-practice dello sviluppo che può portare alla semplificazione del codice scritto, facilitare il disacoppiamento, e migliorare la testabilità.
In questa sessione vedremo cos'è la DI e come utilizzarla intelligentemente all'interno dei nostri progetti.
Slide dell'evento "XE One Day - Good code" tenuto il 15.09.2018.
Il codice è disponibile alla pagina dell'evento https://www.xedotnet.org/eventi/one-day-good-code/
70-485: ADVANCED OF DEVELOPING WINDOWS STORE APPS USING C#DotNetCampus
Visto il successo dello scorso anno, anche quest’anno il DotNetCampus ospita un Cert Path dedicato a chi vuole avvicinarsi al mondo delle certificazioni di prodotto e di tecnologia Microsoft. Microsoft, così come altre importanti aziende sul mercato, propone diversi percorsi di certificazione che ognuno può intraprendere, anche in autonomia, per guadagnare competenza e ottenere un riconoscimento. Una certificazione è generalmente un titolo che si ottiene dopo uno o più esami conseguiti con successo in un centro di formazione abilitato. Nel Cert Path vogliamo spiegarvi come affrontare alcuni esami di base per ottenere il titolo di MCP (Microsoft Certified Professional).
L'App store per applicazioni Enterprise: La mobilità porta a portaMicrofocusitalia
L'intervento di Fabio Milanese, Senior Borland Solutions Specialist di Micro Focus Italia, al Mobile Summit 2013. La presentazione spiega l'importanza e i vantaggi del testing di applicazioni mobile Enterprise.
Si parla tanto di DevOps e alle conferenze gli argomenti più gettonati sono build pipeline, continuous integration/delivery/deploy, deploy automation e monitoring.
Ci stiamo dimenticando qualcosa... i test! dove sono i test? perché non si parla quasi mai di test? in questo fantastico mondo DevOps come si inseriscono i test?
I test sono solo un passo della pipeline di build? se la pensassi così il titolo del mio intervento sarebbe stato "Continuous Testing in DevOps", non credete?
Selenium e testing web - di Alessio BenedettiGiuneco S.r.l
Selenium framework: Selenium è un framework open-source per l'automazione e il testing di applicazioni web che permette di controllare in remoto le istanze del browser ed emulare l'interazione di un utente.
Durante l'ottavo Meetup di Milano, tenutosi il 19 Maggio dalle ore 10:30, si è potuto approfondire con Paolo Petronzi tutte le metodologie di testing e automazione con MUnit, invce con Luca Bonaldo, il nostro Mulesoft Mentor in Italia, c'è stato un focus sull'integrazione con Salesforce.
Consigli su come sviluppare e rilasciare App di Qualità:
1 portare utenti finali nel progetto di sviluppo, 2 elementi da considerare in fase di testing, 3 progettare un'interaction design di successo, 4 dall'idea all'app di successo, 5 azzerare il tasso di abbandono.
Slide del decimo Meetup di Milano, che si è tenuto il 26 Gennaio dalle ore 10:30 alle ore 12:00 in formato virtuale.
Abbiamo parlato insieme a Davide Bonaciti di come ha realizzato un caso d'uso di automazione e CI/CD. Stefano Bernardini, Serena Galassi e Lorenzo Ornella, invece, ci parleranno di DataGraph e ci mostreranno una demo di implementazione per realizzare un'asta del fantacalcio 2.0.
What is Xamarin? Why should I use it?
This deck will guide you in discovering the Xamarin world and understanding more about building universal apps with C#.
Presentazione alla Google Dev Fest Mediterranean 2016 di Catania con presentazione sulle metodologie di utilizzo di microservices e sui sistemi per monitorare le infrastrutture
Gestire l’infrastruttura come se fosse codice, ha degli indubbi vantaggi, soprattutto in un team agile che ha più esperienze Dev piuttosto che Ops.
In questa sessione vi racconteremo la nostra esperienza, problemi, vantaggi e cosa abbiamo imparato.
Lo unified tooling è l’area di interesse DevOps che fonde pratiche di software development a quelle di system administration, con lo scopo di semplificare il processo di deployment di ambienti complessi. In questo talk vengono esposte le esperienze di un team di dev che è riuscito a gestire e replicare ambienti complessi, ricorrendo a strumenti e pratiche delle metodologie agili. Saranno evidenziati i vantaggi ottenuti e le problematiche riscontrate.
Emerasoft, partner italiano di Perfecto Mobile, presenta un webinar per mostrarvi come testare le vostre app su dispositivi mobili reali e garantire agli utenti la massima usabilità su qualsiasi device o browser.
Uno dei Testing Guru di Emerasoft illustra le principali problematiche del test sui dispositivi mobili, evidenziando come Perfecto Mobile sia il tool ideale in grado di testare le performance delle app, consentendo di ottenere un risultato all’altezza delle aspettative degli utenti.
Visualizza il webinar alla seguente pagina: https://www.youtube.com/watch?v=1gq6MayO4_w
Empower every Azure Function to achieve more!!Massimo Bonanni
The Azure Functions seem easy to use but what if our business scenario cannot be implemented using one of the "default" triggers or bindings? "Extension" is the keyword in this case! In this session, we see how to enhance our functions with custom triggers and custom bindings to make the most of the power of Serverless.
Session delivered at ServerlessDay Warsaw on 21/10/2021.
Durable Functions vs Logic App : la guerra dei workflow!!Massimo Bonanni
Hai la necessità di implementare un workflow o un integrazione tra servizi?
Ti serve scalabilità e non vuoi preoccuparti degli aspetti infrastrutturali?
Non sai da dove iniziare?
Inizia da questa sessione! Il serverless è la risposta per la scalabilità e l'astrazione infrastrutturale, ma per l'aspetto tecnologico puoi scegliere tra Durable Functions e Logic App. Questa sessione ti mostrerà pro e contro di entrambe le tecnologie fornendoti gli strumenti necessari per una scelta oculata.
Sessione del meetup #PitchOnline di #Coding del 21/07/2021
The document discusses using Durable Functions to manage state in Azure Functions. Durable Functions allow for adding state management, checkpoints, and restarts to address limitations of stateless Azure Functions. It describes Durable Function components like orchestrators and activities that can be used to build workflows. Examples are given of how Durable Functions can be used to implement patterns like function chaining, fan-out/fan-in, human interaction, and aggregation that are difficult to do with stateless functions. Durable Entities are also introduced as a way to define operations for reading and updating small pieces of state.
Architetture Serverless con SQL Server e Azure FunctionsMassimo Bonanni
L'architettura serverless va sempre più di moda e innovative tecnologie come le Azure Functions ci consentono di implementarla facilmente. Come possiamo calare in questa realtà un prodotto consolidato come SQL Server che all'apparenza sembra non essere tagliato per questi scenari? In questa sessione vedremo come sfruttare SQL Server e l'estensibilità delle Azure Functions per costruire solutioni Serverless.
Sessione tenuta il 11/06/2021 a SQL Start 2021.
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
Sessione tenuta durante Azure Global Virtual 2021.
This document summarizes a presentation about stateful patterns in Azure Functions using Durable Functions. The presentation introduces Durable Functions as a way to add state management to Azure Functions. It discusses common stateful patterns like function chaining, fan-in/fan-out, and human interaction and how Durable Functions addresses issues with implementing these patterns with regular stateless functions through orchestrations, activities, and entities. The presentation concludes by emphasizing how Durable Functions solves concurrency issues but may not always be the right choice depending on requirements around latency.
Sessione tenuta a CodeGen 2021 il 13/02/2021
Serverless è una architettura basata sugli eventi e quali migliori scenari se non quelli IoT sono fondati sugli eventi? Migliaia di device che inviano telemetrie alla nostra soluzione e che dobbiamo gestire. In questa sessione vedremo un semplice approccio a scenari di questo genere che utilizza le Durable Entities per gestire la logica associata ai device del nostro sistema. Un esempio pratico per capire pregi e difetti delle Durable Entities che possono essere utili in moltissimi scenari in cui gestire eventi è essenziale.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
Session provided in community meetup #PitchOnline (SharpCoding community) on 21/01/2021.
Can I implement unit tests on my Azure Functions? How can I monitor my Azure Functions in a production environment? These are the questions that born into the head of the developer immediately after realizing that the Azure Functions can be a handy tool for designing a whole range of scenarios. In this session, you learn how to implement functions that are unit testable and which is the best approach to make them monitorable.
Empower every Azure Function to achieve more!!Massimo Bonanni
This document contains information from a presentation on Azure Functions including:
- An overview of Azure Functions and their pay-per-use model with instant scalability.
- Details on the anatomy of a function including triggers, bindings, and their associated classes.
- Explanations of the startup and runtime phases of functions and how triggers and bindings are configured.
- Recommendations to write efficient functions that avoid unnecessary resource usage.
- Links provided for additional documentation, code samples, and the speaker's contact information.
The art of Azure Functions (unit) testing and monitoringMassimo Bonanni
The document discusses testing and monitoring Azure Functions. It explains that Azure Functions should be written to allow dependencies to be mocked or stubbed for testing. The document demonstrates how to make Azure Functions testable using constructor injection to substitute mock services. It also discusses using logging and custom metrics to monitor Azure Functions performance and errors when deployed, including built-in integration with Application Insights. Code samples and a live demo are provided.
Everything you always wanted to know about API Management (but were afraid to...Massimo Bonanni
Azure API Management is an Azure service that allows developers to implement a consistent and secure access layer to their APIs. It provides features like throttling to prevent DOS attacks, JWT token validation for security, and a developer portal for API documentation and testing. The key components of API Management include the API gateway, publisher portal, developer portal, and policies for pre/post processing requests. Products are used to surface APIs to developers through subscriptions.
Xmas Serverless Transformation: when the elf doesn’t scale!Massimo Bonanni
Babbo Natale è in difficoltà! E' noto che l'elfo non scala! Con l'approssimarsi del periodo natalizio, le letterine dei bimbi aumentano vertiginosamente e la gestione tradizionale presta il fianco. Babbo Natale non può pretendere che gli elfi lavorino più di quello che già fanno (il sindacato degli elfi è inflessibile) e non può delocalizzare la produzione perché si trova già in un posto sperduto! L'unica soluzione è ottimizzare e razionalizzare il processo sfruttando il cloud e l'approccio serverless: Xmas Serverless Transformation ovvero come rispondere ai picchi di carico senza sfruttare gli elfi! Slide della sessione tenuta all'evento Xmas Dev 2018.
This document discusses updates to Azure Functions runtime including .NET Core 2.1 support, new extensibility model, and tooling updates. It also describes Durable Functions going GA and improvements to consumption plans, app service plans, and DevOps integration. The document provides tips for optimizing function performance such as avoiding long running functions and writing stateless functions. It concludes by thanking the audience and providing contact information.
This document discusses the Service Fabric reliable actor model. It begins by explaining the origins of the actor model in computer science and how it relates to concurrency and message passing. It then describes how Service Fabric implements the reliable actor pattern, including how actors are represented as .NET/Java classes, have reliable state storage, and lifecycle management. The document discusses architecture details like the actor service and runtime. It also covers topics like partitioning, concurrency handling, reentrancy, reminders, and when to use the actor model.
Testing a Service Fabric solution and live happy!!Massimo Bonanni
This document discusses testing Service Fabric solutions. It emphasizes the importance of unit testing microservices to ensure reliability and stability. It identifies three main obstacles to unit testing microservices - the Service Fabric platform, external dependencies, and other microservices. It proposes solutions such as mocking the platform, abstracting proxies, and creating layers of indirection to overcome these obstacles. The document also discusses chaos testing to evaluate how solutions handle errors and complex state transitions in production-like conditions.
This document provides an introduction to the actor model in Microsoft Service Fabric. It discusses key concepts of actors like message passing, state management, and concurrency. Actors are designed for high scalability and can distribute work across a cluster of machines. The document recommends understanding if the actor model fits one's requirements before building an application with it. It also provides some best practices and limitations to keep in mind for actor development.
3. Perchè test!!!
Unit vs Coded UI Test
Xamarin Test Cloud
Xamarin.UITest, REPL, Test Recorder
Continuous Integration
Quanto mi costi......
Agenda
4. + Individuazione dei bug o defect prima del rilascio
+ Incremento della qualità
+ Garanzia di non regressione a seguito di refactoring o nuove
funzionalità
+ Se unito alle build automatiche, utilissimo in cicli rapidi di sviluppo
- Più codice da scrivere
- Maggiori skill da parte del team
- Maggiori costi del prodotto
Nell’ambito mobile, cross-plattform, c’è un’altra cosa che ci
spinge ad adottare politiche di test.....
Perché test!!!!
6. Tutta una questione di numeri…
5
20
20
35
6
Versioni
Devices
Lingue
Localizzazioni
Formati
schermo
9
24K+
39
57
27
1,294
6
Versioni
Differenti Device
Lingue
Localizzazioni
Formati schermo
Produttori
Configurazioni
Schermo
7. Complessità delle app
Thousands of iOS and Android APIs
Public web APIs
Backend integrations
Third party libraries
Memory, CPU and network constraints
8. Disaccoppiare la UI dalla logica restrostante (es. MVVM) e testare i ViewModel con
degli Unit Test non basta a garantire che la User Experience sia delle migliori:
• I tempi di reazione dell’interfaccia variano in base
alla potenza del dispositivo
• La corretta visualizzazione dei controlli della UI
dipendono dalla dimensione e dal form factor dello
schermo
• I tempi di interazione con i sistemi esterni possono
creare problemi non previsti in sede di unit test
• ....
Unit Test.....non basta!!
9. Il modo migliore per validare il comportamento di una applicazione è utilizzarla.
Se l’applicazione ha il comportamento atteso senza errori o eccezioni, allora può essere
rilasciata.
Il processo di test del comportamento della UI prende il nome di UI Acceptance Test o
Coded UI Test (quando sono «codificati»).
E…..allora?
10. Questo processo ha i seguenti limiti:
• E’ costoso perché necessita dei dispositivi hardware;
• E’ costoso perché debbono essere impiegate persone per il test manuale;
• E’ dispendioso a livello di tempo perché il tester è un essere umano (processo
poco adatto a rilasci rapidi)
• E’ prono di errori perché l’uomo tende a distrarsi e sbagliare quando esegue
operazioni ripetitive e meccaniche
• E’ di difficile rendicontazione (il tester può semplicemente dire se il test è andato
bene o andato male ma senza l’utilizzo di tecnologie accessorie non è in grado
di ottenere altre informazioni come memoria o cpu occupata)
UI Acceptance Test
11. Il magic quadrant dei test
Long Cycles Rapid
Iterations
High Test Realism
Simplistic Tests
Beta Testing
Manual Testing
Automated UI Testing
Unit Testing
12. Soluzioni:
• Non si fa UI Test !!!
• Si spera che tutto funzioni al meglio!!!
• Si sfrutta il concetto di beta
• …
• Si utilizza una piattaforma di testing automatica,
scalabile e veloce: Xamarin Test Cloud
Cosa facciamo?
13. • Xamarin Test Cloud è un servizio basato su
cloud che fornisce una piattaforma di test
per la user interface automatizzata
• Fornisce centinaia di dispositivi diversi di
differenti brand e sistemi operativi
• Consente a chiunque di verificare che il
comportamento della UI sia conforme ai
requisiti attraverso una varietà di dispositivi
con il minimo sforzo.
• La manutenzione e l’approvvigionamento di
nuovi dispositivi viene semplificata di molto
dalla natura Cloud del sistema
Cosa è Xamarin Test Cloud?
14. Xamarin Test Cloud supporta i seguenti framework di test:
Xamarin.UITest: framework che permette di scrivere test in C#. Basato su Nunit.
Utilizzabile nelle applicazioni cross-plattform scritte con Xamarin (sia native che Forms)
Calabash: framework che permette di scrivere test in Ruby utilizzando Cucumber. Permette
di scrivere test utilizzando «la lingua del business» sfruttando le regole grammaticali di
Cucumber. Utile per le applicazioni native scritte senza l’uso di Xamarin
Cosa è Xamarin Test Cloud?
15. • Basato su Nunit
• Visual Studio e Xamarin Studio forniscono
template di progetto per UI Test
• Fornisce supporto alle gesture
• Struttura simile agli unit test
• Modalità per eseguire Xamarin.UITests:
o Eseguire l’upload dei test (e dell’app) su
Xamarin Test Cloud.
o Eseguire i test localmente utilizzando un
device, un emulatore (Android), o un simulatore
(iOS) e sfruttando il Test Runner in Xamarin
Studio (iOS o Android) o Visual Studio (Android).
Xamarin.UITest
16. • REPL (read-eval-print-loop) è uno dei più
importanti tools per la creazione di UI Test.
• Tool a riga di commando con cui gli
sviluppatori possono eseguire espressioni e
commandi.
• Permette di “esplorare” l’interfaccia utente
ed interagire in tempo reale con essa.
• I comandi utilizzati possono essere
esportati in Visual Studio (o Xamarin
Studio)
REPL
17. 1. I test vengono creati localmente (in un
progetto Visual Studio di test)
2. L’applicazione sotto test e i relativi test
vengono inviati a Xamarin Test Cloud
3. Applicazione e test vengono installati ed
eseguiti sui device selezionati dall’utente
4. Al termine di tutti i test, Test Cloud
colleziona i risultati e li invia all’utente
Come funziona Xamarin Test Cloud
19. • Consente di registrare coded UI test
utilizzando un device fisico (via USB) o
un emulatore;
• Solo con Visual Studio Enterprise;
• Al momento supporta solo Android (per
iOS Xamarin Test Recorder for Mac OSX)
• La registrazione necessita di Android 4.3
(API Level 23) o superiori ma il test
generato può essere eseguito anche su
versioni precedenti
Xamarin Test Recorder for Visual Studio
20. • Calabash e Xamarin.UITest da soli non sono in
grado di interagire con l’interfaccia
dell’applicazione (semplicemente perché non ne
fanno parte)
• Hanno la necessità di una «libreria di
automazione» che effettivamente si occupa di
eseguire il test sul device e si occupa
dell’interazione con la UI
• Xamarin Test Cloud Agent si occupa di «hostare»
i test e di eseguirli nel device
Anatomia di un test
21. • Xamarin Test Cloud Agent è installato da Test Cloud
assieme all’applicazione
• Implementa un’architettura client/server per far in
modo che la piattaforma Test Cloud possa
effettivamente comandare l’esecuzione dei test e il
recupero dei risultati
• La parte server è, di fatto un web server (molto
semplice), che viene installato sul device ed è in
ascolto per rispondere ai comandi (JSON over HTTP)
inviati dal client
• Il client si trova all’interno della piattaforma Test
Cloud
Xamarin Test Cloud Agent
22. A causa delle limitazioni imposte dalla
piattaforma Apple, il Test Cloud Agent
è compilato assieme all’applicazione.
Viene utilizzato un package NuGet per
referenziare l’agent nell’applicazione
Xamarin Test Cloud Agent su iOS
23. Test Cloud Agent è un’applicazione a
se stante che viene distribuita con i
permessi per instrumentare
l’applicazione che stiamo testando.
L’applicazione da testare e il Test
Agent sono firmati con la stessa
chiave in modo da poter tra loro
comunicare.
Xamarin Test Cloud Agent su Android
24. Il meccanismo di pubblicazione dell’app e dei test può avvenire anche in un contesto di
Continuous Integration (CI)
Xamarin Test Cloud Continuous Integration
28. • L’utilizzo di Xamarin Test Cloud va valutato in base ai risultati
desiderati
• Xamarin Test Cloud va bene anche se non usate Xamarin (app native
iOS o Android)
• Migliaia di device a disposizione + report su utilizzo di risorse
Take Away
29. Xamarin Test Cloud Web Site
https://testcloud.xamarin.com
Documentazione ufficiale
https://developer.xamarin.com/guides/testcloud/
Test Recorder for Visual Studio
https://developer.xamarin.com/guides/testcloud/testrecorder/visual-studio/
Devices
https://testcloud.xamarin.com/devices
Demo
https://github.com/massimobonanni/DDN-XamarinTestCloudDemo
Reference