Makine öğrenmesi algoritmalarına dayalı yazılım hata tahmini:çevresel metriklerin etkisi

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 and91%bytheNaiveBayesalgorithm.Inconclusion,itwasobservedthatenvironmental metrics are indeed effective in software fault prediction and when applied with machine learning algorithms a high rate of success can be achieved.Yazarlık Beyanı ii Abstract iii Öz iv Teşekkür v Şekil Listesi viii Tablo Listesi x Kısaltmalar xi 1 Giriş 1 2 İlgili Çalışmalar 4 3 Yazılım Test 8 3.1 Test Stratejileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 Yazılım Test Türleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3 Test Teknikleri/ Test Metodolojisi . . . . . . . . . . . . . . . . . . . . . . 10 3.4 Yazılım Test Yaşam Döngüsü . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.5 Yazılım Test Trendleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.1 Türkiye . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5.2 Dünya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Makine Öğrenmesi 24 4.1 Ön İşleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.1.1 Etiket Kodlaması (Label Encoding) . . . . . . . . . . . . . . . . . . 25 4.1.2 Ölçekleme (Scaling) . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.1.3 Temel Bileşenler Analizi (PCA) . . . . . . . . . . . . . . . . . . . . 26 4.2 Karar Ağacı (Decision tree) . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3 En Yakın Komşular Algoritması (K Nearest Neighbour) . . . . . . . . . . 29 4.4 Rastgele Ormanlar (Random Forest) . . . . . . . . . . . . . . . . . . . . . 31 4.5 Naive Bayes Algoritması . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5 Uygulama 33 5.1 Verilerin Toplanması . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.1.1 Proje Bilgileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.2 Analiz Bilgileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.3 Yazılım Bilgileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.1.4 Test Bilgileri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.2 Verilerin İstatistikleri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.3 Uygulama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.1 Ön İşleme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.3.2 Algoritma Uygulamaları . . . . . . . . . . . . . . . . . . . . . . . . 66 5.3.2.1 Karar Ağacı Uygulaması . . . . . . . . . . . . . . . . . . 66 5.3.2.2 En Yakın Komşular Algoritması Uygulaması . . . . . . . 69 5.3.2.3 Rastgele Ormanlar Uygulaması . . . . . . . . . . . . . . . 71 5.3.2.4 Naive Bayes Uygulaması . . . . . . . . . . . . . . . . . . 73 6 Sonuç 75 Kaynakça 7

    Similar works