Post on 15-Feb-2017
transcript
Predizione del Bug-Fix Time con l'algoritmo Random Forest
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Università degli Studi di Bari Aldo MoroDipartimento di Informatica
Corso di Studi in Informatica e Comunicazione Digitale
RelatoriProf. Pasquale ArdimentoProf. Massimo Bilancia Candidato
Marco Catapano
Anno Accademico 2014 - 15
2
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Sommario
● Difetto Software e Bug Tracking System
● Raccolta dati e da Bugzilla
● Memorizzazione su base dati NoSQL
● Classificazione e Predizione
● Addestramento del Random Forest
● Analisi dei Risultati ottenuti
3
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Obiettivo
● Utilizzare l'algoritmo di classificazione “Random
Forest” per la predizione del tempo di risoluzione di
un difetto software.
● Migliorare il processo di assegnazione e gestione delle
risorse durante l'attività di fixing.
4
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Difetto Software
1947, Primo “bug reale” estratto da un componente hardware della macchina Harvard Mark II dell'Università di Harvard
● Un difetto è una sequenza di istruzioni, sorgenti o eseguibili, che, quando eseguita con particolari dati in input, genera un malfunzionamento.
5
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Defect Tracking System:Bugzilla [1]
Un sistema di tracciamento dei difetti di un software o di una sua componente è un software stesso che effettua diverse operazioni utili ai fini della manutenzione.
Perché Bugzilla?● Utilizzato da noti progetti Open-
Source● Personalizzabile● Dati sui difetti sono pubblici
6
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Ciclo di vita di undifetto software
Attività svolta Stato del bug
Un tester identifica il bug e lo riporta. Aperto
L'assegnatario autorizza il bug. Aperto
Il team recensisce il difetto. Aperto
Il difetto può essere autorizzato o non autorizzato dal team di sviluppo.
Aperto o Rifiutato
I bugs autorizzati saranno risolti oppure rinviati dal team di sviluppo.
Riparato o Rinviato
I bugs risolti saranno testati nuovamente dal “testing team” e chiusi oppure riaperti se il difetto persiste.
Chiuso o Riaperto
7
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Raccolta dei dati da Bugzilla
Formati di scambio dati utilizzati:
● CSV (comma-separated values)
● XML (eXtensible Markup Language)● Pagine HTML (Web Scraping)
8
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Conversione inJSON
XML è un linguaggio di markup mentre JSON è un formato di interscambio di dati
9
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Progetti analizzati
Progetto Periodo di riferimento Numero di bugs
Libreoffice 20/10/2010 al 24/11/2015 604
Eclipse 13/11/2001 al 23/11/2015 1334
● Libreoffice → utenti comuni
● Eclipse → utenti più esperti
10
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Dati prelevati
● ID del bug● Data e ora di apertura● Data e ora di risoluzione → Giorni di risoluzione● Priorità al momento dell'apertura● Severità al momento dell'apertura● Commenti
11
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Discretizzazionedei giorni di risoluzione
[0 - 33] %FAST
[34 - 66] %NORMAL
[67 - 100] %SLOW
da 0 a 6Giorni
da 7 a 60 Giorni
da 61 giorni a 4,5Anni
[0 - 75] %FAST
[76 - 100] %SLOW
da 0 a 70Giorni
da 71 giorni a 4,5Anni
12
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Memorizzazione su DBdi tipo NoSQL [2]
● Archiviazione● Recupero ● Modellazione
delle informazioni è
differente rispetto ai
database relazionali.
13
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Memorizzazione suMongoDB
Tipo Document Oriented
Documenti sono oggetti JSON
Evitata la progettazione ad hoc di una base dati di
tipo tradizionale.
14
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Elaborazione in R [3]
● Linguaggio di programmazione basato sul C per manipolare e analizzare i dati.
● Usato in ambito del Machine Learning. ● Vasto reparto di librerie già integrate.
15
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Estrazione delle features:Text-Mining
Obiettivo● Estrazione di
informazione (features)
contenuta in un insieme
di documenti.
Scambio di informazioni tra gli sviluppatori
16
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Matrice termini-documenti
● La matrice termini-documenti è una matrice matematica che descrive la frequenza dei termini che occorrono in una collezione di documenti.
● Le righe corrispondono ai documenti, mentre le colonne corrispondono ai termini.
17
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Classificazione e Predizione:Input
● Un insieme di esempi (istanze)
● che descrivono un concetto (la classe)
● sulla base di attributi(detti anche features)
18
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Classificazione e Predizione:Input
● Un insieme di esempi (istanze)
● che descrivono un concetto (la classe)
● sulla base di attributi(detti anche features)
19
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Classificazione e Predizione:Input
● Un insieme di esempi (istanze)
● che descrivono un concetto (la classe)
● sulla base di attributi(detti anche features)
20
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Classificazione e Predizione:Modelli
● A partire dagli esempi viene costruito un modello in grado di
descrivere il valore della classe in base a quello degli attributi
21
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Modelli di Classificazione:Alberi di Decisione
● Radice● Nodo interno → variabile (termine)● Ramo → un possibile valore (in base alla
frequenza del termine)● Foglia → valore della classe predetta (fast,
slow
22
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Costruzione di alberi di decisioneRandom Forest [4]
● Basato sul boosting: il risultato non è un singolo albero ma una foresta
di alberi in successione, in cui ogni albero è costruito tenendo conto
degli errori di previsione commessi dai precedenti.
● Ogni nodo è deciso sulla base di un diverso sottoinsieme dei predittori,
scelti casualmente.
● Dopo che è stato generato un gran numero di alberi, per ciascun vettore
di input, viene selezionata la classe più popolare.
● Dà sia una stima dell'errore che dell'importanza delle variabili
23
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Random Forest:Accuratezza del modello
Come misurare la bontà di un modello:● Metodo “holdout”
● valutare l’accuratezza del modello sul test-set.● Accuratezza
● Percentuale di esempi la cui classe predetta coincide con la classe
reale● Test-Set
● insieme di esempi indipendenti dal training set.● di ciascun esempio si conoscono gli attributi e la classe reale● dato un insieme di esempi lo si divide (casualmente) in una
percentuale per il training ed una per il test set.
24
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Risultati Sperimentali
Eclipse LibreOffice
Accuratezza Accuratezza
Tre etichette
24% 26%
Due etichette
85% 76%
25
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Minacce alla validitàdel modello
● Valido solo con specifici progetti open-source.
● NON valido in ambito aziendale.
26
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Conclusioni
● I risultati del modello sono in linea con quelli della
letteratura esistente, ma poco utili allo stato pratico.● Raggiungimento di una migliore accuratezza con l'utilizzo di
due classi etichettate.
● Gli sviluppatori possono avere solo una stima futura sul
tempo di risoluzione di un difetto.
27
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Lavori Futuri
● Miglioramento dello script di acquisizione per poter
funzionare su altri progetti software che utilizzano Bugzilla. ● L'elaborazione dei dati potrebbe essere realizzata anche in
real-time predisponendo l'installazione dell'ambiente R sul
server remoto. Ciò può essere realizzato mediante RStudio
Server e la libreria Shiny, diponibile su
http://shiny.rstudio.com.
28
Grazie per l'attenzione
Marco CatapanoLaurea in Informatica e Comunicazione Digitale
16/12/2015Università degli Studi di Bari 'Aldo Moro'
Dipartimento di InformaticaUniversità degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
29
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Bibliografia
(1) Bugzilla, http://www.bugzilla.org(2) Eric A. Brewer, Towards robust distributed systems.
(Invited Talk) Principles of Distributed Computing, 2000(3) The R Project for Statistical Computing,
http://www.r-project.org(4) L. Breiman, Random Forests. Machine Learning, 2001(5) Lionel Marks, Ying Zou, Ahmed E. Hassan - Studying
the Fix-Time for Bugs in Large Open Source Projects, 2011