Facolt di Ingegneria Corso di Studi in Ingegneria

  • Slides: 10
Download presentation
Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Tesi di laurea Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Anno Accademico 2006/2007 relatore Ch. mo prof. Domenico Cotroneo correlatore Ing. Roberto Pietrantuono candidato Mario Tranchese Matr. 534/2073

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Contesto Testing e debug di piattaforme software long-running Workload driven stress testing Identificazione dei fault tramite analisi dei log prodotti Nel caso in cui si hanno workloads di grosse dimensioni, un’analisi manuale dei file di log è dispendiosa e complessa

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Obiettivi Migliorare l’efficienza delle fasi di testing e debugging per piattaforme long-running, utilizzando congiuntamente: ü Workload di stress ü Motori inferenziali

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali La Tecnica Sottoporre il sistema a workloads di stress, monitorandone l’esecuzione. Utilizzare i log risultanti dalla fase precedente per derivare un modello rappresentativo del comportamento corretto. Confrontare i log corrispondenti ad esecuzioni terminate con insuccesso, con il modello di riferimento corretto Identificazione di sequenze di eventi anomali

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Un caso di studio : la Java Virtual Machine (JVM) Strumenti necessari per l’applicazione della tecnica: ü Strumenti per il monitoraggio : JVMMon ü Strumenti per l’analisi dinamica : BCT, ADABU ü Altri strumenti analizzati Ø DAIKON Ø FUJABA TOOL SUITE Ø ARGO Ø DISCOTECT

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali JVMMon Tool per il monitoraggio della JVM i cui componenti sono: 1. Monitoring Agent 2. Local Monitor Daemon 3. Data Collector

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali BCT (Behavior Capture and Test) Instrumentazione ed esecuzione dell'applicazione Derivazione invarianti ü Invarianti di I/O DAIKON ü Invarianti di interazione KBehavior Object Flattening ü Mutators ü Inspectors

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Sperimentazione Preparazione dell’ambiente Selezione e classificazione di bachi prelevati dal SUN Bug Database ü Bug di memoria e di concorrenza Monitoraggio e logging ü Monitoring della JVM tramite JVMMon ü Data Collecting ü Derivazione dei modelli comportamentali

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Risultati Analisi dei risultati § § 5 bachi di memoria su 8 e 2 bachi di concorrenza su 8 sono stati identificati immediatamente grazie alle informazioni sulle violazioni raccolte. Utilizzando ADABU su applicazioni JAVA ed iniettando dei faults, invece, le violazioni rilevate non hanno dato informazioni utili alla fase di debug BCT 1. 2. 3. Pro Open-source Crea FSA Adatto a ritrovare problemi di memoria Contro Tempi di pre-processing lunghi Formattazione input (presenza metodi SET e GET) Complesso ADABU 1. 2. 3. Pro Tempi di pre-processing brevi Semplice Crea FSA Contro Formattazione input (presenza metodi SET e GET) Non Open-source Risultati insoddisfacenti

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM

Facoltà di Ingegneria Corso di Studi in Ingegneria Informatica Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali Conclusioni 1. E’ stata sperimentata una tecnica per migliorare l’efficienza di testing e debugging per piattaforme long-running 2. La tecnica è stata sperimentata sulla JVM 3. Nel 50% dei casi circa è stato possibile risalire immediatamente alle root causes, facilitando il debug Sviluppi futuri Migliorare : ü precisione di analisi (falsi positivi) ü selezione dei workloads ü studio di altri tools di analisi dinamica e di monitoring