AI ile Hata Ayıklama
Kod yazarken karşılaştığımız hataları bulup düzeltmeye hata ayıklama (debugging) denir; yeni başlayanların en çok zaman kaybettiği aşama da budur. Bu derste ChatGPT, Claude ve Gemini gibi sohbet asistanlarını, GitHub Copilot Chat veya Cursor gibi editör içi asistanları hatayı bulmak, anlamak ve düzeltmek için doğru biçimde nasıl kullanacağını sıfırdan anlatıyoruz. Bu ders, Yapay Zekâ dersleri kategorimizdeki 'Yapay Zekâ ile Programlama' ünitesinin bir parçasıdır; henüz yapay zekâ ile kod üretmeyi görmediysen önce AI ile kod yazma dersine bakmanı öneririz.
AI ile Hata Ayıklama Nedir?
Yazdığın program ya hata veriyor ya da sessizce yanlış sonuç üretiyorsa, sorunun kaynağını arıyorsun demektir. AI ile hata ayıklama, bu arayışta bir yapay zekâ asistanını üç görevde kullanmak demektir: hatanın ne anlama geldiğini açıklamak, olası nedenleri sıralamak ve düzeltilmiş kod önermek. 2024–2025 itibarıyla yaygınlaşan kullanım şudur: hata mesajını ve kodu doğrudan bir asistana yapıştırıp senin durumuna özel bir açıklama almak.
Burada kritik bir gerçeği kabul edelim: yapay zekâ kodunu gerçek anlamda 'anlamaz'; eğitildiği milyonlarca örnekten yola çıkarak en olası açıklamayı üretir ve zaman zaman kendinden emin bir biçimde yanılır. AI'ı bir 'bilge' değil, çok hızlı ama bazen hata yapan bir 'kıdemli arkadaş' olarak düşün; son sözü çalıştırdığın kod ve gördüğün çıktı söyler.
AI ile Hata Ayıklama Adım Adım Nasıl Yapılır?
Basit bir örnekle ilerleyelim. Şu Python kodu çalıştırıldığında hata veriyor: pritn("Merhaba"). Ekrana şu mesaj düşüyor: NameError: name 'pritn' is not defined. Bunu bir yapay zekâ asistanına taşımak için izleyeceğin adımlar şunlardır:
- Hatayı ve bağlamı topla. Hata mesajının tamamını (varsa Traceback dahil), ilgili kodu ve programın amacını bir araya getir.
- Net bir soru sor. Hata mesajını, kodu ve amacını tek mesajda ver: 'Bu kod şunu yapmaya çalışıyor, şu hatayı alıyorum, neden olabilir?'
- Önce açıklamayı iste, sonra çözümü. 'Bu hata ne anlama geliyor?' diye sor; asistan NameError'ın tanımsız bir isimden doğduğunu ve print'in yanlış yazıldığını söyleyecektir.
- Öneriyi uygula ve çalıştır. Düzeltmeyi kendi dosyanda yap, kodu yeniden çalıştır.
- Sonucu doğrula. Hata mesajı kayboldu diye iş bitmedi; program doğru sonucu mu üretiyor, kontrol et.
- Gerekirse takip sorusu sor; her cevap, bir sonraki hatada işine yarar.
İyi Bir Hata Ayıklama Sorusu Nasıl Sorulur?
AI ile hata ayıklamada sonucu belirleyen şey, sorduğun sorunun kalitesidir. Aynı hata için iki farklı soru şöyle karşılaştırılabilir:
- Zayıf soru: 'Kodum çalışmıyor, düzeltir misin?' — AI kodu ve hatayı görmediği için genel geçer tahminler üretir.
- Güçlü soru: 'Aşağıdaki Python 3 kodu üç sayının ortalamasını hesaplıyor ama şu hatayı veriyor: (hata mesajının tamamı). Kod: (kod). Sebebi açıkla, düzeltmeyi adım adım anlat.' — AI elindeki somut veriyle çalışır ve işe yarar bir cevap üretir.
Güçlü bir soruda bulunması gerekenler:
- Programlama dili ve mümkünse sürümü ('Python 3' gibi).
- Hata mesajının tamamı, hiçbir satırını atlamadan.
- Hatayı üreten kodun tamamı ya da ilgili bölümü.
- Beklenen davranış ile gerçekleşen davranışın farkı ('ekrana 4 çıkmasını bekliyordum, -1 yazıyor').
Kodunun ne yaptığını çözemediysen önce onu anlamlandırman gerekir; anlam veremediğin kodun hatasını aramak zordur. Bu noktada AI ile kod açıklama dersimizdeki yöntemler doğrudan işine yarar.
Hangi Hata Türünde AI Ne Kadar İşe Yarar?
Tüm hatalar aynı değildir; yapay zekânın başarısı hata türüne göre değişir:
- Yazım (sözdizimi) hataları: Eksik parantez, unutulan iki nokta. AI bu grupta çok başarılıdır; çünkü bunlar binlerce kişinin en sık yaptığı hatalardır.
- Çalışma zamanı hataları: Program çalışırken ortaya çıkan hatalar — yanlış yazılmış fonksiyon adı (NameError), geçersiz tip dönüşümü, olmayan liste elemanına erişim, bulunamayan dosya. AI hatayı açıklar ve sık karşılaşılan çözümleri önerir; hata mesajını tam verdiğinde başarı oranı yüksektir.
- Mantık hataları: Kod çalışır ama sonuç yanlıştır; örneğin ortalama hesaplarken toplamı öğrenci sayısına değil ikiye bölmek gibi. Hata mesajı olmadığı için AI'nin elinde ipucu yoktur; en dikkatli olman gereken gruptur. Beklenen ve gerçekleşen çıktıyı paylaşırsan AI test senaryoları önerir.
- Performans sorunları: Kod doğru ama yavaş çalışıyordur. AI daha verimli bir yaklaşım önerebilir; ama hangisi gerçekten hızlıdır, ancak ölçümle anlaşılır.
Editör içi asistanlar ayrıca yazarken hatalı satırın altını çizebilir, sen sormadan düzeltme önerebilir; bu anlık desteğe kod tamamlama dersinde değinmiştik. Hata ayıklama ise genellikle kodu çalıştırdıktan sonra başlayan ayrı bir süreçtir.
AI'ın Önerisine Güvenmeden Önce: Doğrulama
AI'dan aldığın düzeltme, sen test edene kadar yalnızca bir 'aday çözümdür'. Şu alışkanlıkları edin:
- Önerilen kodu önce küçük ve güvenli bir ortamda çalıştır; büyük projeye doğrudan yapıştırma.
- Çıktıyı elle kontrol et: üç sayının ortalamasını kendin hesaplayıp karşılaştırabilirsin.
- AI'nin var olmayan bir fonksiyon ya da kütüphane önermediğine bak; buna uydurma (halüsinasyon) denir ve güncel modellerde bile görülebilir.
- Çözümü anlamadıysan 'neden bu işe yarıyor?' diye sor; kopyala-yapıştır ile geçersen aynı hata karşısında yine çaresiz kalırsın.
- Gizliliğe dikkat et: şirket kodunu veya kişisel verileri herkese açık araçlara yapıştırmadan önce paylaşma iznin olup olmadığına bak.
Hata ayıklama, yapay zekânın yazılım geliştirme sürecinin yalnızca bir aşamasıdır; süreçlerin bütününü görmek istersen AI destekli yazılım geliştirme dersine göz atabilirsin.
Sık Yapılan Hatalar ve Yanılgılar
- 'AI yanılmaz' yanılgısı: En sık yapılan hata budur. Önerilen kodu test etmeden kabul eden biri, uydurulmuş bir çözümü projeye gömer.
- Anlamadan kopyala-yapıştır: Sorun kısa vadede çözülmüş gibi görünse de öğrenme olmaz; aynı hata sonraki adımda daha karmaşık biçimde döner.
- Eksik bilgi vermek: Kodun tek bir satırını atıp 'neden hata veriyor?' diye sormak; hatanın kaynağı genellikle vermediğin satırlardadır.
- Hata mesajını hiç okumamak: Hata mesajları cevabın büyük kısmını zaten içerir; okumadan taşımak ipuçlarını çöpe atmaktır.
- Soruyu değiştirip durmak: Aynı soruyu on farklı cümleyle sormak yerine, asistanın istediği ek bilgiyi tamamlamak çok daha hızlı çözüm getirir.
- 'Hata vermiyorsa koddur' yanılgısı: En tehlikeli hatalar sessiz olanlardır; kod çalışıp yanlış sonuç üretebilir. Mantık hatalarını yakalamanın yolu farklı girdilerle test etmektir.
Bu dersteki örnekleri Python üzerinden verdik; Python'u yapay zekâ araçlarıyla birlikte öğrenmek isteyenler için Python ve yapay zekâ dersi iyi bir sonraki adımdır. Bu beceriyi gerçek bir ürün içinde görmek istersen AI uygulaması geliştirme dersine, yazılım alanındaki tüm derslerimiz için ise yazılım dersleri sayfasına bakabilirsin.
Sık Sorulan Sorular
AI ile hata ayıklama nedir?
Yapay zekâ asistanının, kodundaki hatanın ne anlama geldiğini açıklaması, olası nedenleri sıralaması ve düzeltme önermesi sürecidir. Hata mesajını ve kodu asistana verirsin; aldığın açıklamayı ve önerilen düzeltmeyi kendi ortamında çalıştırıp doğrularsın.
ChatGPT gibi yapay zekâ araçları kod hatalarını doğru düzeltir mi?
Yazım (sözdizimi) ve çalışma zamanı hatalarında genellikle evet; ama mantık hatalarında yanılabilir. Önerilen çözümü mutlaka kendi ortamında çalıştırıp sonucu doğrulamalısın, çünkü güncel modellerde bile uydurma (halüsinasyon) görülebilir.
AI ile hata ayıklama ile kod tamamlama arasındaki fark nedir?
Kod tamamlama, kodu yazarken ileride gelecek satırları öneren anlık destektir; hata ayıklama ise kodu çalıştırdıktan sonra ortaya çıkan sorunu bulup düzeltme sürecidir. Editör içi asistanlarda her ikisi bir arada bulunur ama işlevleri birbirinden ayrıdır.