Software testing. Lezione 7 Test Automation Federica Spiga federica_spiga@yahoo.it. A.A. 2010-2011 Autori: F.Spiga



Documenti analoghi
tesi di laurea Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana candidato Pasquale Ludi Matr. 534\000438

Reingegnerizzazione del processo di test nel contesto Exprivia

Il modello di ottimizzazione SAM

Test e collaudo del software Continuous Integration and Testing

lem logic enterprise manager

Pieces of Technology at your service. dottesttm

DRUPAL CONTINUOUS INTEGRATION. Parte I - Introduzione

Gestione in qualità degli strumenti di misura

Software MarkVision per la gestione della stampante

NuMa Nuove Manutenzioni. Web Application per la Gestione dell Iter di Manutenzione degli Edifici e del Territorio

In legenda sono riportate le fasi R, P, C/T e I/SA come specificato nella norma ISO/IEC

Controllo di Gestione

Il CMS Moka. Giovanni Ciardi Regione Emilia Romagna

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

SOFTWARE PER LA RILEVAZIONE DEI TEMPI PER CENTRI DI COSTO


Il Web Server e il protocollo HTTP

L a p i p at a taf a or o ma a p e p r e ga g r a an a t n ire e l ef e fici c en e za za e n e e n r e ge g t e ica Powered By

InitZero s.r.l. Via P. Calamandrei, Arezzo

Indice. Ingegneria dei requisiti e gestione agile. User-Centered Development Esempi di artefatti. Domain Driven Design. Design for Testability

Configuration Management

2 Gli elementi del sistema di Gestione dei Flussi di Utenza

MODULO PER LA GESTIONE DEI RESI

Descrizione del prodotto WebPEG: Piano Esecutivo Gestione

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

Eclipse e Subversion

CORSO WET 462 Amministrazione di database SQL Server 2012

Modulo Gestione Interventi Tecnici. Il prezioso assistente che mancava alla tua impresa.

SCELTA DEL TEST DA ESEGUIRE

OmniAccessSuite. Plug-Ins. Ver. 1.3

YO Y U O R U OP O E P R E A R T A O T R O G R D G O GESTIONE VOLANTINI

BiblioTech - Personal Digital Library

MagiCum S.r.l. Progetto Inno-School

SINPAWEB corso per Tecnico della programmazione e dello sviluppo di siti internet e pagine web co.reg matricola 2012LU1072

Sviluppo Applicativi personalizzati per automatizzare le Analisi SPC

Problem Management. Obiettivi. Definizioni. Responsabilità. Attività. Input

Esercitazioni di PROGETTAZIONE DEL SOFTWARE A.A

PROGRAMMA DEL CORSO TECNICO SOFTWARE

Corso di Laurea in Matematica. Seminario C/C++ Lorenzo Dusty Costa. Università degli Studi di Milano Dipartimento di Matematica

Si applica a: Windows Server 2008

Approfondimenti. Contenuti

LA RICLASSIFICAZIONE DEI SALDI CONTABILI CON MICROSOFT ACCESS 2007

Corso di Informatica

Strumenti di gestione del ciclo di vita del software

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

La VPN con il FRITZ!Box Parte I. La VPN con il FRITZ!Box Parte I

Come funziona il WWW. Architettura client-server. Web: client-server. Il protocollo

E-FABRICA. Formerly Know As Fabrica 8.x

IBM Software Demos The Front-End to SOA

uadro Soluzioni software per L archiviazione elettronica dei documenti Gestione Aziendale Fa quadrato attorno alla tua azienda

GROUP POLICY MANAGEMENT CONSOLE (ACTIVE DIRECTORY)

Software di gestione della stampante

PAWSN. Wireless social networking

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

Manuale di Aggiornamento BOLLETTINO. Rel H4. DATALOG Soluzioni Integrate a 32 Bit

CONTENT MANAGEMENT SYSTEM

Processo parte VII. Strumenti. Maggiore integrazione. Sviluppo tecnologico

Introduzione alla Virtualizzazione

LA RICLASSIFICAZIONE DI BILANCIO CON MICROSOFT ACCESS

Manuale d uso Software di parcellazione per commercialisti Ver [05/01/2015]

Fase 1 Documento di Analisi

