Software defect prediction using machine learning on test and source code metrics
2014 (English)Student thesis
Context. Software testing is the process of finding faults in software while executing it. The results of the testing are used to find and correct faults. Software defect prediction estimates where faults are likely to occur in source code. The results from the defect prediction can be used to opti- mize testing and ultimately improve software quality. Machine learning, that concerns computer programs learning from data, is used to build pre- diction models which then can be used to classify data. Objectives. In this study we, in collaboration with Ericsson, investigated whether software metrics from source code files combined with metrics from their respective tests predicts faults with better prediction perfor- mance compared to using only metrics from the source code files. Methods. A literature review was conducted to identify inputs for an ex- periment. The experiment was applied on one repository from Ericsson to identify the best performing set of metrics. Results. The prediction performance results of three metric sets are pre- sented and compared with each other. Wilcoxon’s signed rank tests are performed on four different performance measures for each metric set and each machine learning algorithm to demonstrate significant differences of the results. Conclusions. We conclude that metrics from tests can be used to predict faults. However, the combination of source code metrics and test metrics do not outperform using only source code metrics. Moreover, we conclude that models built with metrics from the test metric set with minimal infor- mation of the source code can in fact predict faults in the source code.
Place, publisher, year, edition, pages
2014. , 60 p.
Software defect prediction, Software testing, Machine learning
Computer Science Software Engineering
IdentifiersURN: urn:nbn:se:bth-4162Local ID: oai:bth.se:arkivex19A81C1A97072B59C1257D08004BDC2COAI: oai:DiVA.org:bth-4162DiVA: diva2:831487
PAACI Master of Science in Game and Software Engineering