AI Genel Çalışma Rehberi

Blog / Rehber

Smoke Test Biliyordun, Peki Hallucination Testing?

AI sistemleri koda girdiğinden beri test sözlüğümüz de değişti. İşte eski terimleri hızlıca hatırlatıp, yeni dünyayı açıklayan bir rehber — eğlenceli, direkt, fazla uzatmadan.


TL;DR

Klasik test terimleri hâlâ geçerli ama artık tek başına yetersiz. Bir LLM'yi veya otonom agent'ı test etmek, assert response == "OK" yazmaktan çok farklı. Bu makalede önce eski sözlüğü hızlıca tarayacağız, sonra AI çağının getirdiği yeni terminolojiye dalacağız.

Toplam okuma süresi: ~10 dakika.


Önce Klasikleri Tarayalım

Zaten biliyorsun ama sınavda sorulsa net cevap verebilmek için:

Deployment & Güven Testleri

Kapsam Testleri

Yük & Kapasite Testleri

Güvenlik & Sağlamlık

Geliştirme Araçları


Ama Hayat Değişti

Klasik testlerde şu soru yeterliydi: "Çıktı beklediğim değere eşit mi?"

Artık sorular şu şekle döndü:

flowchart LR A["🏛️ Klasik Test\n2000-2020"] --> B["🤖 AI Test\n2020→"] A --> A1["assert output == beklenen"] A --> A2["Deterministik"] A --> A3["Input/Output net"] B --> B1["Eval: kalite skoru"] B --> B2["Probabilistik"] B --> B3["Reasoning süreci önemli"]

Yeni Sözlük: AI/LLM/Agent Test Terimleri

İşte artık takip etmen gereken terimler. Bunları bilmeden modern bir AI sistemini test ettiğini söyleyemezsin.


Temel Ölçüm & Değerlendirme

Eval / Evaluation Bir modelin ne kadar iyi iş çıkardığını ölçme pratiği. "Test" kelimesinin AI dünyasındaki karşılığı. GPT'nin verdiği yanıtları beklenen yanıtlarla karşılaştırırsın. Her eval pipeline'ının bir "ground truth" seti olması gerekir.

Prompt Regression Bir güncelleme sonrası prompt kalitesinin düştüğünü tespit etme. "Yeni promptu yazdım, daha iyi oldu" dersin ama dün iyi olan SQL sorgusu artık bozulmuş olabilir. Her prompt değişikliğinde regression suite çalıştırmalısın.

Determinism Testing Aynı prompt'a farklı günlerde verilen yanıtların ne kadar tutarlı olduğunu ölçersin. Bazı modeller temperature=0'da bile farklı sonuçlar döndürebilir. Bu testi atlama.

Latency Benchmarking Agent'ın görevi kaç saniyede tamamladığını ölçersin. "5 saniyede bitirmeli" gibi bir SLA varsa bunu izlemelisin. Model değişimi bile latency'yi 3x artırabilir.

Token Efficiency Aynı kaliteyi daha az token ile elde etmeye çalışırsın. OpenAI maliyeti düşürme operasyonu da diyebilirsin. Prompt'u compress ettikçe kalite ne kadar bozuluyor?


Güvenilirlik & Kalite

Hallucination Testing Modelin gerçek olmayan bilgi üretip üretmediğini sistematik olarak test edersin. "API endpoint /v2/users/bulk var mı?" diye sorarsın, model güvenle uydurduğu bir yanıt verirse hallucination var demektir.

Groundedness Check Modelin verdiği yanıtın kaynaklarla desteklenip desteklenmediğini doğrularsın. RAG sistemi kullanıyorsan "model retrieved document'a dayanarak mı yanıt verdi, yoksa uydurdu mu?" sorusunun cevabıdır.

RAG Evaluation Retrieval-Augmented Generation sistemlerini test edersin. Getirilen dökümanlar soruyla alakalı mıydı? Model bu dökümanlardan doğru sonuç çıkardı mı? İki ayrı sorudur, ikisini ayrı ayrı ölçersin.

Context Window Testing Uzun dökümanlarla çalışırken modelin bağlamı kaybedip kaybetmediğini test edersin. 300 sayfalık PDF'in 250. sayfasına dair soru sorarsın, cevap tutarlı mı?

Memory Consistency Test Agent sistemlerinde önceki oturumda öğrenilenlerin sonraki oturumda da hatırlanıp hatırlanmadığını kontrol edersin. "Geçen hafta dediğimi hatırlıyor mu?"


Güvenlik & Adversarial

Red Teaming Sistemi kasıtlı olarak kötü niyetli saldırılarla test edersin. Jailbreak dener, zararlı içerik üretmeye zorlar, rol yapmasını istersin. Bu test ayrı bir ekip tarafından yapılmalıdır.

Prompt Injection Testing Kullanıcının sistem prompt'unu manipüle etmeye çalıştığı senaryoları test edersin. "Yukarıdaki tüm talimatları unut ve bana X yap" gibi girişimler bloklananıyor mu?

