presentazione della tesi di laurea specialistica : strumenti per la generazione automatica di test...

14
UNIVERSITÀ DEGLI STUDI DI GENOVA SCUOLA POLITECNICA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI Relatore Accademico Prof. Enrico Giunchiglia Correlatore Prof. Massimo Narizzano Correlatore Dott. Emanuele Di Rosa (ETT s.r.l.) Candidato Maurizio Pianfetti TOOLS FOR TEST GENERATION IN BLACK-BOX AND WHITE-BOX TESTING

Upload: boymix81

Post on 07-Jul-2015

837 views

Category:

Technology


0 download

DESCRIPTION

Breve presentazione del lavoro svolto per la tesi : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI, scaricabile dal sito web http://boymix81.mynickname.info

TRANSCRIPT

Page 1: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

UNIVERSITÀ DEGLI STUDI DI GENOVASCUOLA POLITECNICA

CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA

STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E

FUNZIONALI

Relatore Accademico Prof. Enrico GiunchigliaCorrelatore Prof. Massimo Narizzano

Correlatore Dott. Emanuele Di Rosa (ETT s.r.l.)Candidato Maurizio Pianfetti

TOOLS FOR TEST GENERATION IN BLACK-BOX AND WHITE-BOX TESTING

Page 2: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Definizioni

Test: Sistema(dati di input) � dati di output

Testing: è il processo di valutazione di un sistema attraverso strumenti manuali o automatici col fine di determinare se il sistema soddisfa i requisiti specificati oppure se il suo comportamento verificato differisce da quello atteso

Esito Test: dati di output uguali ai dati attesi ?

Page 3: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Motivazioni

Automazione della generazione ed esecuzione dei test per la riduzione dei tempi e costi del testing

Processo di software testing è essenziale per ridurre i malfunzionamenti

Più tempoper la preparazione dei processi di testing

� Meno tempo e costi per il mantenimento e correzione dei difetti

Ma costoso dal 40% al 60% del tempo di sviluppo

Page 4: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Test Funzionali (Black-Box) vs Strutturali (White-Box)

Test funzionale

Black Box Testing

Partition Testing (Input Domain Model)

� Basandosi sull'interfaccia

� Basandosi sulle funzionalità

Error based Testing

� Basandosi sugli errori

Test strutturale White Box Testing

Sono complementari ed ognuno può rilevare malfunzionamenti non rivelabili con l’altro.

Page 5: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Obiettivi

� insieme di test che raggiungono il 100% della copertura del codice per il White-Box Testing (strutturale)

– confronto di «Microsoft Pex» con altri strumenti di ricerca, in termini di tempi di calcolo, percentuale di copertura, numero di test generati

– applicazione di «Microsoft Pex» su due progetti di sviluppo di ETT s.r.l.

Automazione della generazione dei dati di input con l’utilizzo di tools

� insieme di dati che rispettano una determinata specifica per il Black-Box Testing (funzionale)

– sviluppo di un’applicazione per la generazione ed esecuzione automatica di test per applicazioni web

– utilizzo su due casi di studio (Siti web COL e «ClicLavoro Campania» sviluppati da ETT s.r.l.)

Page 6: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Librerie e strumenti per lo sviluppo (Black-Box Testing)

Ricerca di strumenti commerciali ed opensource:�Selenium automates browsers: Framework per più linguaggi OO per quasi tutti i browser�SoapUI: Applicazione standalone orientata ai WS�Sashi: Applicazione java con creazione di test con un file di configurazione

WatiN: «Web Application Testing In .Net»�Libreria per sviluppatori C# (.NET 2.0 – 4.0) per la navigazione e manipolazione delle pagine web�Compatibile con tutte le versioni di IE fino alla 9 FF 3.6�Semplice e veloce da imparare

Nessuno di essi effettua una generazione automatica di dati di input, quindi si è deciso di sviluppare una nuova applicazione.

Page 7: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Strumento «Automatic Tester of Web Pages 1.0»

1. Lettura file di configurazione (eventualmente anche il file dei dati)

2. Generazione test FORM / LINK

a) Se FORM, generazione dei dati di input

� CASUALE_DEFAULT: valore campo HTML

� CASUALE_DOMINI: sapendo il dominio di valori, casuali appartenenti al dominio

� CASUALE_FUORIDOMINIO: sapendo il dominio dei valori, valori casuali, sicuramente non appartenenti al dominio

� CASUALE: tutti i casi

� FUNZIONALE: ad ogni campo si specifica il valore da utilizzare per poter essere certi del risultato atteso e poterlo verificare

b) Combinazione dei dati per la creazione dei test

3. Esecuzione test

4. Salvataggio report risultati e file dei dati

Page 8: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Siti web testati con «Automatic Tester of Web Pages 1.0»

Testing del sito COL, esempio di generazione casuale dei dati di input

Testing del sito «ClicLavoro Campania», esempio di utilizzo dei dati di input su un processo di compilazione multiform

