Python söz dizimi hatalarının derin öğrenme yöntemleri ile onarılması - Dikici, Sena; Bilgin, Turgay Tugay; Bursa Teknik Üniversitesi Bilgisayar Mühendisliği Bilim Dalı; Lisansüstü Eğitim Enstitüsü (Bursa, 2024)
Otomatik program onarımı (APR), yazılım geliştirme süreçlerinde karşılaşılan hataları tespit etmek ve onarmak için otomatik teknikler kullanan bir araştırma alanıdır. Bu alanda yapılan çalışmalar, hata düzeltme sürecini hızlandırmayı, yazılım kalitesini artırmayı ve geliştiricilerin üzerindeki yükü azaltmayı hedefler. Bu alandaki son yenilikler, derin öğrenme ve makine öğrenimi tekniklerinin yanı sıra geleneksel algoritmik yaklaşımları içermekte ve kod analizi, hata türü tahmini, hatalı kod segmentlerinin lokalizasyonu ve onarım önerileri sunma gibi aşamaları otomatize etmekte büyük ilerlemeler kaydetmektedir. Bu tez çalışması, Python programlama dilinde yazılmış kodların otomatik olarak onarılmasını hedefleyen ve yapay zeka teknolojilerini kullanan bir sistem üzerine odaklanmaktadır. Çalışma, BiLSTM ve LSTM ağları kullanılarak geliştirilen özel modeller ile hatalı kodların tespit edilip onarılması sürecini içermektedir. Çalışmanın ilk aşamasında, farklı hata türlerine sahip hatalı Python kodları üzerinde eğitim gerçekleştirilmiştir. BiLSTM hata türü tahmin modeli, %98'lik bir doğruluk değeri elde ederek hata türlerini etkin bir şekilde tespit edebildiğini kanıtlamıştır. Python dilinde yazılmış ve doğru biçimde işlev gösteren kod örnekleri üzerinden, bu kodların tokenize edilerek temel yapı taşlarına ayrılması ve her bir tokenin benzersiz tanımlayıcılar ile eşleştirilmesi işlemi gerçekleştirilmiştir. Bu işlem sonucunda oluşturulan veri seti, LSTM tabanlı bir token tahmin modelinin eğitimi için kullanılmıştır. Model, eğitim sonucunda %98,44'lük bir doğruluk oranı ve %98,91'lik F1 skoruna ulaşarak yüksek düzeyde başarı sergilemiştir. Sistemin performansı, mutasyon testiyle oluşturulmuş 925 adet hatalı kod örneği üzerinde deneyimlenmiş ve bu kodların 794'ü (%85,84) başarılı bir şekilde onarılmıştır. Bu sonuçlar, sistemin hatalı Python kodlarını tespit etme ve onarma konusunda oldukça yetkin olduğunu göstermektedir. Şablon tabanlı APR aracı olan PyNar Sohbet Robotu ile karşılaştırıldığında tez çalışmasının onarım sistemi, PyNar'ın %53,3'lük başarısına kıyasla %85,84 gibi daha yüksek bir başarı oranına ulaşmıştır. Bu karşılaştırma, geliştirilen otomatik onarım sisteminin etkinliğini ve yapay zeka destekli çözüm yaklaşımlarının bu alanda ne kadar başarılı olabileceğini gözler önüne sermiştir. Bu akademik çalışma, otomatik program onarımı konusunda önemli bir ilerlemeyi işaret ederek bu alandaki ileriye dönük çalışmalar için güçlü bir referans sağlamaktadır. Elde edilen yüksek doğruluk oranları ve onarım başarısı, APR araçlarının yazılım geliştirme alanında önemli bir etki yaratabileceğinin göstergesidir. Bu tür sistemlerin gelişimi ve iyileştirilmesi kod kalitesini artırma ve geliştirme süreçlerinin verimliliğini iyileştirme yolunda umut verici yenilikler sunmaktadır.
Tez (Yüksek Lisans) -Bursa Teknik Üniversitesi Lisansüstü Eğitim Enstitüsü,2024
Kaynakça 123-128 sayfa
Keywords: Derin öğrenme; Otomatik program onarımı