automatizzare il flusso di lavoro degli imballaggi

Estensione di un sistema per la gestione semi-automatica di siti didattici con XML

sito web sito Internet

SOMMARIO Introduzione Caratteristiche generali della piattaforma Amministrazione degli utenti 5

Cosa mette a disposizione dell'utente

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Programmazione Java Avanzata

SIEBEL CRM ON DEMAND MARKETING

MoniThor di IDC-Informatica Centralizzazione di controlli per apparati eterogenei

Politecnico di Bari Corso di Laurea Specialistica in Ingegneria Informatica A.A Casi di Studio. Traccia n 1

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

LA SOLUZIONE APPLICATIVA PER UN EFFICIENTE SALES MANAGEMENT

Generazione Automatica di Asserzioni da Modelli di Specifica

FIRESHOP.NET. Gestione del taglia e colore.

Sistemi informativi secondo prospettive combinate

WorkFLow (Gestione del flusso pratiche)

Perfare MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI

Reti di Telecomunicazione Lezione 8

ALICE AMMINISTRAZIONE UTENTI WEB

Strumenti per la gestione della configurazione del software

TERM TALK. software per la raccolta dati

Ambienti di Sviluppo

automatizzare il flusso di lavoro

Concetti di base di ingegneria del software

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

La Formazione: elemento chiave nello Sviluppo del Talento. Enzo De Palma Business Development Director

HR Human Resouces. Lo strumento innovativo e completo per la gestione del personale. ZUCCHETTI CENTRO SISTEMI SPA

OCS Open Control System

capitolo 8 LA CHECKLIST PER LA VALUTV ALUTAZIONEAZIONE TECNOLOGICA

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Le Soluzioni Tango/04 per adempiere alla normativa sugli amministratori di sistema

Power-Studio è un semplice, veloce potente ed intuitivo applicativo software di monitoraggio e supervisione energetica che consente di realizzare:

Microsoft Office XP. dott. ing. Angelo Carpenzano. La suite Microsoft Office XP

Mondialpol Service Group - Company Profile

Progettaz. e sviluppo Data Base

Meno rischi. Meno costi. Risultati migliori.

La strada per sviluppare più rapidamente: Unit Test & Continuous Integration

Transcript:

1 Software testing Lezione 7 Test Automation Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Spiga

2 "La prima regola di ogni tecnologia è che l'automazione applicata ad un'operazione efficiente ne aumenterà l'efficienza. La seconda è che l'automazione applicata ad un'operazione inefficiente ne aumenterà l'inefficienza". Bill Gates

3 Test automation È l insieme delle tecniche e delle tecnologie che consentono di automatizzare (anche parzialmente) alcune attività del Processo di Testing. Alcune aree di intervento: Generazione dei Casi di Test; Preparazione ed Esecuzione del Test; Valutazione dell efficacia di Test Suite. Potenzialmente utile a ridurre i costi esempio: capture and replay tools riduce i costi dovuti alla reesecuzione delle test suite Utile ad aumentare la produttività del team

4 Approaching Automation Negli approcci al testing fin qui analizzati, si è sempre considerato il task di Test Case Design come un task svolto manualmente dal tester; A causa dell elevato numero di casi di test necessari per un testing efficace, l operazione di progettazione manuale dei casi di test può essere molto onerosa. Tecniche per la generazione automatica dei casi di test possono ridurre drasticamente i costi e i tempi legati alla fase di test design; Può però essere necessaria una fase di valutazione dell efficacia dei casi di test e una fase di riduzione dei casi di test ridondanti.

5 Vantaggi dell automazione Efficienza Ridurre I costi del testing Ridurre il tempo speso nella fase di test Automatizzare smoke test e regressione test Aumentare il coverage dei test

6 Svantaggi dell automazione Non ci si deve aspettare che la produttività aumenti immediatamente!! L approccio all automazione è un approccio strategico Nella realtà spesso I vantaggi per l organizzazione dell automation si scoprono nel medio/lungo periodo Per creare un test automatico ci vuole da 3 a 10 volte l effort rispetto ad un test manuale E necessario spendere un maggiore effort per la gestione e la manutenzione dei test automatici