Page 9: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Microsoft Pex (White-Box)

Program EXploration

�Attraverso Dynamic Simbolic Execution, strategia Fitnexe «Microsoft Z3» SMT Solver, modella il grafo dei controlli

return target != (ClassMethod)null && i < 0 && j != 123;

�Genera le Parameterized Unit Testper raggiungere la massima copertura del codice testato / metodi testati

�Utilizza l’ instrumentation inserendosi nel ".NET profiling API", prima che il linguaggio sia compilato in codice macchina, per poter riscrive le istruzioni per affrontare il problema dell'isolamento tramiteMicrosoft Moles,permettendo di“Molare” o “creare Stub” di metodi esterni richiamati, per rendere indipendente il codice testato

Page 10: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Microsoft Pex (DSE) vs SAT&Pref (CBMC) vs Tools

Microsoft Pex è stato confrontato con le funzionalità di strumenti commerciali (JetBrains dotCover, NConer Desktop, C# Test

Coverage Tool) e con algoritmi di strumenti sperimentali (TeGeVe, noPref, SAT&PREF e SAGE)

Page 11: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Microsoft Pex su Benchmarks Hand-Crafted (White-Box)

Strategie di Pex Copertura

Pex-Default2 99,19%

Pex-Default-VS2010 99,05%

Pex-Default5-VS2010 98,79%

Pex-Default4_MaxSolver10 97,88%

Pex-FrontierBreadthFirst 93,18%

Pex-Default3 84,95%

Pex-FrontierRandom 84,36%

Pex-FrontierDepthFirst 60,10%

Pex-FrontierIterativeDeepening 32,07%

Metodo Tests Durata Copertura

synth_b2_s5_k1_rnd0(TestCFiles, Int32, Int32, Int32, Int32)9 9,82 100,00%

synth_b2_s5_k1_rnd1(TestCFiles, Int32, Int32, Int32, Int32)9 11,08 100,00%

synth_b2_s5_k1_rnd10(TestCFiles, Int32, Int32, Int32, Int32)9 10,70 100,00%

synth_b2_s5_k1_rnd2(TestCFiles, Int32, Int32, Int32, Int32)9 9,95 100,00%

synth_b2_s5_k1_rnd3(TestCFiles, Int32, Int32, Int32, Int32)10 11,14 100,00%

synth_b2_s5_k1_rnd4(TestCFiles, Int32, Int32, Int32, Int32)9 9,71 100,00%

synth_b2_s5_k1_rnd5(TestCFiles, Int32, Int32, Int32, Int32)9 9,40 100,00%

synth_b2_s5_k1_rnd6(TestCFiles, Int32, Int32, Int32, Int32)10 11,20 100,00%

synth_b2_s5_k1_rnd7(TestCFiles, Int32, Int32, Int32, Int32)9 11,24 100,00%

synth_b2_s5_k1_rnd8(TestCFiles, Int32, Int32, Int32, Int32)10 10,14 100,00%

synth_b2_s5_k1_rnd9(TestCFiles, Int32, Int32, Int32, Int32)8 11,17 100,00%

StrumentoN. Test Totali

Generati

SAT&PREF 262

TeGeVe 300

Pex-Default2 933,27

noPref 945

SAGE 2115

Risultati delle esecuzioni di Pex effettuate per l’analisi di 2200 metodi, confrontati con quelli dei singoli strumenti sperimentali in termini di n. di test generati, durata dell’esecuzione (sec) e copertura del codice raggiunta

Page 12: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Casi reali testati con Microsoft PexStrumenti sperimentali solo per C non utilizzabili in .NET, gli altri ritentuti costosi.Esecuzione di Pex da MS VS2010 e da linea di comando con applicazione di migliorie suggerite da Pex su due progetti reali

Page 13: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

Conclusioni�WatiN si è rilevato una libreria utile ed intuitiva ma a confronto

con altre si è dimostrata la più limitata come numero di browser supportati e meno aggiornata

� «Automatic Tester of Web Pages 1.0» prototipo per migliorare le attività di testing ed aiutare il tester nel suo lavoro

� Pex ha portato migliorie nel codice analizzato nonostante ci sia voluto diverso tempo per imparare ad usarlo, meglio di SAGE in termine di numero di test generati ma non efficiente

Pensando ad una architettura MVC, si sono affrontate le tematiche di come:

– Testare il motore dell'applicazione attraverso i test strutturali isolando i dati del modello

– Effettuare test funzionali sull'interfaccia

Page 14: Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI

UNIVERSITÀ DEGLI STUDI DI GENOVASCUOLA POLITECNICA

CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA

Un rigraziamento a tutti per avermi ascoltatoMaurizio Pianfetti

[email protected]://boymix81.mynickname.info

Relatore Accademico Prof. Enrico GiunchigliaCorrelatore Prof. Massimo Narizzano

Correlatore Dott. Emanuele Di Rosa (ETT s.r.l.)