🕵️ AI Vision: Visual Regression Testi
AI Vision: Visual Regression Testi: AI vision triyajı, her milimetrelik değişikliği raporlayan bir lazer-ölçüm aleti değil, yenilenmiş bir evi gezen bir bina denetçisidir — ve me
AI vision triyajı, her milimetrelik değişikliği raporlayan bir lazer-ölçüm aleti değil, yenilenmiş bir evi gezen bir bina denetçisidir — ve mekanizma gevşek değil, birebir örtüşür: Percy veya Applitools gibi bir pixel-diff aracı tam olarak o lazerdir — değişen her pikseli mükemmel bir hassasiyetle ve sıfır yargıyla tespit eder. Bir denetçi ise tam olarak aynı farklara bakar ve tamamen farklı bir soru sorar: bu, taşıyıcı duvarı mı değiştiriyor, yoksa yeniden boyanmış bir kapı mı? Üzerinde durmaya değer soru şu: bir pixel-diff aracı zaten değişen HER pikseli mükemmel hassasiyetle yakalıyorsa, bir ekip neden bunun üzerine daha bulanık, daha az hassas bir AI yargısı katmanı istesin ki? Çünkü "değişti" ile "önemli" aynı gerçek değildir ve bir pixel-diff aracı bunları yapısal olarak ayırt edemez — 1 piksellik bir anti-aliasing kaymasını, kaybolmuş bir submit butonuyla TAM OLARAK aynı önem derecesiyle işaretler; bu da ya bir ekibi o kadar çok gürültüyle boğar ki uyarılar görmezden gelinir (ve gerçek bir regresyon o gürültüde kaybolur), ya da bir insanı her deploy'da her tek diff'i elle incelemeye zorlar. Java karşılaştırması: bu, iki serileştirilmiş nesnenin byte-byte karşılaştırılması (ham byte'lar üzerinde Arrays.equals — her şeyi yakalar, tek başına hiçbir anlam ifade etmez) ile bir ekibin iki nesnenin iç temsili farklı olsa bile anlamsal olarak eşit olduğunu söylemek için kendi yazdığı equals()/hashCode() override'ı arasındaki farktır — pixel-diff byte karşılaştırmasıdır, AI vision triyajı ise bir insanın gerçekten önemsediği anlamsal equals()'tır. QA açısından önemi: bu, Yargıç Oyun Alanı ve RAG Lab'daki tam olarak aynı rubrik-tabanlı yargılama ilkesidir, metin yerine görsellere uygulanmış hali — bir pixel-diff aracı kapsamlı, deterministik dedektör olarak kalmaya devam eder (asla kaldırılmamalı), üstüne eklenen bir AI triyaj katmanı ise bir insanın sonsuza kadar her tek ekran görüntüsünü elle incelemesi yerine otomatik bir önem-derecesi kararını mümkün kılan şeydir.
Pixel Diff vs Anlam Diff
Percy ve Applitools tam pixel karşılaştırması yapar — gerekli, deterministik bir temel, bir pixel-diff'in yakalayabileceği her şeyi yakalar ve bir pipeline'dan asla kaldırılmamalıdır. Ama tek başına çalıştırıldığında, herhangi bir dinamik içerikte ezici bir gürültü üretir: ortamlar arasında hafifçe farklı render edilen fontlar, anti-aliasing, zaman damgaları, animasyon zamanlaması. AI vision triyajı, işaretlenen aynı diff'i alır ve üstüne anlamsal-farkında bir soru sorar: bu kullanıcı deneyimini mi bozuyor, kozmetik mi, yoksa gürültü mü? Bu, pixel-diff'in ÜSTÜNE eklenen ikinci bir geçiştir, onun yerine geçen bir şey değil — tam olarak bu sayfanın kardeş dersindeki ilk sekmedeki "deterministik gate artı olasılıksal check" ayrımının aynısı.
Bu dersin gerçekte çalıştırdığı araç hakkında bir not: bu modülün orijinal fikri Anthropic'in Claude Vision'ını kullanıyordu, ama bu platformun production AI servisi Groq'tur ("Üretimde AI" dersine bak, nedeni orada) — bu yüzden aşağıdaki canlı analiz, aynı arayüzün arkasında Groq'un vision-destekli bir modelini çağırır: iki görsel girer, bir kategori ve tek cümlelik bir gerekçe çıkar. Aşağıda, kendi önce/sonra ekran görüntülerini gerçek, canlı bir sınıflandırma için yükle (giriş yapman gerekiyor — görsel token'lar metinden daha pahalıdır, bu yüzden bu çağrı Yargıç Oyun Alanı'nın canlı modunun aynı şekilde kısıtlanmıştır). Altında, tamamen çevrimdışı bir sınıflandırma oyunu, herkesin 3 yerleşik mockup UI diff'inde yükleme veya giriş gerektirmeden yargılama becerisini pratik yapmasını sağlar.
🎬 İki Ekran Görüntüsü Arasındaki Anlamlı Fark
Anlamlı mı, Gürültü mü?
Piksel-piksel bir diff aracı iki görüntü arasında %2 fark bulur — bu bir bug mu, yoksa font render farkı mı?
Klasik piksel-diff SADECE "bir şey değişti" der — hangi ANLAMDA değiştiğini bilmez, bir buton kaymasıyla anti-aliasing farkını ayırt edemez.
İki görüntü Claude Vision'a birlikte verilir: "buradaki fark kullanıcı için ANLAMLI mı, yoksa render gürültüsü mü?"
Claude ayırt eder: "submit butonu 15px sola kaymış, bu bir layout bug'ı" — ama "gölge rengi 1 ton farklı" gürültü olarak işaretlenir.
İlke: görsel regresyon testinin asıl maliyeti diff BULMAK değil, YÜZLERCE yanlış-pozitifi elemektir — vision modeli tam bu noktada devreye girer.
Adım Adım: Anlamlı Fark mı, Render Gürültüsü mü?
Piksel-diff bir fark bulur
Klasik araç %3 fark raporlar — ama bu sayı TEK BAŞINA hiçbir şey söylemez.