Predicting and estimate the bug-fix time is useful to communities that have a large number of products and components because it allow developers to manage their work better. Random Forest is a widely used machine learning method that shows competitive prediction performance in various fields. In this study, we apply it to predict if a bug fix time is fast or slow.
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Predizione del Bug-Fix Time con l'algoritmo Random Forest
1. 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 Moro
Dipartimento di Informatica
Corso di Studi in Informatica e Comunicazione Digitale
Relatori
Prof. Pasquale Ardimento
Prof. Massimo Bilancia Candidato
Marco Catapano
Anno Accademico 2014 - 15
2. 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. 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. 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. 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. 6
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Ciclo di vita di un
difetto 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. 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. 8
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Conversione in
JSON
XML è un linguaggio di markup mentre JSON è un formato di interscambio di dati
9. 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. 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. 11
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Discretizzazione
dei giorni di risoluzione
[0 - 33] %
FAST
[34 - 66] %
NORMAL
[67 - 100] %
SLOW
da 0 a 6
Giorni
da 7 a 60
Giorni
da 61 giorni a 4,5
Anni
[0 - 75] %
FAST
[76 - 100] %
SLOW
da 0 a 70
Giorni
da 71 giorni a 4,5
Anni
12. 12
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Memorizzazione su DB
di tipo NoSQL [2]
● Archiviazione
● Recupero
● Modellazione
delle informazioni è
differente rispetto ai
database relazionali.
13. 13
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Memorizzazione su
MongoDB
Tipo Document Oriented
Documenti sono oggetti JSON
Evitata la progettazione ad hoc di una base dati di
tipo tradizionale.
14. 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. 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. 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. 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. 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. 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. 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. 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. 22
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
Costruzione di alberi di decisione
Random 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. 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. 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. 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. 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. 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. 28
Grazie per l'attenzione
Marco Catapano
Laurea in Informatica e Comunicazione Digitale
16/12/2015
Università degli Studi di Bari 'Aldo Moro'
Dipartimento di Informatica
Università degli Studi di Bari • Dipartimento di Informatica • Informatica e comunicazione digitale
29. 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