Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data

Some of the challenges faced with Just-in-time defect (JIT) prediction are achieving high performing models and obtaining large quantities of labelled data. There is also a limited number of studies that actually test the effectiveness of software defect prediction models in practice. In this thesis...

Full description

Bibliographic Details
Main Author: Syed, Arsalan
Format: Others
Language:English
Published: KTH, Skolan för elektroteknik och datavetenskap (EECS) 2019
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-254955
id ndltd-UPSALLA1-oai-DiVA.org-kth-254955
record_format oai_dc
spelling ndltd-UPSALLA1-oai-DiVA.org-kth-2549552019-07-11T04:36:09ZInvestigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit DataengSyed, ArsalanKTH, Skolan för elektroteknik och datavetenskap (EECS)2019Computer and Information SciencesData- och informationsvetenskapSome of the challenges faced with Just-in-time defect (JIT) prediction are achieving high performing models and obtaining large quantities of labelled data. There is also a limited number of studies that actually test the effectiveness of software defect prediction models in practice. In this thesis, the performance of five notable classification algorithms is investigated when applied to Just-in-time defect prediction. The utility of semi-supervised techniques such as the self-training algorithm is also explored. In order to test the viability of JIT defect prediction models in practice, a case study was set up at King, a game development company. Finally, to have a better understanding of how software developers at King identify and resolve bugs, a series of interviews were conducted. The investigation found that ensemble learning models such as XGBoost can outperform deep learning approaches such as Deeper. The self-training algorithm can be used to train on labelled and unlabelled data and still achieve similar performance to purely supervised approaches. The case study found that although a JIT defect prediction model based on random forests could achieve better performance than a random model, there is still a large discrepancy between the cross validation performance and the performance in practice. Finally, the interviews found that developers rely on inspecting builds, manual debugging and version control tools to identify bugs. Additionally, the interviews found that risky code tends to have high dependency on other code, is difficult to comprehend and does not follow proper coding practices. Några utmaningar med Just-in-time defect prediction är att uppnå modeller med hög förmåga att identifiera riskabla commits och att ta fram stora kvantiteter av etiketterad data. Ytterligare en utmaning är att det finns ett begränsat antal studier som testar effektiviteten av modeller för programvarufel i praktiken. I detta examensarbete undersöks resultatet av fem olika klassificeringsalgoritmer som tillämpas på Just-in-time (JIT) defect prediction. Även användningen av halvövervakade metoder så som self-training-algoritmen utforskas. För att testa lönsamheten av JITmodeller i praktiken har en fallstudie genomförts hos King, ett spelutvecklingsföretag. För att få en bättre förståelse för hur programmerare hos King identifierar och löser buggar genomfördes flera intervjuer. Undersökningen visade att ensemble learning-modeller som XGBoost kan ge bättre resultat än deep learning-metoder som Deeper. Self-training-algoritmen kan används för att träna på etiketterad och oetiketterad data och kan fortfarande uppnå liknande resultat som supervised learning-metoder. Fallstudien visar att även om en JIT-modell baserad på Random Forest skulle kunna uppnå bättre prestanda än en slumpmässig modell, finns det fortfarande en stor skillnad mellan förmågan som visas från korsvalidering än det som visas i praktiken. Det framkom från intervjuerna att programmerare i nuläget förlitar sig på inspektioner, manuella felsökningar och verktyg för versionshantering för att identifiera fel. Slutligen framkom det att riskabel kod ofta har många beroenden av annan kod, är svår att förstå och samt ofta inte följer riktiga kodningsförfaranden. Student thesisinfo:eu-repo/semantics/bachelorThesistexthttp://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-254955TRITA-EECS-EX ; 2019:433application/pdfinfo:eu-repo/semantics/openAccess
collection NDLTD
language English
format Others
sources NDLTD
topic Computer and Information Sciences
Data- och informationsvetenskap
spellingShingle Computer and Information Sciences
Data- och informationsvetenskap
Syed, Arsalan
Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
description Some of the challenges faced with Just-in-time defect (JIT) prediction are achieving high performing models and obtaining large quantities of labelled data. There is also a limited number of studies that actually test the effectiveness of software defect prediction models in practice. In this thesis, the performance of five notable classification algorithms is investigated when applied to Just-in-time defect prediction. The utility of semi-supervised techniques such as the self-training algorithm is also explored. In order to test the viability of JIT defect prediction models in practice, a case study was set up at King, a game development company. Finally, to have a better understanding of how software developers at King identify and resolve bugs, a series of interviews were conducted. The investigation found that ensemble learning models such as XGBoost can outperform deep learning approaches such as Deeper. The self-training algorithm can be used to train on labelled and unlabelled data and still achieve similar performance to purely supervised approaches. The case study found that although a JIT defect prediction model based on random forests could achieve better performance than a random model, there is still a large discrepancy between the cross validation performance and the performance in practice. Finally, the interviews found that developers rely on inspecting builds, manual debugging and version control tools to identify bugs. Additionally, the interviews found that risky code tends to have high dependency on other code, is difficult to comprehend and does not follow proper coding practices. === Några utmaningar med Just-in-time defect prediction är att uppnå modeller med hög förmåga att identifiera riskabla commits och att ta fram stora kvantiteter av etiketterad data. Ytterligare en utmaning är att det finns ett begränsat antal studier som testar effektiviteten av modeller för programvarufel i praktiken. I detta examensarbete undersöks resultatet av fem olika klassificeringsalgoritmer som tillämpas på Just-in-time (JIT) defect prediction. Även användningen av halvövervakade metoder så som self-training-algoritmen utforskas. För att testa lönsamheten av JITmodeller i praktiken har en fallstudie genomförts hos King, ett spelutvecklingsföretag. För att få en bättre förståelse för hur programmerare hos King identifierar och löser buggar genomfördes flera intervjuer. Undersökningen visade att ensemble learning-modeller som XGBoost kan ge bättre resultat än deep learning-metoder som Deeper. Self-training-algoritmen kan används för att träna på etiketterad och oetiketterad data och kan fortfarande uppnå liknande resultat som supervised learning-metoder. Fallstudien visar att även om en JIT-modell baserad på Random Forest skulle kunna uppnå bättre prestanda än en slumpmässig modell, finns det fortfarande en stor skillnad mellan förmågan som visas från korsvalidering än det som visas i praktiken. Det framkom från intervjuerna att programmerare i nuläget förlitar sig på inspektioner, manuella felsökningar och verktyg för versionshantering för att identifiera fel. Slutligen framkom det att riskabel kod ofta har många beroenden av annan kod, är svår att förstå och samt ofta inte följer riktiga kodningsförfaranden.
author Syed, Arsalan
author_facet Syed, Arsalan
author_sort Syed, Arsalan
title Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
title_short Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
title_full Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
title_fullStr Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
title_full_unstemmed Investigating the Practicality of Just-in-time Defect Prediction with Semi-supervised Learning on Industrial Commit Data
title_sort investigating the practicality of just-in-time defect prediction with semi-supervised learning on industrial commit data
publisher KTH, Skolan för elektroteknik och datavetenskap (EECS)
publishDate 2019
url http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-254955
work_keys_str_mv AT syedarsalan investigatingthepracticalityofjustintimedefectpredictionwithsemisupervisedlearningonindustrialcommitdata
_version_ 1719223151608463360