Yapay zeka ve makine öğrenmesi yöntemleri ile yazılım kalite tahmini
Software quality prediction with artificial intelligence and machine learning methods
Yazar: MAHMUT BURAK YAZICI
Danışman: PROF. DR. ASIM EGEMEN YILMAZ
Ankara Üniversitesi / Fen Bilimleri Enstitüsü / Elektrik-Elektronik Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Yazılım kalitesi, yazılım geliştirme yaşam döngüsünde yer alan her türlü geliştirme ve
doğrulama faaliyetleri ile doğrudan bağlantılıdır. Yazılım ürününün kalitesi, farklı
otoriteler tarafından farklı kriter ve değerlendirmelere tabi tutularak belirlenir. Kalitesiz
yazılımlar şirketlerin itibarını kaybetmesine, müşterilerinin güvenini yitirmesine hatta
can ve mal kayıplarına dahi sebep olabilmektedir. Bu olumsuz etkilerin önüne
geçebilmek adına yazılım test faaliyetleri büyük önem kazanmakta ve yazılım
kalitesinin belirlenmesinde kilit rol oynamaktadır. Bu tez çalışmasında yazılım
projelerinin test süreçleri ve sonuçları hakkındaki bilgilerden faydalanılarak yazılım
kalitesinin doğru bir şekilde tahmin edilerek sınıflandırılması amaçlanmıştır. Bu
kapsamda büyük ölçekli bir yazılım şirketine ait projelerin test süreçlerine ait veriler
kullanılmıştır. Bu veri setinde yazılım kalitesi yüksek, orta ve düşük olarak
etiketlenmiştir. Kalite sınıflarının makine öğrenmesi yöntemleri ve yapay sinir ağı
modeli kullanılarak sınıflandırılabilmesi hedeflenmiştir. Makine öğrenmesi
yöntemlerinde hiper parametrelerin seçimi dikkate alınmıştır. Yapay sinir ağı modelinde
sıralı etiketlenmiş veriler için özelleştirilmiş kayıp fonksiyonunun başarım üzerindeki
etkisi incelenmiştir. Farklı bir yaklaşım ile regresyon algoritmaları sınıflandırma
probleminde kullanılarak başarımları değerlendirilmiştir. Doğruluk ve F skoru gibi
değerlendirme kriterlerine ek olarak, kullanılan yöntemlerin sıralı sınıflandırma
problemindeki başarımlarını değerlendirmek amacıyla tez çalışması kapsamında
tanımlanan ceza puanı metriği ile algoritmaların performansı değerlendirilmiştir.

Abstract:
Software quality is directly related to all kinds of development and verification activities
in the software development life cycle. The quality of the software product is
determined by different authorities by subjecting it to different criteria and evaluations.
Poor quality software can cause companies to lose their reputation, lose the trust of their
customers, and even cause loss of life and property. To prevent these negative effects,
software testing activities gain great importance and play a key role in determining
software quality. In this thesis, it is aimed to accurately predict and classify software
quality by using the information about the testing processes and results of software
projects. In this context, the data used collected from a large-scale software company
have been used. In this dataset, software quality is labeled as high, medium or low. It is
aimed to classify quality classes using machine learning methods and artificial neural
network model. In the neural network model, the effect of the customized loss function
on the performance was investigated for sequentially labeled data. With a different
approach, regression algorithms were used in the classification problem and their
performance was evaluated. In addition to the evaluation criteria such as accuracy and F
score, the performance of the algorithms was evaluated with the penalty score metric
defined within the scope of the thesis in order to evaluate the performance of the
methods used in the ordinal classification problem.