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

Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Embed Size (px)

Citation preview

Page 1: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Tesi di laurea

relatore

Ch.mo prof. Domenico Cotroneo

correlatore

Ing. Roberto Pietrantuono

candidato

Mario Tranchese

Matr. 534/2073

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenzialiAnno Accademico 2006/2007

Page 2: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Testing e debug di piattaforme software Testing e debug di piattaforme software long-runninglong-running

Workload driven stress testing Workload driven stress testing

Identificazione dei fault tramite analisi dei log prodottiIdentificazione dei fault tramite analisi dei log prodotti

ContestoContesto

Nel caso in cui si hanno workloads di grosse dimensioni, Nel caso in cui si hanno workloads di grosse dimensioni, un’analisi manuale dei file di log è dispendiosa e complessaun’analisi manuale dei file di log è dispendiosa e complessa

Page 3: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

ObiettiviObiettivi

Migliorare l’efficienza delle fasi di testing e Migliorare l’efficienza delle fasi di testing e debugging per piattaforme long-running, debugging per piattaforme long-running, utilizzando congiuntamente:utilizzando congiuntamente:

Workload di stressWorkload di stress

Motori inferenzialiMotori inferenziali

Page 4: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Sottoporre il sistema a Sottoporre il sistema a workloads workloads di stress, monitorandone di stress, monitorandone l’esecuzione.l’esecuzione.

Utilizzare i log risultanti dalla fase Utilizzare i log risultanti dalla fase precedente per derivare un precedente per derivare un modello rappresentativo del modello rappresentativo del comportamento corretto.comportamento corretto.

Confrontare i log corrispondenti Confrontare i log corrispondenti ad esecuzioni terminate con ad esecuzioni terminate con insuccesso, con il modello di insuccesso, con il modello di riferimento correttoriferimento corretto

Identificazione di sequenze Identificazione di sequenze di eventi anomalidi eventi anomali

La TecnicaLa Tecnica

Page 5: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Strumenti necessari per l’applicazione della tecnica:Strumenti necessari per l’applicazione della tecnica:

Strumenti per il monitoraggio : Strumenti per il monitoraggio : JVMMonJVMMon Strumenti per l’analisi dinamica : Strumenti per l’analisi dinamica : BCTBCT, , ADABUADABU

Altri strumenti analizzatiAltri strumenti analizzati

DAIKONDAIKON FUJABA TOOL SUITEFUJABA TOOL SUITE ARGOARGO DISCOTECTDISCOTECT

Un caso di studio : la Java Virtual Machine (JVM)Un caso di studio : la Java Virtual Machine (JVM)

Page 6: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Tool per il monitoraggio della Tool per il monitoraggio della JVM i cui componenti sono:JVM i cui componenti sono:

1.1. Monitoring AgentMonitoring Agent

2. 2. Local Monitor DaemonLocal Monitor Daemon

3. 3. Data CollectorData Collector

JVMJVMMonMon

Page 7: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Instrumentazione ed esecuzione Instrumentazione ed esecuzione dell'applicazionedell'applicazione

Derivazione invariantiDerivazione invarianti

Invarianti di I/O DAIKONInvarianti di I/O DAIKON Invarianti di interazione KBehaviorInvarianti di interazione KBehavior

Object FlatteningObject Flattening

MutatorsMutators InspectorsInspectors

BCT (Behavior Capture and Test)BCT (Behavior Capture and Test)

Page 8: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Preparazione dell’ambientePreparazione dell’ambiente

Selezione e classificazione di bachiSelezione e classificazione di bachi

prelevati dal prelevati dal SUN Bug DatabaseSUN Bug Database

Bug di memoria e di concorrenzaBug di memoria e di concorrenza

Monitoraggio e loggingMonitoraggio e logging

Monitoring Monitoring della JVM tramite JVMMondella JVM tramite JVMMon Data CollectingData Collecting Derivazione dei modelli comportamentaliDerivazione dei modelli comportamentali

SperimentazioneSperimentazione

Page 9: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Analisi dei risultatiAnalisi dei risultati 5 bachi di memoria su 8 e 2 bachi di concorrenza su 8 sono stati 5 bachi di memoria su 8 e 2 bachi di concorrenza su 8 sono stati

identificati immediatamente grazie alle informazioni sulle violazioni identificati immediatamente grazie alle informazioni sulle violazioni raccolte.raccolte.

Utilizzando ADABU su applicazioni JAVA ed iniettando dei Utilizzando ADABU su applicazioni JAVA ed iniettando dei faultsfaults, invece, , invece, le violazioni rilevate non hanno dato informazioni utili alla fase di debugle violazioni rilevate non hanno dato informazioni utili alla fase di debug

RisultatiRisultati

BCTBCTProPro

1.1. Open-sourceOpen-source2.2. Crea FSACrea FSA3.3. Adatto a ritrovare problemi di memoriaAdatto a ritrovare problemi di memoria

ControContro1.1. Tempi di pre-processing lunghiTempi di pre-processing lunghi2.2. Formattazione input (presenza metodi Formattazione input (presenza metodi

SET e GET)SET e GET)3.3. ComplessoComplesso

ADABUADABUProPro

1.1. Tempi di pre-processing breviTempi di pre-processing brevi

2.2. SempliceSemplice

3.3. Crea FSACrea FSA

ControContro

1.1. Formattazione input (presenza metodi Formattazione input (presenza metodi SET e GET)SET e GET)

2.2. Non Open-sourceNon Open-source

3.3. Risultati insoddisfacentiRisultati insoddisfacenti

Page 10: Esperimenti di testing della JVM basati sullutilizzo di workload di stress e di motori inferenziali Facoltà di Ingegneria Corso di Studi in Ingegneria

Esperimenti di testing della JVM basati sull’utilizzo di workload di stress e di motori inferenziali

Facoltà di IngegneriaCorso di Studi in Ingegneria Informatica

Sviluppi futuriSviluppi futuriMigliorare :Migliorare :

precisione di analisi (falsi positivi)precisione di analisi (falsi positivi) selezione dei selezione dei workloadsworkloads studio di altri tools di analisi dinamica e di monitoringstudio di altri tools di analisi dinamica e di monitoring

ConclusioniConclusioni

1.1. E’ stata sperimentata una tecnica per migliorare l’efficienza di testing e E’ stata sperimentata una tecnica per migliorare l’efficienza di testing e debugging per piattaforme long-runningdebugging per piattaforme long-running

2.2. La tecnica è stata sperimentata sulla JVMLa tecnica è stata sperimentata sulla JVM3.3. Nel 50% dei casi circa è stato possibile risalire immediatamente alle root Nel 50% dei casi circa è stato possibile risalire immediatamente alle root

causes, facilitando il debugcauses, facilitando il debug