Modül 6 · Domain 6 — Testing with Copilot (%10-15) · ⏱ 14 dakika

AI üretimi kod review pattern'i

AI-generated code review pattern

Bu derste neler öğreneceksin

  • AI üretimi kodu gözden geçirirken özel dikkat edilmesi gereken alanları tanımlamak
  • Copilot PR review özelliğini kullanmayı öğrenmek
  • Güvenlik açığı içeren AI önerilerini tespit etme stratejisi geliştirmek
  • Kod review kültürü ve AI sorumluluğu arasındaki dengeyi kavramak

AI üretimi kodu inceleme — neden farklı?

Normal kod review aynı zamanda “yazar ne düşünüyordu” sorusunu yanıtlar. AI üretimi kodda bu bağlam yoktur — sadece çıktı vardır.

Bu nedenle AI üretimi kodu incelerken ek dikkat gerekir:

1. Mantık doğruluğu

Copilot syntax’ı doğru üretir ama business logic açısından yanlış olabilir.

# Copilot'un ürettiği (syntax doğru, mantık yanlış):
def calculate_discount(price: float, user_tier: str) -> float:
    if user_tier == "premium":
        return price * 0.85  # %15 indirim
    return price * 0.90      # %10 indirim

# Gerçek kural (varsayılan): premium = %20 indirim, standard = %5
# Copilot tipik değerleri tahmin etti — yanlış

2. Güvenlik açıkları

AI’ın sık ürettiği güvenlik sorunları:

SorunÖrnek
SQL injectionf-string ile sorgu birleştirme
Hardcoded credentialTest kodu olarak yazılmış gerçek secret
Insecure deserializationpickle.loads(user_input)
Missing input validationDoğrulama olmadan DB kaydı
Race conditionThread-safe olmayan counter

3. Gereksiz kompleksite

Copilot bazen işe yarayan ama gereksiz karmaşık kod üretir. Basit çözüm varken over-engineered yaklaşım tercih edebilir.

Copilot’un kendi kendine PR review yapması

GitHub Copilot, PR açıldığında değişiklikleri otomatik inceleyebilir:

  • PR’da “Request Copilot review” seçeneği (Business/Enterprise)
  • Copilot potansiyel sorunları, geliştirme önerilerini ve açıklamaları yorum olarak ekler
  • Bu otomatik review insan review’ının yerini almaz — tamamlayıcıdır

Review kontrol listesi — AI kod için

Bir PR’da AI üretimi kod varsa şunları kontrol et:

  • Business logic önceki spec veya issue’ya uyuyor mu?
  • Input validation eksiksiz mi?
  • Error handling tüm senaryoları kapsıyor mu?
  • Güvenlik açığı vektörleri (injection, auth bypass) kontrol edildi mi?
  • Test coverage yeterli mi ve testler anlamlı mı?
  • Dependency eklendiyse güvenli ve güncel mi?

Sırada ne var?

Modül 7 — Privacy & Context Exclusions — gizlilik temelleri ve content exclusion’ın compliance bağlamındaki önemi.