UNIVERSITÀ DEGLI STUDI DI GENOVA                  SCUOLA POLITECNICACORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATIC...
DefinizioniTest : Sistema(dati di input)     dati di outputTesting: è il processo di valutazione di unsistema attraverso s...
Motivazioni       Processo di software testing è essenziale           per ridurre i malfunzionamenti        Più tempo per ...
Test Funzionali (Black-Box) vs Strutturali (White-Box)Test funzionale        Test strutturale White Box TestingBlack Box T...
ObiettiviAutomazione della generazione dei dati di input con l’utilizzo di tools  insieme di dati che rispettano una deter...
Librerie e strumenti per lo sviluppo (Black-Box Testing)Ricerca di strumenti commerciali ed opensource:  Selenium automate...
Strumento «Automatic Tester of Web Pages 1.0»                1. Lettura file di configurazione (eventualmente anche il    ...
Siti web testati con «Automatic Tester of Web Pages 1.0»                                  Testing del sito COL, esempio   ...
Microsoft Pex (White-Box)Program EXploration Attraverso Dynamic Simbolic Execution, strategia Fitnex e«Microsoft Z3» SMT S...
Microsoft Pex (DSE) vs SAT&Pref (CBMC) vs ToolsMicrosoft Pex è stato confrontato con le funzionalità di strumenti  commerc...
Microsoft Pex su Benchmarks Hand-Crafted (White-Box)       Strategie di Pex              Copertura    Risultati delle esec...
Casi reali testati con Microsoft PexStrumenti sperimentali soloper C non utilizzabili in .NET,gli altri ritentuti costosi....
Conclusioni  WatiN si è rilevato una libreria utile ed intuitiva ma a confronto  con altre si è dimostrata la più limitata...
UNIVERSITÀ DEGLI STUDI DI GENOVA                  SCUOLA POLITECNICACORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATIC...
Upcoming SlideShare
Loading in …5
×

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

1,394 views
1,432 views

Published on

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

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,394
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

  1. 1. UNIVERSITÀ DEGLI STUDI DI GENOVA SCUOLA POLITECNICACORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI TOOLS FOR TEST GENERATION IN BLACK-BOX AND WHITE-BOX TESTING Relatore Accademico Prof. Enrico Giunchiglia Correlatore Prof. Massimo Narizzano Correlatore Dott. Emanuele Di Rosa (ETT s.r.l.) Candidato Maurizio Pianfetti
  2. 2. DefinizioniTest : Sistema(dati di input) dati di outputTesting: è il processo di valutazione di unsistema attraverso strumenti manuali oautomatici col fine di determinare se ilsistema soddisfa i requisiti specificati oppurese il suo comportamento verificato differisceda quello attesoEsito Test: dati di output uguali ai dati attesi ?
  3. 3. Motivazioni Processo di software testing è essenziale per ridurre i malfunzionamenti Più tempo per la preparazione dei processi di testing Meno tempo e costi per il mantenimento e correzione dei difettiMa costoso dal 40% al 60% del tempo di sviluppoAutomazione della generazione ed esecuzione dei test per la riduzione dei tempi e costi del testing
  4. 4. Test Funzionali (Black-Box) vs Strutturali (White-Box)Test funzionale Test strutturale White Box TestingBlack Box TestingPartition Testing (Input Domain Model) Basandosi sullinterfaccia Basandosi sulle funzionalitàError based Testing Basandosi sugli errori Sono complementari ed ognuno può rilevare malfunzionamenti non rivelabili con l’altro.
  5. 5. ObiettiviAutomazione 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.) 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.
  6. 6. 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 diconfigurazione Nessuno di essi effettua una generazione automatica di dati di input, quindi si è deciso di sviluppare una nuova applicazione.WatiN: «Web Application Testing In .Net» Libreria per sviluppatori C# (.NET 2.0 – 4.0) per lanavigazione e manipolazione delle pagine web Compatibile con tutte le versioni di IE fino alla 9 FF 3.6 Semplice e veloce da imparare
  7. 7. 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
  8. 8. Siti web testati con «Automatic Tester of Web Pages 1.0» Testing del sito COL, esempio di generazione casuale dei dati di inputTesting del sito«ClicLavoro Campania»,esempio di utilizzo dei datidi input su un processo dicompilazione multiform
  9. 9. Microsoft Pex (White-Box)Program EXploration Attraverso Dynamic Simbolic Execution, strategia Fitnex e«Microsoft Z3» SMT Solver, modella il grafo dei controlli return target != (ClassMethod)null && i < 0 && j != 123; Genera le Parameterized Unit Test per raggiungere lamassima copertura del codice testato / metodi testati Utilizza l’instrumentation inserendosi nel ".NET profilingAPI", prima che il linguaggio sia compilato in codicemacchina, per poter riscrive le istruzioni per affrontare ilproblema dellisolamento tramite Microsoft Moles,permettendo di “Molare” o “creare Stub” di metodi esternirichiamati, per rendere indipendente il codice testato
  10. 10. Microsoft Pex (DSE) vs SAT&Pref (CBMC) vs ToolsMicrosoft 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)
  11. 11. Microsoft Pex su Benchmarks Hand-Crafted (White-Box) Strategie di Pex Copertura Risultati delle esecuzioni di Pex effettuate Pex-Default2 99,19% per l’analisi di 2200 metodi, confrontati Pex-Default-VS2010 99,05% con quelli dei singoli strumenti Pex-Default5-VS2010 98,79% sperimentali in termini di n. di test generati, Pex-Default4_MaxSolver10 97,88% durata dell’esecuzione (sec) e copertura del Pex-FrontierBreadthFirst 93,18% Pex-Default3 84,95% codice raggiunta Pex-FrontierRandom 84,36% Metodo Tests Durata Copertura Pex-FrontierDepthFirst 60,10% 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%Pex-FrontierIterativeDeepening 32,07% 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% N. Test Totali Strumento synth_b2_s5_k1_rnd3(TestCFiles, Int32, Int32, Int32, Int32) 10 11,14 100,00% Generati synth_b2_s5_k1_rnd4(TestCFiles, Int32, Int32, Int32, Int32) 9 9,71 100,00% SAT&PREF 262 synth_b2_s5_k1_rnd5(TestCFiles, Int32, Int32, Int32, Int32) 9 9,40 100,00% TeGeVe 300 synth_b2_s5_k1_rnd6(TestCFiles, Int32, Int32, Int32, Int32) 10 11,20 100,00% Pex-Default2 933,27 synth_b2_s5_k1_rnd7(TestCFiles, Int32, Int32, Int32, Int32) 9 11,24 100,00% noPref 945 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% SAGE 2115
  12. 12. Casi reali testati con Microsoft PexStrumenti sperimentali soloper C non utilizzabili in .NET,gli altri ritentuti costosi.Esecuzione di Pex da MSVS2010 e da linea di comandocon applicazione di miglioriesuggerite da Pex su dueprogetti reali
  13. 13. 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 efficientePensando ad una architettura MVC, si sono affrontate le tematiche di come: – Testare il motore dellapplicazione attraverso i test strutturali isolando i dati del modello – Effettuare test funzionali sullinterfaccia
  14. 14. UNIVERSITÀ DEGLI STUDI DI GENOVA SCUOLA POLITECNICACORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA Un rigraziamento a tutti per avermi ascoltato Maurizio Pianfetti maurizio.pianfetti@libero.it http://boymix81.mynickname.info Relatore Accademico Prof. Enrico Giunchiglia Correlatore Prof. Massimo Narizzano Correlatore Dott. Emanuele Di Rosa (ETT s.r.l.)

×