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...
Main Author: | |
---|---|
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 |