ui testing for windows store apps
DESCRIPTION
Slide della sessione "UI Testing for Windows Store Apps" tenuta all' ALM Day di DotNetCampania il 28/03/2014 (http://almday.dotnetcampania.org/). Le Windows Store Apps sono anche e soprattutto User Experience e poter testare la propria interfaccia grafica costituisce una garanzia di qualita'. In questa sessione prenderemo in esame cosa sono e come possono essere sviluppati coded ui test per le Windows Store Apps e quali strumenti ci mette a disposizione Visual Studio 2013 per aiutarci nel nostro lavoro.TRANSCRIPT
UI Testing for Windows Store AppsMassimo Bonanni
Un grazie agli sponsor!
getlatestversion.it
Chi sono?
o Senior .NET Developer @ Wuerth Phoenix
o Microsoft MVP (VB.NET) dal 2011o Fondatore e Presidente di
DomusDotNet (www.domusdotnet.org)o Trainer e speaker
[email protected]@massimobonannihttp://codetailor.blogspot.com
Agenda
o Coded UI Testo Performance e Diagnostic
o XAML UI Responsivenesso Energy consumption
Coded UI Test
I Coded UI test sono una particolare tipologia di test che consente di testare il comportamento di una interfaccia grafica in maniera automatica senza l’utilizzo di un operatore umano.
Di fatto un Coded UI test è a tutti gli effetti un test (sfrutta, cioè un framework di test supportato da Visual Studio) con la capacità di eseguire operazioni sull’interfaccia grafica (ad esempio la pressione di un tasto o la verifica della presenza di un testo all’interno di un textbox).
Coded UI Test
Grazie ai CodedUI test è possibile testare la corretta funzionalità di un’interfaccia grafica senza utilizzare un operatore «in carne ed ossa», aggiungendo, quindi, un maggior numero di test a tutti quei test automatizzati già esistenti (ad esempio gli Unit Test).
Visual Studio dispone, fin dalla versione 2010, di strumenti a supporto per la creazione e l’esecuzione di CodedUI test ma nella versione 2013 il tutto è fornito anche per le Windows Store App.
Code UI Test
I Coded UI Test per le Windows Store App hanno un loro progetto specifico all’interno di Visual Studio.
Quando creiamo un progetto Coded UI Test, ci viene proposta la creazione di una UIMap.
UIMap
o La UI Map contiene la definizione degli oggetti grafici che andremo a «sollecitare» nei nostri test
o Può essere creata e modificata utilizzando lo strumento «Coded UI Test Builder» (CUIT) presente nel menù test di Visual Studio.
UIMap : creare la UIMap
UIMapo Visual Studio crea una classe
(Partial) al cui interno possiamo trovare:o La definizione dei controlli di
interfacciao I metodi di assert per la verifica delle
proprietà dei controlli.
UIMap: I metodi di Assert
Il “Coded UI Test Builder” ci consente di creare anche dei metodi per verificare delle condizioni di Assert del nostro test.
Scriviamo i nostri test
Il framework di test di Visual Studio ci mette a disposizione, oltre alla classe UIMap, altre classi utili per simulare l’interazione con l’utente:
o XamlWindow: permette di eseguire una app;o Una serie di classi (come, ad esempio, XamlButton) che
gestiscono i singoli controlli della UI (usate anche dalla UIMap);
o Gesture per simulare le gesture, come ad esempio Gesture.Tap();
o Keyboard per simulare l’interazione con la tastiera, ad esempio Keyboard.SendKeys();
o Mouse per simulare il mouse.
Ovviamente abbiamo a disposizione la classe Assert per controllare le nostre assertion.
DEMO
Performance e Diagnostic
Tutti gli stumenti di performance e diagnostica sono raggruppati in un unico menù.
Ne sono stati aggiunti nuovi rispetto a quelli di VS2012.
XAML UI Responsiveness
o Permette di analizzare le problematiche relative alla parte XAML della nostra app: processing e rendering;
o Possono essere inseriti dei marker custom per poter capire meglio cosa sta succedendo;
o Può essere eseguito anche su app installate (non necessariamente sul codice);
o Può essere eseguito anche su app remote (ad esempio per analizzare app su tablet RT)
Diagnostic session timeline Mostra il riferimento temporale della sessione di test.
Sono riportati i marker dell’application lifecycle management applicativo (ad esempio lo start dell’app) e i marker custom.
Può essere selezionata una parte della timeline per analizzare solo un certo intervallo temporale
UI thread utilizationPermette di avere dati relative all’utilizzo del thread di UI.
o Parsing: operazioni di parsing dello XAML e recupero delle risorse;
o Layout: operazioni di posizionamento (layout) dei controlli;
o App Code: operazioni a carico del nostro codice;o Xaml Other: accesso al codice runtime dello
XAML.
Visual throughput (FPS)
Mostra il framerate dell’interfaccia (esattamente quello che vediamo se abilitiamo l’EnableFrameRateCounter).
Parsing viewMostra quali file XAML sono caricati e processati.
o UI Elements (inclusive/exclusive): numero di elementi XAML definiti nel singolo file (exclusive) o nel file e nei suoi figli (inclusive)
o Duration (inclusive/exclusive) : tempo necessario al sistema per processare il singolo file (exclusive) o il file e i suoi figli (exclusive)
Hot elements view
Il grafico rappresenta il tempo impiegato da ogni singolo elemento per il layout
DEMO
Energy consumptiono Permette di analizzare le problematiche
relative al consume energetico e di rete della nostra app;
o Possono essere inseriti dei marker custom;o Può essere eseguito anche su app installate
(non necessariamente sul codice) o remote;
Estimated power usage (mW)Mostra il consumo (in mW) della nostra applicazione nel tempo:
o CPU : consumo dovuto alle operazioni della CPU;
o Display : consumo dovuto alla parte UI e rendering;
o Network : consumo dovuto al traffic di rete
Resources (On/Off)
Mostra i costi energetici dovuti all’utilizzo delle risorse di rete
Energy usage summary
Mostra un riepilogo del consumo totale durante la sessione con delle previsioni sulla durata della batteria con l’app sempre attiva.
DEMO
Domande?
Riferimentio Debugging and testing Windows Store apps with
Visual Studiohttp://msdn.microsoft.com/library/windows/apps/hh441481.aspx
o Testing Windows Store Applications with Coded UI Testshttp://msdn.microsoft.com/en-us/library/dn305948.aspx
o Testing Windows Store Applications (Channel 9) – videohttp://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview/Testing-Windows-Store-Applications
o Testing Windows Store apps Running on a Device Using the Exploratory Test Windowhttp://msdn.microsoft.com/en-us/library/hh873101(v=vs.110).aspx
o HTML.it – CodedUI test per Windows Store Apps http://www.html.it/pag/47556/codedui-test-per-windows-store-apps-csxaml/
o Software Testing with Visual Studio 2012 Jump Starthttp://www.microsoftvirtualacademy.com/training-courses/software-testing-with-visual-studio-2012-exam-70-497-jump-start
o Software Testing Fundamentalshttp://www.microsoftvirtualacademy.com/training-courses/software-testing-fundamentals
o Introduzione all'applicazione di ALM con Visual Studio 2012http://www.microsoftvirtualacademy.com/training-courses/fefd595a-6ac7-4bb7-bdf1-90a214e9867f
o Applying ALM with Visual Studio 2012 Jump Starthttp://www.microsoftvirtualacademy.com/training-courses/applying-alm-w-visual-studio-2012-jump-start
http://www.microsoftvirtualacademy.com/