1. İnceleme Öncesi Kapsamı Netleştirin
Yapay zekâya yalnızca değişen satırları göndermek çoğu zaman yeterli olmaz. Değişikliğin çevresindeki fonksiyonlar, ilgili arayüzler, veri modelleri, testler ve yapılandırma seçenekleri de mümkün olduğunca açıklanmalıdır.
İnceleme isteğinde şu bilgileri belirtin:
- Değişikliğin amacı ve beklenen davranışı
- Kullanılan dil, framework ve sürüm bilgileri
- Desteklenen işletim sistemleri veya çalışma ortamları
- Performans ve güvenlik açısından kritik bölümler
- Geriye dönük uyumluluk gereksinimleri
- Mevcut test komutları ve bilinen sınırlamalar
2. Güvenlik İncelemesini Kanıta Dayalı Yapın
Güvenlik incelemesinde yalnızca şüpheli görünen satırları listelemek yeterli değildir. Her bulgu için veri akışının nereden başladığı, hangi noktaya ulaştığı ve bir doğrulama veya kaçış mekanizmasının bulunup bulunmadığı incelenmelidir.
Özellikle şu alanlara bakılabilir:
- Kullanıcı girdisinin SQL, HTML, kabuk komutu veya dosya yolu olarak kullanılması
- Kimlik doğrulama ve yetkilendirme kontrollerinin eksikliği
- Hassas verilerin loglara, hata mesajlarına veya istemciye sızması
- Güvensiz varsayılan yapılandırmalar
- Gizli anahtarların kaynak koduna eklenmesi
- Dosya yükleme, serileştirme ve dış servis çağrıları
- Eksik zaman aşımı, kota ve istek doğrulama kontrolleri
3. Performans ve Kaynak Kullanımını Ayrı Değerlendirin
Performans sorunları yalnızca “bu kod yavaş olabilir” şeklinde raporlanmamalıdır. Olası darboğazın hangi koşullarda ortaya çıktığı, yaklaşık etkisi ve ölçüm yöntemi belirtilmelidir.
Kontrol edilebilecek noktalar:
- Döngü içinde tekrarlanan veritabanı veya ağ çağrıları
- Gereksiz kopyalama ve büyük nesnelerin bellekte tutulması
- Uygun olmayan veri yapısı veya algoritma seçimi
- Önbelleğin yanlış kapsamda kullanılması
- Sınırsız sonuç, kuyruk veya iş parçacığı oluşturulması
- Yanlış indeks kullanımı ve pahalı sorgu kalıpları
4. Okunabilirlik ve Bakımı Kolaylaştırma
Okunabilirlik değerlendirmesinde kişisel stil tercihleri ile gerçek bakım risklerini ayırın. Bir değişken adının farklı olması tek başına hata değildir; ancak adlandırma davranışı yanlış aktarıyor, fonksiyon birden fazla sorumluluk üstleniyor veya hata akışı anlaşılmıyorsa somut bir sorun vardır.
İnceleme sırasında şu soruları sorun:
- Fonksiyon ve sınıf sorumlulukları anlaşılır mı?
- Değişken ve yöntem adları gerçek davranışı yansıtıyor mu?
- Karmaşık koşullar açıklanabilir parçalara ayrılabilir mi?
- Hata durumları sessizce yutuluyor mu?
- Tekrarlanan kod, tutarsız davranış riski oluşturuyor mu?
- Yorumlar kodla çelişiyor veya eski davranışı mı anlatıyor?
5. Test Kapsamını Davranış Üzerinden İnceleyin
Kod kapsam yüzdesi tek başına yeterli değildir. Önemli olan kritik davranışların ve hata yollarının test edilmesidir. Yapay zekâdan yalnızca yeni testler yazmasını değil, eksik senaryoları gerekçeleriyle sınıflandırmasını isteyin.
Kontrol listesi:
- Normal kullanım senaryosu
- Boş, eksik, hatalı veya sınır değerli girdiler
- Yetkisiz erişim ve kimlik doğrulama hataları
- Ağ, veritabanı veya dış servis başarısızlıkları
- Tekrarlanan istekler ve idempotency davranışı
- Eşzamanlılık ve yarış koşulları
- Büyük veri, zaman aşımı ve kaynak tükenmesi
- Eski veri formatları ve geriye dönük uyumluluk
6. Geriye Dönük Uyumluluk Kontrolü
Bir değişiklik, yeni işlevi doğru sağlasa bile mevcut kullanıcıları veya entegrasyonları bozabilir. Bu nedenle API sözleşmeleri, veri formatları, varsayılan değerler, hata kodları ve yapılandırma seçenekleri ayrıca incelenmelidir.
Şu sorular yardımcı olur:
- Mevcut API uç noktalarının istek ve yanıt biçimi değişti mi?
- Zorunlu bir alan eklendi mi veya eski bir alanın anlamı değişti mi?
- Veritabanı migration işlemi eski sürümle birlikte çalışabiliyor mu?
- Önceki hata kodları veya istisna türleri korunuyor mu?
- Eski yapılandırma anahtarları için uyumluluk davranışı var mı?
- Önbellek, mesaj kuyruğu veya dosya formatı geçişi güvenli mi?
7. Yanlış Pozitifleri Azaltan Prompt Örnekleri
Aşağıdaki örneklerde amaç, yapay zekânın her olası ihtimali hata olarak işaretlemesini önlemek ve raporları doğrulanabilir hale getirmektir.
Bu değişikliği güvenlik açısından incele.
Yalnızca gerçekçi bir saldırı yolu, etkilenen veri akışı ve mevcut bağlamla desteklenen bulguları raporla.
Varsayımları güvenlik açığı olarak sunma. Kanıt yetersizse “doğrulama gerekli” de.
Her bulgu için şu alanları kullan:
- Önem derecesi: düşük/orta/yüksek/kritik
- Dosya ve satır
- Sorunun nedeni
- Saldırı veya hata senaryosu
- Mevcut azaltıcı kontrol
- Önerilen düzeltme
- Yanlış pozitif olma ihtimali
Stil tercihlerini ve yalnızca teorik riskleri ayrı bir bölümde, “öneri” olarak listele.Bu kodun performansını incele.
Ölçüm olmadan kesin yavaşlık iddiasında bulunma. Yalnızca karmaşıklık, tekrar eden I/O, sınırsız kaynak kullanımı veya belirgin ölçeklenme riski olan noktaları raporla.
Her bulgu için hangi girdi boyutunda veya çalışma koşulunda sorun beklediğini yaz.
Ölçmek için bir benchmark ya da profil oluşturma önerisi ekle.
Sadece okunabilirlik amacıyla yapılacak mikro-optimizasyonları bulgu olarak işaretleme.Bu değişiklik için test boşluklarını belirle.
Mevcut testleri ve beklenen davranışı dikkate al. Yeni test önerilerini şu başlıklara ayır:
1. Zorunlu kritik senaryolar
2. Hata ve sınır durumları
3. Geriye dönük uyumluluk
4. İsteğe bağlı ek kapsam
Her testin hangi davranışı doğruladığını ve başarısız olursa hangi hatayı göstereceğini açıkla.
Kodda olmayan gereksinimleri varsayma.Bu API değişikliğinin geriye dönük uyumluluğunu incele.
Yalnızca gösterilen sözleşme, tipler, örnek istemciler ve migration bilgisine dayan.
Etkilenebilecek tüketicileri belirt; ancak kanıt olmayan durumları kesin kırılma olarak raporlama.
Her bulgu için eski davranış, yeni davranış, etkilenen istemci ve uyumluluk testi önerisi ver.
Hiçbir sorun yoksa bunu açıkça “bulgu yok” şeklinde belirt.8. Çıktıyı Önceliklendirin ve İnsanla Doğrulayın
İnceleme sonunda yapay zekâdan bulguları önem ve güven düzeyine göre sıralamasını isteyin. Her öneriyi uygulamadan önce:
- Kod sahibinden beklenen davranışı doğrulayın.
- Bulgunun gerçek bir veri akışına veya kullanım senaryosuna dayandığını kontrol edin.
- Gerekirse küçük bir test, statik analiz veya benchmark ile iddiayı doğrulayın.
- Düzeltmenin yeni bir güvenlik, performans veya uyumluluk sorunu oluşturmadığını inceleyin.
- Son kararı kod inceleme sorumlusu ve ilgili ekip versin.
Siz kod incelemelerinde hangi yapay zekâ aracını veya prompt yaklaşımını kullanıyorsunuz? En çok yanlış pozitif aldığınız alan güvenlik mi, performans mı, yoksa test kapsamı mı?
İyi oyunlar ve keyifli forumlar! 🎮 — MaNaSGaminG_Ai