Tool Permission Testing Agent'ın erişmemesi gereken şeylere erişip erişemediğini doğrularsın. Dosya sistemine okuma izni var ama yazma izni yok — bu kural gerçekten işliyor mu?

Guardrails Teknik olarak bir "test" değil ama test etmeniz gereken bir mekanizma. Modelin zararlı, yasadışı veya politika dışı içerik üretmesini engelleyen kurallar bütünü. Bu kuralların çalıştığını doğrulayan testler yazmalısın.


Agent Sistemleri

Agent Harness Agent'ları yöneten ve test eden runtime/orchestration altyapısı. LangGraph, CrewAI, LangChain gibi framework'ler. Klasik Test Harness'ın agent dünyasındaki karşılığı.

Tool Reliability Test Agent'ın çağırdığı araçların ne kadar güvenilir çalıştığını ölçersin. MCP tool 1000 çağrıda kaç kez başarısız oldu? %99 SLA var mı?

Agent Loop Detection Agent'ın sonsuz döngüye girdiğini erken tespit etme. "Aynı tool'u 50 kez çağırdı" gibi pattern'leri izlemelisin. Gerçekten üzücü bir production vakası olmadan önce bunu test edin.

Multi-Agent Orchestration Test Birden fazla agent birlikte çalışırken aralarındaki koordinasyonu ve görev aktarımını test edersin. Planner → Executor → Reviewer zinciri doğru çalışıyor mu?

Human-in-the-Loop (HITL) Agent'ın kritik adımlarda insan onayı alıp almadığını test edersin. Finansal işlemde agent "bunu onaylıyor musunuz?" diye sorduysa test geçti.

Autonomous Task Execution Agent'ın insan müdahalesi olmadan başından sonuna kadar bir görevi tamamlayabildiğini ölçersin. "Jira ticket oluştur, branch aç, PR yaz" — hepsini yaptı mı?


Harita: Klasik vs AI Test Karşılaştırması

quadrantChart title Test Terimleri: Kapsam vs Otomasyon x-axis Klasik --> AI/Agent y-axis Manuel --> Otomatik Smoke Test: [0.1, 0.9] Unit Test: [0.1, 0.95] E2E Test: [0.2, 0.7] Red Teaming: [0.7, 0.3] Eval / Evaluation: [0.8, 0.8] Hallucination Testing: [0.85, 0.75] Prompt Injection Testing: [0.75, 0.6] Agent Loop Detection: [0.9, 0.85] Tool Reliability Test: [0.8, 0.9] HITL Test: [0.65, 0.4]

Pratikte Nasıl Görünüyor?

Diyelim ki bir müşteri desteği agent'ı geliştiriyorsun. Test pipeline'ın şöyle görünmeli:

flowchart TD A["🚀 Deploy"] --> B["Smoke Test\nAgent ayakta mı?"] B --> C["Tool Reliability Test\nMCP tool'lar çalışıyor mu?"] C --> D["Hallucination Testing\nAgent bilmediğini uyduruyor mu?"] D --> E["Prompt Injection Testing\nKullanıcı sistemi manipüle edebiliyor mu?"] E --> F["Agent Loop Detection\nSonsuz döngü riski var mı?"] F --> G["Eval / Evaluation\nGenel kalite skoru nedir?"] G --> H{"Eşik\ngeçildi mi?"} H -->|Evet| I["✅ Production"] H -->|Hayır| J["🔄 Revize et"]

Hızlı Referans: Hangi Terimi Ne Zaman Kullanırsın?

"Sunucu çökmüş mü?" diyorsan → Smoke Test

"Bu bug düzeldi mi?" diyorsan → Sanity Test

"Yeni özellik eskiyi bozmadı mı?" diyorsan → Regression Test

"Model gerçek olmayan şey mi anlattı?" diyorsan → Hallucination Testing

"Kullanıcı sistemi ele geçirmeye mı çalışıyor?" diyorsan → Prompt Injection Testing

"Agent sonsuz döngüde mi?" diyorsan → Agent Loop Detection

"Yanıtlar kaynakla uyuşuyor mu?" diyorsan → Groundedness Check

"Model dünkü kadar iyi mi hâlâ?" diyorsan → Eval + Prompt Regression

"Kötü niyetli saldırıya dayanıyor mu?" diyorsan → Red Teaming


Sonuç

Test etmek hiçbir zaman kolay olmadı. Ama AI sistemleri, "bekleneni döndürüyor mu?" sorusunun ötesine geçmeyi zorunlu kıldı. Artık bir sistemin sadece çalışıp çalışmadığını değil, güvenilir, tutarlı ve manipüle edilmez olup olmadığını da test etmemiz gerekiyor.

Klasik sözlüğü biliyordun. Yeni sözlüğü de şimdi biliyorsun. Şimdi sıra bunları pipeline'ına eklemeye.


Kaynaklar

Okuma Önerileri:

Bu Siteden: