Mobil Oyun Test Otomasyonu Nedir?

Mobil oyunlar, özellikle günümüzde çok talep gören uygulamalardır. Dünyada her gün milyonlarca insan akıllı cihazları üzerine beğendikleri oyunları indirip keyifli vakit geçiriyor. Bu durumda da mobil oyun yazılımı çıkarma sayısı her geçen gün artıyor. Her yazılım ürününde olduğu gibi mobil oyunların da test süreçlerine ihtiyaç duyulur ve bu durumda mobil oyunlar için geliştirilen test otomasyonları küçük, orta ve büyük ölçekteki yazılım hatalarını, uygulama üzerindeki geliştirmelerin hatasız çalışıp çalışmadığını en hızlı şekilde gösterecektir.

 

Kullanılan Araçlar ve Teknolojiler

Java Programlama dili

Maven Yapılandırma Aracı

TestNG Test Framework’ü

Appium Mobil Uygulama Otomasyonu Test Aracı

AltUnity Inspector ve AltUnity Driver

 

Kullanılacak Araç ve Teknolojiler Neler?

 

Java: Mobil oyun otomasyon betiklerini yazdığımız Nesne tabanlı programlama dilidir.

Maven: Otomasyon için gereken metotların jar dosyalarını, kütüphanemize bir pom.xml dosyası içinde, depencies (yani bağımlılıkları) kolaylıkla ekleyip bu metotlara erişmemizi sağlayan bir proje yapılandırma aracıdır.

TestNG: Test suitlerini proje içerisinde konfigüre etmemizi ve aynı zamanda paralel olarak da çalıştırmaya olanak sağlayan test framework’üdür.

Appium:

appium_keytorc_blog

1. Appium, Node.js ile yazılmış bir HTTP server’dır.

2. Java, Ruby, C#, PHP vs. programlama dillerinde bir Appium Client (istemci) tarafından yazılmış otomasyon betik kodları JSON formatta Appium Sunucusuna gelir ve mobil cihazda Appium Sunucusu ile çalıştırılır. Appium Sunucusunun önceden yüklenmiş ve kurulmuş olması gerekir ve bu sunucu, Appium Client (istemci) betikleri ile ayağa kalkar.

3. Mobil Cihaz üzerinde yazılmış betikler ile Appium Sunucusu tarafından çalıştırılan test senaryolarından sonra, mobil cihazdan Appium Sunucusuna HTTP formatta cevap gider.

4. Son olarak, Appium Sunucusu tarafından Appium İstemci’ye sonuçlar log olarak gider ve konsola yazılır.

 

AltUnity Tester ve AltUnity Inspector :

altunity_tester

 

AltUnity Tester

AltUnity Tester, açık kaynak bir test otomasyon aracıdır.

Unity ile yapılan oyunların UI test otomasyonları için yine UI objeleri bulmamıza yardımcı olur.

Bu otomasyon betiklerini Java, C# ve Python programlama dilleri ile yazabiliriz.

Otomasyonları mobil cihazlar üzerinde veya Unity içinde çalıştırabiliriz.

Oyun içindeki elementleri ve onların metinlerini, koordinatlarını, değerlerini, Unity parçalarını vb. yakalayabiliriz.

Ekran görüntüsü alabiliriz.

Appium ile entegre çalıştırabiliriz.

Unity Editör içinde test sonuç ve raporunu alabiliriz.

Test verilerini revize edebiliriz (manipülasyon).

 

Appium Kurulumu ve Mobile Oyun Otomasyonunda Kullanımı

Appium Sunucusu ile otomasyonu istenen mobil oyun uygulaması elle başlatmak yerine, otomasyon projesi içinden başlatılabilir.

 

Appium Kullanımı:

