AI uygulamaları
AI uygulamalarını test etme: ne bozulur ve nasıl test edilir.
Bir LLM uygulaması, normal bir web uygulamasının başarısız olmadığı şekillerde başarısız olur. Model her seferinde farklı bir şey döndürür, bu yüzden yanıta doğrulama yazamazsınız — çevresindeki her şeye yazarsınız: yanıtın gelmesi, akması, durması, görünür biçimde başarısız olması, bir sınıra uyması ve kişinin görmesine izin verilmeyen veriyi asla döndürmemesi.
Son güncelleme 24 Ağustos 2026
Bir AI uygulamasını test etmek nasıl farklıdır?
Arayüz aynı. Sözleşme aynı değil. Geleneksel test otomasyonu iki kez geçerli olan bir doğrulamaya dayanır — şuna tıkla, şunu gör. Bir model bu varsayımı ilk çalıştırmada bozar; bu yüzden ekipler çoğu zaman AI özelliklerinin hiç regresyon testi yapılamayacağı sonucuna varır ve onları testsiz yayınlar.
Yapılabilir. İş, doğrulamayı metinden alıp belirleyici olan kısımlara taşımaktır: yanıt bir bütçe içinde geldi, istediğiniz şemaya uygun ayrıştırıldı, bu kullanıcının okuyabileceği bir belgeye atıf yaptı, bir ret ret olarak göründü, bir yeniden deneme iki kez tahsilat yapmadı. Bunların hepsi sıradan otomasyondur. Yanıtın iyi olup olmadığını yargılamak bir değerlendirme sorunudur, kendi doğru referans verinizi gerektirir ve regresyon paketinde değil, istemlerinizin yanındaki bir altyapıda yer alır.
Bir LLM uygulamasında gerçekte ne bozulur
Bunlar çıktı kalitesi hakkında görüşler değil, davranışlardır; test edilebilir olmalarını sağlayan da budur. Her biri kullanıcılara kötü bir yanıt olarak değil, üründeki bir hata olarak ulaşır.
| Hata | Kullanıcıya nasıl ulaşır | Test |
|---|---|---|
| Yanıt akıyor, sonra yarıda kesiliyor | Akış sırasında kopan bağlantı, ekranda hata ve yeniden deneme olmadan yarım yazılmış bir yanıt bırakır. Kullanıcılar bunu yanıtın kendisi sanır. | Yanıtı akış ortasında kesin ve arayüzün kesik bir yanıt değil, bir hata durumu gösterdiğini doğrulayın. |
| Model yavaş ve arayüzün buna bir cevabı yok | p95 kırk saniyede dururken arayüz ne ilerleme, ne iptal, ne de zaman aşımı sunar. İnsanlar yeniden tıklar ve artık iki istek ücretlendirilir. | Yanıtı zaman aşımının ötesinde açık tutun; görünür bir durum, bir iptal yolu olduğunu ve ikinci tıklamada yinelenen istek oluşmadığını doğrulayın. |
| Sağlayıcı 429 veya 503 döndürüyor | Hız sınırları ve sağlayıcı kesintileri istisna değil, olağandır. Bunları imkansız sayan uygulamalar ham bir hata ya da bitmeyen bir yükleme göstergesi gösterir. | Sağlayıcıdan 429 ve 503 döndürün; uygulamanın kullanıcının işe yarar bir adım atabileceği bir mesaja düştüğünü doğrulayın. |
| Boş, reddedilen ve güvenlik filtresine takılan yanıtlar | Model reddeder ya da güvenlik filtresi devreye girer; arayüz yalnızca sorunsuz yolu ele aldığı için boş bir balon çizer. | Bir ret ve boş bir tamamlama zorlayın; hiçbirinin boş bir mesaj ya da bozuk bir yerleşim üretmediğini doğrulayın. |
| Konuşma bağlamını kaybediyor | Geçmiş pencereye sığsın diye kırpılır ve asistan üç mesaj önce söylenenleri sessizce unutur. Bu, ürünün aptal olduğu izlenimini verir. | Bir konuşmayı bağlam sınırının ötesine taşıyın ve uygulamanın neyi attığını sessizce atmak yerine söylediğini doğrulayın. |
| Araç çağrıları birden fazla kez çalışıyor | Bir ajan, aracı zaten çalışmış bir adımı yeniden dener. O aracın yaptığı her şey — bir e-posta, bir tahsilat, bir yazma — iki kez gerçekleşir. | Bir araç çağrısını başarılı olduktan sonra zaman aşımına uğratın ve yeniden denemenin yan etkiyi tekrarlamadığını doğrulayın. |
| Getirme işlemi başka bir kiracının belgesini döndürüyor | Vektör deposu sorguda değil istemde filtrelenir; bu yüzden talimatı yok sayan bir getirme, kullanıcının okuyamaması gereken veriyi döndürür. | Bir kiracı olarak başka bir kiracıya ait belgeyi sorgulayın ve belgenin yalnızca yanıtta anılmamasının değil, getirilen kümede hiç yer almadığını doğrulayın. |
| Maliyet tavansız büyüyor | Kullanıcı başına sınır yok; bu yüzden tek bir döngü ya da betikle çalışan tek bir hesap, fatura gelene kadar kimsenin fark etmediği bir tutara dönüşür. | Aynı uç noktayı art arda çağırın ve bir sınırın var olduğunu doğrulayın — kullanıcı, anahtar ve dakika başına. |
Güvenlik
LLM güvenlik testi: kontrol etmeye değer yüzey
Bir AI özelliği genellikle normal bir özelliğin olmadığı iki şeye bağlı gelir: ücretli bir uç nokta ve okuduğu her şeyde bulduğu talimatları izleyen bir bileşen. İkisi de saldırı yüzeyini standart bir uygulama güvenliği incelemesinin yazılmadığı yollarla genişletir.
Aşağıda, gerçekte ne sıklıkta bulunduklarına göre sıralanmıştır — ki bu, bunlar hakkında yazılma sırası değildir.
- 01
İstemci paketinde sağlayıcı anahtarları
Ön yüz JavaScript'inde gönderilen ya da önünde kimlik doğrulama olmayan bir proxy rotasından erişilebilen bir model sağlayıcı anahtarı.
Geliştirici araçlarına sahip herkes kotanızı harcayabilir. Bu listedeki kontrol etmesi en ucuz, kaçırması en pahalı şeydir.
- 02
İçerik üzerinden istem enjeksiyonu
Modelin okuduğu bir şeye — yüklenen bir belge, taranan bir sayfa, bir destek kaydı, bir e-posta gövdesi — gizlenmiş ve modelin sonra uyguladığı talimatlar.
Saldırgan giriş kutunuza hiç dokunmaz. Sisteminizin içeri aldığı her şey, siz öyle tasarlamamış olsanız bile bir girdidir.
- 03
Bir araca ulaşan enjeksiyon
Bir ajanın araç çağırmasına yol açan enjekte edilmiş talimatlar: mesaj göndermek, kayıt yazmak, dahili bir adrese istek yapmak.
Enjeksiyonun utanç olmaktan çıkıp olaya dönüştüğü yer burasıdır. Etki alanı, ajanın yapmasına izin verilen her şeydir.
- 04
Sistem isteminin ve gizli bilgilerin ifşası
Modele kendi talimatlarını, araç tanımlarını ya da kendisine verilen yapılandırma parçalarını tekrarlatmak.
Sistem istemi sıklıkla iş kuralları, dahili uç noktalar ve bazen kimsenin oraya koymak istemediği kimlik bilgileri içerir.
- 05
Kiracılar arası getirme
Sorgu filtrelenerek değil, modelden kibarca rica edilerek sınırlandırılan getirme.
İstem bir erişim kontrolü değildir. Filtre talimatlarda duruyorsa, yok sayılan tek bir talimat veri ihlalidir.
- 06
Çıktının işaretleme veya kod olarak işlenmesi
Model çıktısının sayfaya HTML olarak ya da bir kabuğa, sorguya veya eval'e konması.
Yeni bir kaynaktan gelen klasik enjeksiyon. Model artık güvenilmeyen bir girdidir ve bir saldırganın etkileyebildiği bir girdidir.
- 07
Hizmet reddi olarak sınırsız harcama
Hız sınırı, hesap başına tavan ve kabul ettiği boyutta sınır olmadan ücretli bir modeli çağıran uç nokta.
Amaç sizi çökertmek değil. Kendi kendinizi kapatana kadar fatura şişirmektir.
- 08
Günlüklerin sakladıkları
Günlüklere ve analitiğe yazılan istemler ve tamamlamalar — kullanıcının içlerine yapıştırdığı her şey dahil.
İnsanlar sohbet kutularına canlı ortam kimlik bilgilerini ve müşteri kayıtlarını yapıştırır. Günlük saklama süreniz artık bir veri koruma meselesidir.
QA Spider neleri otomatikleştirir, neleri otomatikleştirmez
Bizi sorumlu tutabileceğiniz kadar dar ifade edildi.
Bunu otomatikleştiriyoruz
- Ürününüzü gerçek bir tarayıcıda çalıştırır; böylece yukarıdaki akış, zaman aşımı, yeniden deneme, boş durum ve hata durumu senaryoları sıradan arayüz testleri olur — zamanlanmış olarak ve her dağıtımda çalışır.
- Arayüzün altındaki API'yi, ön yüzünüzün bir modele ulaşmak için çağırdığı rotalar dahil kontrol eder.
- Başarısız olanı, yeniden üretme adımları ve bir ekran görüntüsüyle Jira, Azure DevOps, ClickUp, GitHub veya Linear'da kayıt olarak açar.
- Herkese açık sitede yüzeysel bir güvenlik taraması yapar: aktarım ve güvenlik başlıkları, çerez bayrakları, karma içerik, form açıklığı, DNS ve e-posta taklidine karşı koruma.
Bunu yapmıyoruz
- Şu anda otomatik bir istem enjeksiyonu ya da jailbreak paketi sunmuyoruz. Biri tarayıcısının bunu kutudan çıktığı gibi yaptığını söylerse, ondan doğrulamaları göstermesini isteyin.
- Bir yanıtın doğru olup olmadığını değerlendirmiyoruz. Bu bir değerlendirme sorunudur, sizin doğru referans verinizi gerektirir ve regresyon testinden farklı bir disiplindir.
İnsanların AI uygulamalarını test etme hakkında sorduğu sorular
- Bir AI uygulamasını test etmek normal bir web uygulamasını test etmekten nasıl farklı?
- Arayüz aynı; çıktı aynı değil. Normal bir uygulama aynı yanıtı iki kez döndürür, dolayısıyla üzerine doğrulama yazabilirsiniz. Bir model her seferinde farklı bir şey döndürür, bu yüzden doğrulamalar yanıtın biçimine ve çevresindeki davranışa kayar — gelip gelmediğine, akıp akmadığına, durup durmadığına, görünür biçimde başarısız olup olmadığına ve olması gereken kadar maliyetli olup olmadığına.
- Çıktı her seferinde değişirken doğrulamayı nasıl yazarsınız?
- Metne değil, sözleşmeye dayanın. Yanıtın bütçe içinde gelip gelmediği, istediğiniz şemaya uyup uymadığı, kullanıcının görmesine izin verilen bir belgeye atıf yapıp yapmadığı, bir retin ret olarak görünüp görünmediği. İfadenin kalitesini yargılamak bir değerlendirmedir ve regresyon paketinden ayrı yürütülür.
- İstem enjeksiyonu nedir ve nasıl test edilir?
- Sisteminizin okuduğu içeriğe — bir belge, bir web sayfası, bir kayıt — gizlenmiş ve modelin sonra itaat ettiği talimatlardır. Modele ulaşan her kanala talimat yerleştirip etkisinin asla gerçekleşmediğini doğrulayarak test edersiniz: hiçbir araç çağrılmaz, hiçbir veri dönmez, sistem istemi tekrarlanmaz.
- AI ürünlerindeki en yaygın güvenlik sorunu nedir?
- Gösterişsiz olanlar. Tarayıcıdan erişilebilen bir sağlayıcı anahtarı, hız sınırı olmayan bir model uç noktası ve sorgudaki bir filtre yerine istemdeki bir talimatla sınırlandırılmış getirme. Üçünü bulmak da zekice bir jailbreak'ten daha ucuz ve orada bulunma olasılıkları daha yüksek.
- QA Spider AI ürünümü test edebilir mi?
- Modelin çevresindeki davranışı, evet: akış, zaman aşımları, yeniden denemeler, retler, hata durumları, hız sınırları ve arayüzün altındaki API, her dağıtımda gerçek bir tarayıcıda test edilir. Otomatik istem enjeksiyonu paketleri bugün sunduğumuz bir şey değil; bunu daha sonra kendiniz fark etmenizden çok şimdi söylemeyi tercih ederiz.
- Modelin doğru yanıtlar verip vermediğini kontrol ediyor musunuz?
- Hayır. Doğruluk sizin doğru referans verinizi gerektirir ve istemlerinizle birlikte sürümlediğiniz, size ait bir değerlendirme altyapısına aittir. Regresyon testi farklı bir soruyu yanıtlar: dün çalışan şey bugünkü dağıtımdan sonra hâlâ çalışıyor mu.
Onu AI ürününüze yöneltin.
Modelin çevresindeki davranış — akış, zaman aşımları, yeniden denemeler, retler, hız sınırları ve arayüzün altındaki API — her dağıtımda gerçek bir tarayıcıda test edilir.