7 I costi dell automazione I costi dell automazione possono variare enormemente. Alcuni tool possono essere molto semplici da sviluppare così che sia giustificabile automatizzare anche se I benefici possono essere modesti L acquisto di alcuni tool di test automation potrebbe troppo oneroso per il budget di un progetto solo

8 I costi possono dipendere dallo scope Spesso sviluppare un tool general-purpose tool è solo marginalmente più difficile da realizzare che produrre un tool specializzato per un progetto Investimenti per tool general purpose (svilupparli o acquistarli) potrebbero essere ammortizzati tra più progetti In altri casi, per grossi progetti, potrebbe essere conveniente sviluppare dei tool specifici

9 Focalizzarsi dove l automazione è più conveniente Task semplici e ripetitivi sono quelli più convenienti e economici da automatizzare Un uomo tende ad essere lento e fare errori nei task ripetitivi Utile quindi nel: Regression testing Smoke test Performance e load test Attività che richiedono creatività e attitudine al problem solving restano fuori dal dominio dell automazione

10 Generazione dei test automatici User Session Tecnica per la generazione automatica di casi di test per il testing black box partendo dall analisi delle sessioni utente (User Session), ovvero delle sequenze dei valori di input immessi e di output ottenuti in utilizzi reali del software. In pratica, vengono installati strumenti che siano in grado di mantenere un log di tutte le interazioni che avvengono tra gli utenti dell applicazione da testare e l applicazione stessa (fase di Capture); A partire da tali dati vengono formalizzati casi di test che replichino le interazioni catturate (fase di Replay) In questo modo è possibile ottenere casi di test che siano rappresentativi dei reali utilizzi dell applicazione da parte dei suoi utenti.

11 Test Mutazionale Il Testing Mutazionale è una tecnica per la generazione automatica di casi di test. A partire da un sottoinsieme di casi di test, si applicano alcuni operatori di mutazione che vadano a modificare/incrociare i dati dei test case esistenti, in modo da ottenere nuovi test case. Es. Si cambia il segno degli input, si raddoppiano i valori di input, si combinano sequenze di input in nuove sequenze, etc Con tale tecnica si possono ottenere Test Suites più piccole (meno test cases) con maggiore copertura con uno sforzo minore rispetto a quelle ottenute semplicemente collezionando sessioni utente. Bisogna però eliminare tutti i test cases che risultano non applicabili. Questa tecnica è spesso utilizzata per il testing di interfacce o di protocolli.

12 Test Tools Lezione 8 Test Tools Federica Spiga federica_spiga@yahoo.it A.A. 2010-2011 Autori: F.Spiga/A.Di Toro

13 Test Management Un tool per la gestione dei test è Test Link http://www.teamst.org/ Facilità di utilizzo / personalizzazione; Raggruppamento dei progetti per aree applicative; Creazione/Import/Export dei progetti; Gestione requisiti funzionali, test, script, piani di esecuzione e report; Gestione delle utenze e assegnazioni dei ruoli all interno dei test plan; Salvataggio e riutilizzo delle sessioni di test; Controllo sullo stato di avanzamento dei test in corso; Gestione dei risultati dei test eseguiti; Metriche per la valutazione dello stato attuale del progetto di test nei confronti degli obiettivi di qualità prefissati; Analisi del rischio in base alla priorità delle funzionalità / test;

14 Test Management Un tool per la gestione dei test è Test Link http://www.teamst.org/

Test Management 15

16 TestLink Visione Generale All interno del singolo progetto, vengono associati i vari oggetti necessari a monitorare e a gestire tutto il processo di test. Principali Funzionalità: Requirement Management; Test Plan Management; Test Case Management;c Test Execution; Metrics Dashboard; Documentation;

17 TestLink Amministrazione TestLink permette di gestire le utenze e i ruoli e di assegnare determinati ruoli per Progetto e per Test Plan.

18 TestLink Requisiti Funzionali Per i requisiti vengono messe a disposizione le seguenti funzionalità: Creazione/Modifica in base ad una struttura ad albero; Creazione della struttura dei Test Case a partire dai requisiti; Gestione e Analisi copertura requisiti funzionali / test; Import / Export nei formati CVS o XML; Stampa del documento dei requisiti.

19 TestLink Test Plan Per la gestione dei Test Plan vengono fornite le funzionalità di controllo a diversi livelli: Test Plan; Build Management; Milestone per Test Plan.

