Oyun Testinde UI Otomasyon Neden Başarısız Oluyor
Geliştirdiğin oyunda UI testini nasıl yapıyorsun?
Oyun stüdyolarında test ekipleri UI otomasyon araçlarından kaçınıyor. Sebep basit değil: oyunlar web uygulamaları değil.
Web'de Selenium, Cypress gibi araçlar piksel-mükemmel bir arayüzü test ediyor. Her buton aynı yerde, aynı görünüşte. Oyunlarda durum farklı. 3D kamerası hareket ediyor, metin dinamik ölçekleniyor, ekran çözünürlüğü değişiyor. Bir Android telefonunda çalışan menü, başka bir cihazda kırılabilir. Otomasyon aracı bunu nasıl tutarlı şekilde test edecek?
Bu yüzden çoğu stüdyo manuel testçiye güveniyor. Oyunun her sürümünde insan oturup menüleri tıklıyor, seçenekleri denetiyor. Yavaş, hatalı, tekrarlı, ama güvenilir. Otomasyon yazmanın maliyeti, sağladığı faydayı geride bırakıyor.
Aslında çözüm var, ama pahalı. Unity ve Unreal gibi motorlar kendi test framework'lerini sunuyor. UI Toolkit (Unity) ya da Slate (Unreal) ile yazılmış arayüzler, kod düzeyinde test edilebiliyor. Fakat bu, projenin başından itibaren planlama gerektiriyor. Ortada kalan bir projeye eklenmesi, baştan yazılmaktan farksız.
Bir başka engel: görsel regresyon. Oyunda bir karakterin konuşma balonu yanlış konumda çıktığında, test bunu "başarısız" olarak işaretleyebilir mi? Pixel-perfect karşılaştırma çoğu zaman yanlış pozitif verir. Işığın açısı, anti-aliasing, platform farkı, küçük değişiklikler testi kırar.
Sonuç: oyun sektörü UI testini yine de elle yapıyor, ama akıllıca. Kritik yollar (oturum açma, ödeme, ana menü) otomasyona alınıyor. Geri kalan, QA ekibi tarafından kontrol listesiyle test ediliyor. Hibrit yaklaşım daha ucuz ve etkili çıkıyor.
Uygulamaya geçmek isteyenlere: eğer oyun motorunuz UI Toolkit ya da benzer yapılandırılmış sistem kullanıyorsa, test yazın. Değilse, önce test stratejisini belirle. Her UI parçası otomasyon değer taşımıyor.
3 yorum
manuel test çok yorucu ya özellikle her güncellemeyle yeniden aynı şeyleri tıklamak
otomasyon yazsa bile kamera açısı değişince ekran görüntüsü bambaşka oluyor aynı buton başka yerde görünüyor manuel test zor ama en azından insan bu menü bozuk diye anlıyor
işte bu yüzden bazı stüdyolar görüntü tanımadan çok input based test yazmaya başladı butonun pikseliyle ilgilenmiyorlar sadece tıklandığında ne olduğuna bakıyorlar