11 · Geliştirme notu · QA

QA: otomatik maçlar ve ağ simülasyonu

Her dalga aynı kapılardan geçiyor: kural testleri, ağ simülasyonu, menü regresyonu ve kare matrisi.

Bir kart oyununda en pahalı hata sessiz olandır: kural yanlış işler, kimse fark etmez, maç yanlış biter. Bunu önlemek için FrostZero'nun kural motoru dışarıdan koşulabilen bir test takımıyla çevrildi. Sayı ilk haftada seksendi, bugün yüz seksen üç test geçiyor ve sıfır test kalıyor.

Ağ tarafı için ayrı bir simülasyon aracı yazıldı. Tek bir süreçte bir sunucu ve birden çok istemci gerçek bağlantı üzerinden konuşuyor; araç otorite, gizlilik, ret ve kopma senaryolarını sırayla koşuyor. Yirmi altı ayrı koşu klasörü var ve her koşu kendi günlüğünü bırakıyor.

Bunun üstüne gerçek maç koşuları geliyor. Üç bağımsız oyun süreci aynı odaya bağlanıp otopilotla oynuyor, sonra günlükler karşılaştırılıyor. Bir koşuda yirmi dört turun tamamında üç istemci aynı tabloyu gösterdi, bozuk kararlar reddedildi ve kopan oyuncunun koltuğunu bot devraldı. İkinci oyun tarafında da yüz on iki karar noktasında sıfır uyuşmazlık çıktı.

Menü ve ekranlar için iki araç daha var. Biri menü akışlarını tıklayarak geziyor ve altmış bir kontrolü koşuyor; diğeri ekranları tek tek açıp kare yakalıyor ve aynı anda sayısal ölçüm yazıyor. Kare yakalama aracının içinde boş kare kapısı da var: yakalanan görüntü tek renge yakınsa ya da varyansı çok düşükse kare geçersiz sayılıyor, böylece sessizce siyah bir ekran raporlanamıyor.

Arayüz için ayrı bir denetim koşuyor. Metnin kesilmesi, kutuya sığmaması, ikon ölçeğinin kaçması ve uyarı renginin yanlış yerde kullanılması otomatik olarak aranıyor. Statik denetim iki yüz elli dörtten sıfır ihlale indi. Ağ paketlerinin gidiş dönüşü için de yirmi bir kontrolden oluşan ayrı bir tel denetimi var.

Bu notun yanındaki kareler de aynı araçla alındı. Bir dalganın kapanması için hepsinin aynı anda yeşil olması gerekiyor: derleme hatasız, kural testleri sıfır kalan, ağ simülasyonu geçer, menü regresyonu tam, arayüz denetimi sıfır kesilme ve sıfır taşma.