SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
UNIVERSITÀ DEGLI STUDI DI GENOVA
                  SCUOLA POLITECNICA
CORSO 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
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 ?
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 difetti


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

Automazione della generazione ed esecuzione dei test per la
          riduzione dei tempi e costi del testing
Test Funzionali (Black-Box) vs Strutturali (White-Box)
Test funzionale        Test strutturale White Box Testing
Black Box Testing
Partition Testing (Input
  Domain Model)
  Basandosi
  sull'interfaccia
  Basandosi sulle
  funzionalità
Error based Testing
  Basandosi sugli errori
          Sono complementari ed ognuno può rilevare
          malfunzionamenti non rivelabili con l’altro.
Obiettivi
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.)
  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.
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
 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 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
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
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
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 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 tramite Microsoft Moles,
permettendo di “Molare” o “creare Stub” di metodi esterni
richiamati, per rendere indipendente il codice testato
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)
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
Casi reali testati con Microsoft Pex
Strumenti 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
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
UNIVERSITÀ DEGLI STUDI DI GENOVA
                  SCUOLA POLITECNICA
CORSO 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.)

Weitere ähnliche Inhalte

Andere mochten auch

Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićJosip Mihovilovic
 
Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" filippo rossi
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaSergio Taddia
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Mario Valiante
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testingKanoah
 

Andere mochten auch (10)

Vertical Branding nella Moda
Vertical  Branding nella ModaVertical  Branding nella Moda
Vertical Branding nella Moda
 
A.Dionisi Thesis
A.Dionisi ThesisA.Dionisi Thesis
A.Dionisi Thesis
 
Tesi di laurea di Josip Mihovilović
Tesi di laurea di Josip MihovilovićTesi di laurea di Josip Mihovilović
Tesi di laurea di Josip Mihovilović
 
Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere" Mini tesi "lo stile costa crociere"
Mini tesi "lo stile costa crociere"
 
Ringraziamenti
RingraziamentiRingraziamenti
Ringraziamenti
 
Tesi
TesiTesi
Tesi
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio Taddia
 
Tesi peiretti
Tesi peirettiTesi peiretti
Tesi peiretti
 
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
Tesi di laurea triennale: Rilevamento geologico dell'area di Tagliacozzo (AQ)
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testing
 

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

Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Developmentsazilla
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Developmentsazilla
 
Introduzione al Test Driven Development
Introduzione al Test Driven DevelopmentIntroduzione al Test Driven Development
Introduzione al Test Driven DevelopmentEnnio Masi
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele SeroniGiuneco S.r.l
 
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMBenchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMNicola Paoletti
 
Java Unit Testing - Introduction
Java Unit Testing - IntroductionJava Unit Testing - Introduction
Java Unit Testing - Introductionfgianneschi
 
Java Unit Testing - JUnit (1)
Java Unit Testing - JUnit (1)Java Unit Testing - JUnit (1)
Java Unit Testing - JUnit (1)fgianneschi
 
Software Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSoftware Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSergio Santoro
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERDotNetCampus
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerAlessandro Alpi
 
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Bruno Interlandi
 
Un'infrastruttura di test per un sistema PACS
Un'infrastruttura di test per un sistema PACSUn'infrastruttura di test per un sistema PACS
Un'infrastruttura di test per un sistema PACSGiacomo Petronio
 
Fusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessiFusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessisanpi89
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationAlessandro Alpi
 
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Idriss Riouak
 

Ähnlich wie Presentazione della Tesi di Laurea Specialistica : STRUMENTI PER LA GENERAZIONE AUTOMATICA DI TEST STRUTTURALI E FUNZIONALI (20)

Software Testing e TDD
Software Testing e TDDSoftware Testing e TDD
Software Testing e TDD
 
Unit testing 101
Unit testing 101Unit testing 101
Unit testing 101
 
Testing
TestingTesting
Testing
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Development
 
Android Test Driven Development
Android Test Driven DevelopmentAndroid Test Driven Development
Android Test Driven Development
 
Introduzione al Test Driven Development
Introduzione al Test Driven DevelopmentIntroduzione al Test Driven Development
Introduzione al Test Driven Development
 
Unit Test di Gabriele Seroni
Unit Test di Gabriele SeroniUnit Test di Gabriele Seroni
Unit Test di Gabriele Seroni
 
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAMBenchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
Benchmarking - Architettura degli Elaboratori - AA 2010/2011 - UNICAM
 
Java Unit Testing - Introduction
Java Unit Testing - IntroductionJava Unit Testing - Introduction
Java Unit Testing - Introduction
 
Java Unit Testing - JUnit (1)
Java Unit Testing - JUnit (1)Java Unit Testing - JUnit (1)
Java Unit Testing - JUnit (1)
 
Software Testing & Test Driven Development
Software Testing & Test Driven DevelopmentSoftware Testing & Test Driven Development
Software Testing & Test Driven Development
 
CONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVERCONTINUOUS INTEGRATION CON SQL SERVER
CONTINUOUS INTEGRATION CON SQL SERVER
 
DotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql ServerDotNetCampus - Continuous Integration con Sql Server
DotNetCampus - Continuous Integration con Sql Server
 
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...Configurazione automatica di ambienti di testing per reti di calcolatori - te...
Configurazione automatica di ambienti di testing per reti di calcolatori - te...
 
Un'infrastruttura di test per un sistema PACS
Un'infrastruttura di test per un sistema PACSUn'infrastruttura di test per un sistema PACS
Un'infrastruttura di test per un sistema PACS
 
Fusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessiFusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessi
 
PASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous IntegrationPASS Virtual Chapter - SQL Server Continuous Integration
PASS Virtual Chapter - SQL Server Continuous Integration
 
Unit test
Unit testUnit test
Unit test
 
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
Presentazione: uno studio sull'efficacia di checker automatici per la moderni...
 

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

  • 1. UNIVERSITÀ DEGLI STUDI DI GENOVA SCUOLA POLITECNICA CORSO 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. 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 ?
  • 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 difetti Ma costoso dal 40% al 60% del tempo di sviluppo Automazione della generazione ed esecuzione dei test per la riduzione dei tempi e costi del testing
  • 4. Test Funzionali (Black-Box) vs Strutturali (White-Box) Test funzionale Test strutturale White Box Testing Black Box Testing Partition Testing (Input Domain Model) Basandosi sull'interfaccia Basandosi sulle funzionalità Error based Testing Basandosi sugli errori Sono complementari ed ognuno può rilevare malfunzionamenti non rivelabili con l’altro.
  • 5. Obiettivi 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.) 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. 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 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 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
  • 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. 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
  • 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 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 tramite Microsoft Moles, permettendo di “Molare” o “creare Stub” di metodi esterni richiamati, per rendere indipendente il codice testato
  • 10. 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)
  • 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. Casi reali testati con Microsoft Pex Strumenti 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
  • 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 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
  • 14. UNIVERSITÀ DEGLI STUDI DI GENOVA SCUOLA POLITECNICA CORSO 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.)