XmlBlackBox La presentazione Alexander Crea 15 Giugno 2010 http://code.google.com/p/xmlblackbox/ Che cos’è E’ un framework Java per l'implementazione di test in ambienti eterogenei XmlBlackBox http://code.google.com/p/xmlblackbox/ Cosa può fare Testare applicazioni web (con Selenium) Testare Web Services Verificare il contenuto di file XML e effettuarne la validazione Verificare il contenuto di un database Eseguire funzionalità non previste utilizzando i Plugin Includere uno stesso insieme di passi in test case diversi Condividere le variabili create durante il flusso del test case Impostare attese condizionate per i processi asincroni XmlBlackBox http://code.google.com/p/xmlblackbox/ I vantaggi… …nell'implementazione del test Il tempo di sviluppo di un test case diminuisce all'aumentare del numero dei casi già sviluppati, attraverso la possibilità di includere uno stesso insieme di passi già implementato per altri test. L'integrazione di nuove operazioni, non contemplate nel framework di base, attraverso la possibilità di sviluppare plugin ad hoc. La gestione del server Selenium è completamente guidata dal framework. La verifica di un database viene realizzata semplicemente attraverso la descrizione (in XML) delle colonne da controllare e dei dati attesi. La chiamata ad un Web service si basa sulla generazione delle classi client (Stub) con Axis2 e sulla creazione del file xml che deve essere contenuto nel SOAP. XmlBlackBox http://code.google.com/p/xmlblackbox/ I vantaggi… …in caso di test falliti L’immediata comprensione degli obiettivi del test grazie alla capacità autodescrittiva data dal linguaggio Xml La rapida verifica dei problemi di navigazione attraverso l'impiego di Selenium che rende semplice l'individuazione del problema emerso La semplice verica dell'esito delle chiamate ai web services attraverso il log del file di input spedito e del file di output ricevuto I ridotti tempi di verifica/correzione anche per chi non ha implementato il test case in corso di analisi XmlBlackBox http://code.google.com/p/xmlblackbox/ I vantaggi… … in caso di modifiche all'applicazione Le modifiche all'applicazione che richiedono interventi su test case gia sviluppati evidenziano le potenzialità dell'impiego del linguaggio XML, infatti: - l'uso degli INCLUDE consente di intervenire in un solo, o comunque in un limitato numero di file xml, gli unici che si riferiscono alla funzionalità dell'applicazione oggetto dell'intervento - l'uso dei tag permette di effettuare modifiche solo su singole parti del test, attraverso la sostituzione dei soli tag di cui è necessario modificare il comportamento XmlBlackBox http://code.google.com/p/xmlblackbox/ L’uso dei plugin Che cos'è un plugin E' un classe java che implementa una specifica interfaccia Il plugin ha la funzione di ampliare ed integrare il framework di base, permettendo di inserire all'interno del flusso del test nuove operazioni. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’uso dei plugin Un esempio <RUN-PLUGIN version="1.1" class="org.xbb.plugin.EseguiProcessoAS400" > <PARAMETERS> <PARAMETER name="nomeCL" value="getDatiCliente" /> <PARAMETER name="CF" value="PCTRTF83G54H501R" /> </PARAMETERS> </RUN-PLUGIN> Nell'esempio viene chiamata un ipotetica procedura su AS400 che restituisce i dati del cliente a partire dal codice fiscale. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’uso dei plugin Come usarli Il frammento Xml può essere copiato in tutti i test case interessati all'operazione. Inoltre il plugin può essere sviluppato in modo da avere comportamenti diversi a seconda dei parametri in input definiti nel tag. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’uso del tag include A cosa serve Permette di includere lo stesso insieme di passi in test case differenti. In questo modo può essere creata una “libreria” di operazioni descritte in file xml. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’uso del tag include Un esempio <INCLUDE-FILE version="1.1" filename="/org/xbb/test/ConfigConnDerby.xml"/> L'esempio descrive l'include della configurazione di una connessione al database che può essere inserito in tutti i test case che la devono utilizzare. XmlBlackBox http://code.google.com/p/xmlblackbox/ Come collabora con Selenium La navigazione Selenium deve essere contenuta in una classe java che implementa una specifica interfaccia E' sufficiente generare la navigazione selenium in codice java attraverso Selenium IDE, inserirla nella classe e creare il tag xml SELENIUM. XmlBlackBox http://code.google.com/p/xmlblackbox/ Come collabora con Selenium Configurazioni particolari Configurazioni di Selenium non previste dal framework possono essere gestite attraverso lo sviluppo di un plugin. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’impiego dell’XML Perché Il test è autoesplicativo. La descrizione con il linguaggio Xml permette di capire rapidamente gli obiettivi, anche a distanza di tempo o da parte di chi non ha implementato il test case. XmlBlackBox http://code.google.com/p/xmlblackbox/ L’impiego dell’XML Perchè Le caratteristiche del singolo test sono tutte contenute e descritte nel file xml e in eventuali file inclusi. XmlBlackBox http://code.google.com/p/xmlblackbox/ Iniziare con XmlBlackBox XBB non costringe ad un salto nel buio. E' facilmente integrabile in una architettura di test JUnit già presente. Al framework potrebbero essere delegate solo alcune particolari operazioni per comprenderne le potenzialità. XmlBlackBox http://code.google.com/p/xmlblackbox/ XmlBlackBox XmlBlackBox http://code.google.com/p/xmlblackbox/ Email [email protected]