Proje (Java, C# ve Python) içerisinden gerekli Appium Capabilities yani gerekli appium uyumluluk parametreleri ayarlanır.

Bu uyumluluklardan bazıları:

Cihazın işletim sistemi

Cihazın ismi

Cihaz UDID numarası

Mobil oyun uygulaması paket ismi ve aktivite ismi

Appium sunucusuna bağlanmak için gerekli cihaz ip; 127.0.0.1 veya 0.0.0.0

AltUnity Sunucusu için gerekli port ve cihaz ip’ si vb. uyumluluk parametreleridir.

 

Böylece, Appium Sunucusu ile test otomasyon betikleri yazılmış uygulama hiçbir müdahale olmadan proje çalıştırıldığında cihaz üzerinde başlamış olacaktır. Mobil Oyun Projelerinde Test Otomasyon Süreçlerinin Önemi Oyunları test etmek, her yeni derlemede oluşabilecek hataların kapsamlı bir şekilde test edilmesini gerektiren ve her yeni sürüm ile tekrarlayan bir süreçtir. Oyunun her yeni prototipinde, teknik özelliklerdeki herhangi bir değişikliği, yeni test senaryolarını ve yeni yapılandırma desteğini güncellemek için test belgelerinin sık sık yeniden üzerinden geçilmesi gerekir. Her yeni sürüm ile farklı cihazlarda uyumluluk kontrollerinin gerçekleştirilmesi gerekir.

Piyasada bulunan mobil cihazların çeşitliliği göz önünde bulundurulduğunda yapılacak manuel test işlemlerinin her cihaz için tekrarlanacak olması durumu, aynı testlerin tek bir otomasyon betiği üzerinden tüm farklı cihazlar için koşulması durumu ile karşılaştırıldığında elde edilecek verim ve fayda projenin ölçeği ile doğrultulu olarak katlanacaktır.

Regresyon testi koşumlarının manuel gerçekleştirilmesi çok fazla zaman ve insan gücü gerektirir. Otomasyon ile, test uzmanlarının defalarca uçtan uca regresyon testi yapmak yerine yalnızca başarısız olan testleri doğrulaması bu eforu azaltmak için en uygun yöntemdir. Ayrıca, uygulamada bir değişiklik yapıldığında test senaryoları yeniden çalıştırılabilir. Otomasyon sayesinde geliştiriciler, uygulama testinin süresini ve maliyetini olumsuz yönde etkilemeden yeni uygulama özelliklerini entegre edebileceklerdir.

Test senaryolarının sayısı ve kapsamı arttıkça test koşum eforunda da aynı biçimde artış gerçekleşir. Artan bu eforu azaltmak için otomasyon ile bu koşumların insan faktöründen bağımsız ve daha hızlı hale getirilmesi ile mümkün olacaktır. Aşağıdaki görselde farklı test koşumlarına ait eforlar grafik üzerinden karşılaştırılabilir:

manual_vs_automation_test

Azalan test koşum eforu ve koşum sırasında insan faktöründen kaynaklı hataları ortadan kaldırarak daha verimli bir yazılım geliştirme yaşam döngüsüne olanak sağlayacaktır. Test eforlarından elde edilen bu kazanç geliştirici ekibin daha öncelikli işlemlere eforlarını yönlendirmesine yardımcı olacaktır.

Test otomasyonu için gerekli ilk yatırım maliyeti ve sonrasında operasyonel maliyetler ilk başta Manuel teste göre daha fazla masraf kalemi oluştururken, ilerleyen süreçte otomatikleştirilen test senaryolarının artması ile kazandırdığı zaman ve efor verimliliği ile uzun dönemde yapılan tüm bu harcamaların geri dönüşünün fazlası ile karşılanmasını sağlayacaktır. Aşağıdaki görselde Manuel ve Otomasyon Testlerine ait grafiği inceleyebilirsiniz:

test_otomasyon

Test otomasyon projeleri birer yazılım geliştirme aktivitesidir. Bu nedenle otomasyon kararını verirken yapılacak masrafların geri dönüşünün değerlendirilmesi bu yazılım geliştirme aktivitesinin başarısını ölçümlemede önemli bir metrik olarak karşımıza çıkar.

Etkili mobil oyun testi, iyi yapılandırılmış ve sistematik bir yaklaşımdan, test otomasyon çerçevesinin kullanımından ve çevik süreçler dahilinde sorunsuz bir entegrasyon ile sağlanır. Doğal olarak testlerin hedefi, hataları belirlemek ve geliştiricilerin bunları kaldırmasına yardımcı olmaktır. Bununla birlikte; verimli, sonuç odaklı testleri hedeflemek için, genel geliştirme sürecinin bir parçası olarak test otomasyonuna sahip olmak zorunludur.

 

Berk Toprakçı & Murat Ersoy