Yapay zeka tabanlı yazılım testi platformu geliştirilmesi
Development of artificial intelligence based software testing platform
Yazar: SERGEN AŞIK
Danışman: DR. ÖĞR. ÜYESİ UĞUR YAYAN
Eskişehir Osmangazi Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Bilimleri Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Veri madenciliği = Data mining ; Yazılım kalitesi = Software quality ; Yazılım testi = Software test

Özet:
Teknolojinin hızla gelişmesiyle birlikte yazılım, donanım cihazlarını işleten ve kontrol eden modern yaşamın hayati bir unsuru haline gelmiştir. Hatalı ve düşük kaliteli yazılım, insanlar için ciddi risk oluşturabilir ve hayatlarını tehlikeye atabilir. Bu durum, hatasız ve yüksek kaliteli yazılım geliştirmenin zorunlu hale geldiğini vurgulamaktadır. Hatasız ve yüksek kaliteli yazılım geliştirmenin yolu doğrulama ve onaylama süreçleriyle sağlanmaktadır. Bu sürecin ayrılmaz bir parçası yazılım testidir. Kod kapsamı, test takımlarının etkinliğini değerlendirmek için yaygın olarak kullanılan bir yazılım testi tekniği olsa da bazı sınırlamaları bulunmaktadır. Bu sınırlamaları ele almak için endüstride ve akademik çalışmalarda mutasyon testi yaklaşımı önerilmektedir. Mutasyon testi, test senaryoları oluşturma ve test takımlarının etkinliğini değerlendirme yöntemi olarak kabul edilmektedir. Bu tez çalışmasının amacı, yazılım uygulamalarındaki gerçek dünya hatalarından mutasyonları otomatik olarak öğrenmek ve platform üzerinde sunmaktır. Önerilen yöntem, ilk olarak hata düzeltmelerini metot (fonksiyon) seviyesinde çıkarmayı, mutasyon türlerine göre ayrıştırmayı ve kaynak kodunun soyutlamasını içermektedir. Daha sonra, mutasyon türlerine göre ayrıştırılan soyutlanmış metot seviyesindeki kaynak kodlarından mutant kod üretimini gerçekleştirmek amacıyla nöral makine çevirisi tabanlı dönüştürücü modeli geliştirilmiştir. Son olarak, önerilen nöral makine çevirisi tabanlı mutant üretim modeli dahil olmak üzere yazılım testini yapay zekâ tabanlı olarak gerçekleştirebilen modeller için bir platform oluşturulmuştur. Deneysel sonuçlardan elde edilen bulgular, önerilen yöntemin %6 ile %35 arasında gerçek dünya hatalarına benzer mutasyonlu kodları başarıyla tahmin edebildiğini göstermektedir. Ayrıca, mutant üretici modelin orijinal hatalı kaynak kodundan farklı olarak mutant kodları %94'lük başarıyla üretebilmektedir. Üretilen mutant kaynak kodları, sözlüksel ve sözdizimsel olarak %96 doğrulukla elde edilebilmektedir. Bu sonuçlar, yazılım testi için kaynak kodlarının yapay zekâ tabanlı olarak üretilebileceğini göstermiştir.

Abstract:
Due to the fast-paced development of technology, the software has become a crucial aspect of modern life, faciliating the operation and management of hardware devices. Faulty and low-quality software can pose severe risks to individuals and endanger their lives. This highlights the necessity of developing error-free and high-quality software. Verification and validation processes are integral to achieving error-free and high-quality software, with software testing being a fundamental part of this process. While code coverage is a widely used software testing technique to assess the effectiveness of test suites, it has certain limitations. The mutation testing approach has been proposed in industry and academic research to address these limitations. Mutation testing is considered a method for generating test scenarios and evaluating the effectiveness of test suites. This thesis aims to automatically learn mutations from real-world bugs in software applications and present them on a platform. The proposed method involves initially extracting bug fixes at the method-level, categorizing them according to mutation types, and abstracting the source code. Subsequently, a neural machine translation-based transformer model has been developed to generate mutant code from the abstracted method-level source code based on the mutation types. Finally, a platform has been created for conducting software testing, including the proposed neural machine translation-based mutant generation model. The experimental results demonstrate that the proposed method successfully predicts mutation codes similar to real-world mutations, ranging from 6% to 35%. Additionally, the mutant generator model can successfully produce mutant codes different from the original buggy source code with a success rate of 94%. The generated mutant source codes can be obtained with 96% accuracy regarding lexical and syntactic correctness. These results indicate that source codes can be artificially generated for software testing based on artificial intelligence.