20 TestLink Test Execution Creazione e gestione dei Test Case associabili ai Test Plan per la definizione delle sessioni di test. Possibilità di gestione e controllo delle sessioni di esecuzioni dei test.

21 Test Link - Gestione Reportistica Possibilità di Export nei formati Excel, Word, HTML, OpenOffice

22 Test Automation Unit Test Un tool per i test automation degli Unit test è Junit http://www.junit.org/ E un framework che permette la scrittura di test in maniera ripetibile. Fu sviluppato originariamente da Erich Gamma and Kent Beck, nell ambito degli strumenti a supporto dell extreme Programming. Modello delle classi del framework JUnit

23 Junit Le componenti Test: É l interfaccia che tutti I tipi di classi di test devono implementare. Attualmente il framework JUnit contiene solo due classi di test, TestCase e TestSuite. TestCase: É la classe fondamentale che deve essere estesa per scrivere nuovi test. Un TestCase concreto (cioè una classe che estende TestCase) ha sia metodi che implementano i veri e propri test, sia i metodi opzionali di setup (che settano le precondizioni necessarie prima dell esecuzione di un Test) e teardown (che eseguono le operazioni necessarie ad azzerare gli effetti prodotti dal test). TestSuite: classe che implementa l interfaccia di Test. Il suo scopo è di raggruppare Tests di TestCases, o TestSuites. Assert: superclasse di TestCase che fornisce tutti I metodi assert disponibili nel framework per verificare l esito del test. TestFailure: classe che incapsula l errore o la failure che si verificano durante l esecuzione del test. Essa tiene traccia del Test fallito e dell eccezione responsabile dell errore o della failure. TestResult: contiene tutti i risultati dell esecuzione dei test. TestListener: interfaccia che viene implementata da ogni classe che vuole tenere traccia del progresso dell esecuzione di un test. Dichiara I metodi per notificare l inizio e la fine di ciascun test, e l occorrenza di errori e failures.

24 Junit Plugin Alcuni ambienti di sviluppo software mettono a disposizione dei Plug-ins che semplificano il processo di scrittura ed esecuzione dei test JUnit su classi Java. Ad esempio, Eclipse é dotato di un plug-in, di pubblico dominio, che supporta tutte le operazioni legate al testing di unità con JUnit. In particolare, esso fornisce dei wizard per: Creare classi contenenti test cases; Automatizzare l esecuzione di tutti i test cases; Mostrare i risultati dell esecuzione dei casi di test; Organizzare i test cases in test suites.

25 Test Automation Functional Test Un tool per i test automation è Selenium http://seleniumhq.org/ Compatibilità con i browser più diffusi (Firefox, IE, Safari); Gestione di Test Suite e Test Case; Robustezza del linguaggio di script; Personalizzazione degli script registrati; Gestione del repository dei test script; Pubblicazione delle API di interfaccia; Gestione dei risultati dei test eseguiti; Compatibilità con più linguaggi di programmazione; Funzionalità di record & playback; Buona documentazione

