Geçti veya kaldı demek yetmez: 14 sonuca nasıl karar veriliyor
Kırmızı bir test, uygulamanın bozuk olduğu anlamına gelmelidir. Kırmızı aynı zamanda DNS'in anlık kesintiye uğradığı, sitenin CAPTCHA gösterdiği veya tarayıcının çöktüğü anlamına da gelebiliyorsa ekip, kırmızı sonuçları incelemek yerine testleri yeniden çalıştırmayı alışkanlık edinir ve gerçek kusur gürültüde kaybolur. Nexus Studio, her çalıştırmaya iki yerine 14 sonuçtan birini atar. Bu sayfa, motorun hangi sonucu nasıl seçtiğini karar sırasıyla açıklar ve yöntemin sınırlarını gösterir.
Nexus Studio ekibi, Verdict System LLC tarafından. 7 Ekim 2026.
14 sonuç kategorisi nelerdir?
14 sonuç kategorisi şunlardır: SECURE, CHAOS_RESILIENT, AUTO_RECOVER, FLAKY, PERFORMANCE_DEGRADED, A11Y_VIOLATION, SECURITY_VIOLATION, BREACHED, BREACHED_FLAKY, CHAOS_BREACHED, TIMEOUT, UNREACHABLE, BLOCKED ve CRASHED. Bunlar dört gruba ayrılır: başarılı, çekinceyle başarılı, uygulamada hata oluştu ve ortam veya test düzeneği hatalı olduğu için uygulama hakkında karar verilemedi.
Motor sonuç kategorisine nasıl karar verir?
Motor, sırasıyla şu üç soruyu sorar:
- Test herhangi bir sonuç üretti mi?
- Geçtiyse, sorunsuz mu geçti?
- Kaldıysa, hata kimde: test düzeneğinde mi, ortamda mı, uygulamada mı?
Yalnızca bir yanıt hata raporu niteliğindedir: uygulamadan kaynaklanan bir başarısızlık. Diğer tüm yanıtlar başka bir şey hakkında bilgi verir ve buna uygun bir ad alır.
Bir teste hangi durumlarda hiç sonuç kategorisi atanmaz?
Üç durum bu 14 sonuca dahil değildir, çünkü hiçbiri uygulamanız hakkında bir şey söylemez: SKIPPED (test hiç çalışmadı), INTERRUPTED (Ctrl+C, --max-failures sınırı veya genel zaman aşımı testi durdurdu) ve CONFIG_ERROR (test düzeneği testi başlatamadı). Bunların hiçbiri kanıt klasörü veya Geçmiş satırı oluşturmaz.
INTERRUPTED somut bir nedenle vardır. Bu durum olmadan, durdurulan bir test geçti dalına düşüyor ve SECURE olarak kaydediliyordu: hiç tamamlanmamış bir test için yeşil sonuç.
Başarılı bir test nasıl derecelendirilir?
- SECURE: ilk denemede geçti ve hiçbir şey onarılmadı.
- AUTO_RECOVER: geçti, ancak otomatik onarım bu testte bir seçiciyi değiştirmek zorunda kaldı. Testi yazan kişinin oluşturduğu konum belirleyici artık çalışmıyor ve sayfada yapılacak bir sonraki değişiklik test paketini gerçekten bozacak, bu nedenle onarımla geçen bir test asla sorunsuz olarak raporlanmaz. Özgün seçiciyi düzeltin.
- FLAKY: kaldı, ardından yeniden denemede geçti ve hiçbir şey onarılmadı. Uygulamada veya testte kararsız bir şey var ve hiçbir şey düzeltilmedi.
Bir istisna var: ilk deneme yalnızca süresi dolduğu için başarısız olmuş ve yeniden deneme geçmişse sonuç SECURE olur. Bu geçiş kararsızlığı değil, gecikmeyi gösterir.
Başarısız bir teste nasıl sonuç kategorisi atanır?
Bir test başarısız olduğunda motor, çalıştırmanın hata iletisini ve ağ günlüğünü okur ve bunları sabit bir sırayla örüntü gruplarıyla karşılaştırır. Eşleşen ilk grup sonucu belirler, dolayısıyla sıralama tasarımın bir parçasıdır.
- Önce CONFIG_ERROR:
Cannot find module, birReferenceErrorveyaSyntaxError, eksik bir ortam değişkeni, kurulum sırasında başarısız olan bir test hazırlığı. Test düzeneği hiç başlamadıysa sonraki tüm belirtiler bunun sonucudur. Örüntüler bilerek dar tutulur ve yalnızca test kodunun veya ortamının üretebileceği hatalarla sınırlıdır: fazladan tek bir CONFIG_ERROR bile uygulamanızdaki gerçek bir hata için test düzeneğini suçlar. - CRASHED:
Target closed,Page crashed, bir DevTools protokol hatası,SessionNotCreatedError, geçersiz bir oturum kimliği. Tarayıcı veya sürücü çöktü. Bu bir altyapı sorunudur: makineyi ve sürücüyü inceleyin. - BLOCKED: hatada veya ağ günlüğünde bir 403 ya da 429, bir CAPTCHA, erişim reddedildi sayfası veya motorun ekranda tanıdığı bir bot doğrulaması. Site kendini korudu ve istek ürününüze hiç ulaşmadı.
- UNREACHABLE: herhangi bir sayfa gözlemlenmeden ağ geçit vermedi: ad çözümlenemedi (Chromium'da
net::ERR_NAME_NOT_RESOLVED, Firefox'taNS_ERROR_UNKNOWN_HOST, WebKit'teCould not resolve hostname), bağlantı reddedildi veya makine çevrimdışıydı. Sertifika hatası bu gruba girmez: o bir bulgudur. - TIMEOUT: Playwright'ın
Timeout 30000ms exceedediletisi, Selenium'unWait timed out afteriletisi, birTimeoutErrorveya Playwright'ın zaman aşımına uğradı olarak işaretlediği bir test. Süresi dolan bir sayfaya gitme işlemi UNREACHABLE değil, TIMEOUT olur: işlem başladı ve sayfa yavaştı. - BREACHED_FLAKY: yukarıdakilerin hiçbiri durumu açıklamıyor ve test zaten yeniden denenmişti. Test başarısız oldu ve başarısızlığın kendisi tutarsız. Hata kaydı açmadan önce denemeleri karşılaştırın.
- BREACHED: tek bir denemede, yukarıdakilerin hiçbiri durumu açıklamıyor. Bir doğrulama başarısız oldu ve hatayı açıklayan herhangi bir ortam veya test düzeneği örüntüsü yok. Hata raporu budur.
Her grup hem Playwright hem de Selenium WebDriver ifadelerini kapsar. Selenium kalıpları eklenmeden önce, WebDriver kaynaklı bir TimeoutError ile güncel olmayan bir chromedriver'ın SessionNotCreatedError hatası, sanki uygulamada bir kusur varmış gibi BREACHED olarak raporlanıyordu.
Uykuya geçtiği veya kilitli olduğu için testi çalıştıramayan gerçek bir Android telefon da BLOCKED olarak değerlendirilir: bu, bir ürün hatası değil, karşılanmamış bir ön koşuldur. Bu kural, ölçümlerle belgelenmiş bir vakadan doğdu. Bir telefon test kampanyasının ortasında uykuya geçti ve art arda dört kez başarılı olan bir oturum açma testi, kritik düzeyde kırmızı bir sonuç verdi.
Kaos testlerinin çalıştırmaları nasıl değerlendirilir?
Çalıştırma sırasında Chaos Lab üzerinden arızalar enjekte edildiğinde, sonuç farklı bir soruyu yanıtlar: uygulama dayanabildi mi? Başarılı bir sonuç, yani SECURE veya AUTO_RECOVER, CHAOS_RESILIENT olur. FLAKY ile geçen bir test ve TIMEOUT dahil diğer tüm sonuçlar CHAOS_BREACHED olur; çünkü enjekte edilen bir arıza altında bunlar, arızanın etkisidir. SKIPPED, INTERRUPTED ve CONFIG_ERROR değişmez: çalıştırılmamış bir test, dayanıklılık hakkında hiçbir şey söylemez.
Hangi katı denetimler başarılı bir sonucu değiştirebilir?
Doğrulamalarınızın yanında üç denetim çalışır: güvenlik başlıkları, axe-core ile erişilebilirlik ve Web Vitals ile gecikmeli yükleme için performans bütçeleri. Her çalıştırmada bulgularını kaydederler. Sonucu yalnızca Ayarlar'da katı olarak ayarladığınızda değiştirirler. Mevcut bir uygulamada bunlardan herhangi biri, daha ilk günden tüm test kümesini kırmızıya çevirirdi; sürekli kırmızı olan bir test kümesinin sonuçlarını ise kimse okumaz.
Katı olduklarında, yalnızca başarılı olan testlere şu sırayla uygulanırlar: SECURITY_VIOLATION, A11Y_VIOLATION, PERFORMANCE_DEGRADED. Güvenlik önce gelir; çünkü bu üçü arasında, şikâyetten öte bir güvenlik olayına yol açabilecek olan odur. Başarısız bir testin sonucu asla daha üst bir uyarı düzeyine taşınmaz: BREACHED zaten daha ciddi bir durumu belirtir ve buna eklenecek bir uyarı, asıl bulguyu gölgeler.
CI ne görür?
Başarılı sayılan yedi sonuç 0 çıkış kodu verir: SECURE, AUTO_RECOVER, FLAKY, CHAOS_RESILIENT, PERFORMANCE_DEGRADED, A11Y_VIOLATION ve SECURITY_VIOLATION. Çekince, derleme hatası olarak değil, raporda ve Geçmiş'te gösterilir. Diğer yedi sonuç 1 çıkış kodu verir. pytest ve Selenium çalıştırıcıları, örneğin Python bulunmadığında veya kullanılan tarayıcı için motorun sürücüsü olmadığında, çalıştırma hiç başlayamazsa 2 çıkış kodu verir.
Yöntemin sınırları nelerdir?
- Sınıflandırma, hata metnini okur. Kendi yazdığınız bir ileti
403,ForbiddenveyaAccess Deniediçeriyorsa BLOCKED olarak,is not a functioniçeren bir hata ise CONFIG_ERROR olarak değerlendirilir. Özel doğrulama iletilerini duruma özgü yazın ve bir sonuç sizi şaşırttığında metadata.json dosyasını açın. - TIMEOUT, uygulamanın çalıştığının kanıtı değildir. Çalıştırmanın bunu belirleyemediğini söyler. Her çalıştırmada zaman aşımına uğrayan bir test incelenmeyi hak eder.
- FLAKY ile SECURE ve BREACHED_FLAKY ile BREACHED arasındaki farkı yeniden denemeler belirler. Yeniden denemeler kapalıyken, ara sıra ortaya çıkan bir başarısızlık BREACHED olarak değerlendirilir.
- API testlerinin, başka kurallara göre belirlenen kendilerine özgü yedi sonucu vardır: bkz. API testleri.
Gerçek bir hataya verilen sonuç kategorisini nerede görebilirim?
Kanıt sayfası, başarısız olan bir testi adım adım izler ve her sonucun diskinizde bıraktığı tüm dosyaları listeler: report.md, metadata.json, raw-data.json, bir ekran görüntüsü ve gerçek bir başarısızlık durumunda video. 30 günlük deneme sürümü, aynı motoru kendi testleriniz üzerinde çalıştırır.