Makine öğrenmesi algoritmalarına dayalı yazılım hata tahmini: Çevresel metriklerin etkisi
Software fault prediction based on machine learning algorithms: The effect of environmental metrics
Yazar: MERVE ODABAŞI
Danışman: PROF. DR. ENSAR GÜL
İstanbul Şehir Üniversitesi / Fen Bilimleri Enstitüsü / Bilgi Güvenliği Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Hata tahmini = Error estimation ; Makine öğrenmesi = Machine learning ; Yazılım güvenilirliği = Software reliability ; Yazılım metrikleri = Software metrics ; Yazılım testi = Software test

Özet:
Bu çalışmada 2012-2019 yılları arasında makine öğrenmesi algoritmaları ile yazılım hata tahminleme konusunda,  akademik ve sektörel alanda yapılan çalışmalar incelenmiştir. Yapılan inceleme sonucunda akademik alanda, yazılım test alanında makine öğrenmesi çalışmalarının trend olduğu görülmüştür. Word Quality Report'ta  kaliteli verinin olmamasından dolayı sektörde makine öğrenmesi çalışmalarının kullanımının az olduğu belirtilmiştir. İlgili çalışmalarda, tahminlemeler esnasında sadece yazılımsal metriklerin kullanıldığı görülmüştür. Bu çalışmada ise, Yazılımsal metriklerin yanında, çevresel metriklerin de sonuç üzerinde etkili olup olmadığı, çevresel metriklerin kullanılarak makine öğrenmesi algoritmaları ile başarılı sonuç tahminleme yapılıp yapılamayacağı, hangi çevresel etkenlerin sonuç üzerinde ne kadar etkili olduğu araştırılmıştır. Çalışma için veri seti, 4 analist, 8 yazılım mühendisi ve 5 test uzmanından oluşan bir ekibinin yapmış olduğu 10 adet projenin çıktıları ile oluşturulmuştur. 36 adet metrik ile 6676 adet test durumu değerlendirilmiştir. Hatayı sadece hata olarak kabul etmenin yanında, hatanın önem derecesi ve test edilemeyecek olan senaryolarda hesaba katılmıştır. Toplamda dokuz adet sonuç tahminlemesi modelde kullanılmıştır. Ön işleme aşamasında PCA analizi yapılmış, 36 adet metrik içerisinden 12 adedinin sonuca etkili olduğu görülmüştür. Dört farklı algoritma ile modeller oluşturulup; karar ağacı algoritmasında 89\%, en yakın komşular algoritmasında 87\%, rastgele ormanlar algoritmasında 88\% ve naive bayes algoritmasında 91\% başarı elde edilmiştir. Sonuç olarak çevresel metriklerin de yazılım test sonucu tahminlemesinde etikili olduğu ve makine öğrenmesi algoritmaları ile kullanıldığında, yüksek oranda başarılı sonuç tahminlemesi yapılabileceği görülmüştür.

Abstract:
According to the Word Quality report, the use of machine learning studies in the industrial field is rare due to the severe lack of quality data. Software metrics are generally utilized during software fault  prediction in this field. In this study, besides the software metrics, the environmental metrics are also explored to see whether they also affect the results of machine learning and if they could, what would be the success rates and which environmental metrics are more effective on the results. The data set for this study was generated from combining various data from 10 projects that were produced a team of 4 analysts, 8 software engineers, and 5 test experts. 36 metrics and 6676 test cases in total were evaluated.  The errors occurred in the test cases are not just considered as an error, their priority and cases that can not be tested are also taken into consideration. 9 fault level are  employed in models. During the pre-processing phase, the PCA analysis is conducted, out of 36 metrics 12 are effective to the results. Models are created with four different algorithms which have achieved a success rate of; 89\% by the decision tree algorithm, 87\% by the nearest neighbors algorithm, 88\% by the random forests algorithm and 91\% by the Naive Bayes algorithm. In conclusion, it was observed that environmental metrics are indeed effective in  software fault prediction and when applied with machine learning algorithms a high rate of success can be achieved.