26 Automation Test Selenium Suite Tool Cosa comprende la Suite? Possibilità di registrare i test in Firefox, con Selnium IDE; Possibilità di eseguire i test nei browser più comuni, con Selenium RC; Personalizzazione degli script di test con l ausilio di molti linguaggi di programmazione (C#, Java, Perl, PHP, Python, Ruby); Distribuzione dei test su server multipli, Selenium GRID, risparmiando tempo con la pianificazione in parallelo dei test.

27 Selenium IDE Visione Generale Add In di Firefox, permette la registrazione e l esecuzione degli script, con la possibilità di personalizzazione.

28 Selenium IDE Personalizzazione Script Tra le Options è possibile selezionare un formato per poter personalizzare lo script. Ad esempio selezionando Java Selenium RC, lo script registrato viene convertito in linguaggio Java, che può essere importato e modificato in un IDE JAVA per poi essere eseguito da Selenium Remote Control.

29 Selenium Test Runner Gestione dell esecuzione delle Suite di Test con la possibilità di avere un riscontro sui risultati.

30 Selenium Result Esecution Test Visualizzazione runtime dell esecuzione dei test, con un resoconto dell esecuzione rispetto al numero di test eseguiti e ai comandi sottomessi. Viene messa a disposizione una visualizzazione dei log di esecuzione per il debug.

31 Apache JMeter Applicazione Java stand-alone utile per l'esecuzione di test di performance e per la misura delle metriche di performance (service-level) Originariamente progettato per testare applicazioni Web (http) è stato esteso per: FTP RDBMS (JDBC) etc.

32 JMeter: concetti di base (1/3) TestPlan: consiste in uno o più ThreadGroups ThreadGroup: insieme di utenti simulati Thread Ogni thread rappresenta un Virtual User. 1000 Thread rappresentrano 1000 VU concorrenti

33 JMeter: concetti di base (2/3) Timer: elemento che caratterizza il comportamento di un ThreadGroup Constant timer Gaussian random timer Uniform random timer Nota: senza un timer si simulerebbero degli iper-utenti

34 JMeter: concetti di base (3/3) Sampler Interagiscono con l applicazione testata. Esistono diversi Sampler per diversi protocolli (JDBC, HTTP, FTP, ecc.) Per le applicazioni web si può utilizzare il Sampler HTTP Request Logic controller Determina l ordine con cui i Sampler vengono eseguiti. Listener: L informazione prodotta dai Sampler è consumata dai Listener Esistono listener per rappresentare i risultati in modo diverso: Graph, TreeView,...

35 JMeter: ciclo di vita di un TestPlan Definizione del TestPlan Avvio del Test: JMeter compila gli elementi di test; Viene istanziato un oggetto TestPlan; Viene configurato il JMeterEngine; Vengono avviati i vari threads. Stampa dei risultati del test: grafici xml...

36 Un esempio di utilizzo Obiettivo: testare una Web application. Strategia: settare un ThreadGroup aggiungere dei HTTP request sampler al ThreadGroup settare un timer settare alcuni listener

37 1: avvio di JMeter TestPlan Contiene TestPlan attivi e pronti per essere eseguiti WorkBench Area di lavoro utile per costruire e configurare tests.

38 2: aggiungere un Thread group 38

39 3: configurare un Thread group 39

40 4: aggiungere un sampler 40

5: aggiungere un timer 41

42 6: aggiungere un listener 42

43 7: aggiungere altri listener View result tree (il listener appena inserito). Utile in fase di creazione del test plan per verificare le risposte del server. Graph results e Splin visualizer. Mostrano i risultati della simulazione sotto forma di grafici. Simple data writer. Memorizza i dati della simulazione su un file XML

44 Dove eseguire JMeter? Sulla stessa macchina che esegue il server web? pro: non ci sono ritardi introdotti dalla rete contro: Jmeter entra in competizione per le risorse del server. Su una macchina remota? pro: Jmeter non influisce sulle prestazioni del server contro: possibili ritardi introdotti dal traffico del segmento di rete utilizzato Su più macchine remote? pro: si minimizza il problema dei colli di bottiglia di rete contro: configurazione e avvio un po' più laborioso

Dove eseguire JMeter? 45

46 Bug tracking Per la gestione del processo di bug tracking si possono utilizzare Bugzilla http://www.bugzilla.org/ Mantis http://www.mantisbt.org/

47 Bugzilla Bugzilla è un'applicazione per il monitoraggio e la gestione dei bug. Bugzilla è un bugtracker (programma per tenere traccia di errori di programmazione) general purpose (cioè non dedicato ad un solo possibile utilizzo) inizialmente sviluppato e usato dalla squadra che ha prodotto Mozilla. Rilasciato come software open source da Netscape Communications nel 1998, Bugzilla è stato adottato da varie organizzazioni per utilizzarlo come strumento per rintracciare errori (bugs) per progetti di prodotti sia open source sia proprietari

48 Bugzilla Principali funzionalità: Schema di sicurezza granulare integrato per prodotto Dipendenze tra i bug e grafici di dipendenza Capacità avanzate di report Un back-end RDBMS stabile e robusto Configurabilità estesa Un protocollo di risoluzione dei bug facilmente comprensibile e ampiamente testato Interfacce di programmazione via e-mail, XML, console, e HTTP Possibilità di integrazione con software di CMS, inclusi Perforce e CVS (attraverso l'interfaccia e-mail di Bugzilla e script di checkin/checkout)