Using a deep learning tool for software defect prediction in new application development
Syyrilä, Elias (2023)
Kandidaatintyö
Syyrilä, Elias
2023
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe20230824104233
https://urn.fi/URN:NBN:fi-fe20230824104233
Tiivistelmä
This research examines the barrier to entry and value of using a line-level, deep learning based software defect prediction tool as part of new application development. It also aims to increase its value by providing a novel prototype IDE plugin that builds on top of the existing model by visualizing the model’s predictions in code. As part of the objective to examine the value of the tool, the potential of combining multiple source projects into a single training set to improve the performance of the model is tested. The model was found to perform better in line-level defect prediction in at least one case where two labeled software projects were used as combined training data, when compared to the models trained on the projects individually and also to the mean of all single-project-trained models. It was concluded that the tool in its entirety can be adopted with relatively little effort, and the value that it generates in the code review task can pay off the initial investment based on the used metrics. Additionally, finding a sufficiently optimal dataset combination becomes more valuable the larger the target codebase. Tämä tutkimus tarkastelee rivitasolla ohjelmistovikoja ennustavan syväoppimismallin käyttöönoton kynnystä ja sen hyötyä uuden ohjelmiston kehityksessä. Tutkimus pyrkii myös lisäämään menetelmään hyötyä kehittämällä prototyyppilisäosan ohjelmointiympäristöön, joka visualisoi mallin ennustuksia koodin yhteydessä. Osana työkalun hyödyn tarkastelua, usean lähdeprojektin yhdistäminen mallin koulutusdataksi suorituskyvyn parantamiseksi tutkitaan. Testin tuloksena mallin suorituskyky rivitason ennustamisessa parani vähintään yhdessä tapauksessa, jossa kaksi lähdeprojektia yhdistettiin koulutusdataksi, verraten malleihin, jotka koulutettiin erikseen kyseisillä projekteilla, sekä yksittäisten projektien mallien keskiarvoon. Lopputuloksena, työkalun pystyi kokonaisuudessaan suhteellisen pienellä työllä ottaa käyttöön, ja mittareiden perusteella sen tuottama arvo oli suurempi kuin käyttöönoton vaatima työ. Lisäksi havaittiin, että riittävän optimaalisen projektiyhdistelmän löytämisen tuottama hyöty kasvaisi maaliprojektin koodimäärä kasvun myötä.
