Predizione del Bug-Fix Time con l'algoritmo Random Forest

29
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

Transcript of Predizione del Bug-Fix Time con l'algoritmo Random Forest

Page 1: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 2: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 3: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 4: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 5: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 6: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 7: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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)

Page 8: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 9: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 10: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 11: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 12: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 13: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 14: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 15: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 16: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 17: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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)

Page 18: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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)

Page 19: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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)

Page 20: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 21: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 22: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 23: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 24: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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%

Page 25: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 26: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 27: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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.

Page 28: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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

Page 29: Predizione del Bug-Fix Time con l'algoritmo Random Forest

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