3 Aralık 2017

Mobile Otomasyon Püf Noktaları ve Otomasyon Labarutavarı


Yazılım test otomasyonunda donanımsal bağımlılık arttıkça otomasyonun kompleksliği ve yapımı zorlaşıyor. Mobil otomasyon da bunlardan biri olup birden fazla fiziksel cihaz yönetimi ve bunların stabilize bir şekilde her Release öncesi otomasyon kontrollerinin yapılması ciddi bir mobil otomasyon stratejisi gerektiren işlerdendir.

Mobil otomasyonda gerçek fiziksel cihaz (Birçok akıllı telefon ve Tablet varyasyonu) ve bilgisayarlara ihtiyacınız vardır. Emülatör üzerinden yapılan testler her zaman sağlıklı olmayabilir ve gerçek sonucu vermeyebilir. Otomasyon yaptığınız Native mobil uygulamanın alt yapısı da çok önemlidir. İşte tüm bunları inceleyerek bir mobil otomasyon stratejisi kurmanız gerekir. Aşağıda Mobil otomasyon stratejisi için bazı püf noktalar sizler ile paylaşacağım.


* Mobil otomasyon Laboratuvarı diğer otomasyon cihaz ve ortamlarından ayrı ve tek olmalıdır.

* Desktop, Web ve Mobil cihazları aynı fiziksel sunucu da çalıştırmak konfigürasyon problemine yol açabilir ve bakım maliyetleriniz artabilir.

* Mobil telefonların versiyon güncellemesi, şarj problemleri, ısınma gibi çok donanımsal bakım masrafları oluyor. Bu yüzden işe başlarken birden fazla cihazla başlamak yerine kararlı telefonlar belirleyip mobil otomasyon alt yapısını buna göre dizayn etmeniz gerekir.

* Uygulamanızın aylık ziyaretçi ve hangi cihazdan ve Android versiyonundan girildiği ile ilgili istatistik bilgi tutun ve ilk 10 cihaz üzerine yoğunlaşın.

* Ekran Çözünürlüğü (Pixels) ve Ekran Boyutu (INÇ) aynı olan cihazlarda otomasyon koşmayınız. Örnekle LG G3 ve LG G4 cihazlarının Ekran Çözünürlüğü: 1440x2560 ve Ekran Boyutu: 5,5 INÇ olup ikisinde de otomasyon koşmak yerine yeni olan da (LG G4) otomasyon koşunuz. Diğer cihazı başka varyasyon seçiniz. Bu size zaman ve maliyet kazancı sağlayacaktır.

* Mobil otomasyon kontrollerini Release öncesi Emülatör(Sanal) bilgisayar yerine gerçek fiziksel telefonlarda yapınız.

* Mutlaka Mobil Native Application'a inceleyin ve PoC örnekleri yapınız. Eğer Locator-XPath değişkenlik gösteriyorsa Nesne bulma yönteminizi değiştiriniz her güncelleme sonrası XPath değişeceği için otomasyon çalışmayacaktır.

* PoC örnekleri basit şekilde tıklama, metin kontrol etme gibi steplerde oluşmasın, onun yerine aşağıdaki stepleri sunmaya veya sundurmaya çalışın;
- Başka bir Layout'a geçince bekleme ve tıklama
- Ekrana mesaj gelene kadar bekleme geldikten sonra mesaj yazma
- İki telefon arasındaki mesajlaşma veya iletişim steplerini otomasyonda yapma
- Ekranı kaydırma işlemleri ve iOS klavye, tarih kullanımı örnekleri
- Ekranda aynı olan metinden diğerini tıklattırma

* Execution Planlarınızı telefona göre kategorize ediniz. Sadece aynı ekran çözünürlüğü, aynı INÇ ve İşletim sistemi versiyonu olan telefonları bir tutmaya çalışınız.

* En çok kullanılan 5 telefon en kararlı otomasyon koşu cihazlarınız olsun.

Appium mobil Framework ücretsiz bir yazılım olup sadece Appium ile yola çıkmayınız. iOS cihazlarda problem yaşayacaksınızdır. Şunu bilmenizi isterim sadece Appium ile yapılan otomasyon ileri ye dönük verimsiz olacaktır. Lisanslı çözümleri incelemenizi tavsiye ederim.

* Appium Mobil Framework'ün aslında Selenium Web Browser Framework metotlarının mobil için uyarlanabilir duruma getirilmesi için yapılmış ara katman gibi düşünebilirsiniz.

* Native uygulamada nesne ararken Hidden(Gizli) nesneler her zaman False(Kapalı) olsun. Bunu Metot ve Keyword'lerinize kural olarak ekleyin. Bulmak istediğiniz nesne ekranda birden fazla varsa otomasyon da problemler yaşayacaksınız.

* Lisanlı Mobil Framework çözümlerinden Micro Focus Silk Mobile ürününü tavsiye edebilirim.

* Sadece Android cihazlar için ücretsiz Robotium Framework'ü incelemenizi tavsiye ederim. Belki Appium varyasyonunu kullanıp kullanmamak ile ilgili fikirlerinizi tekrar değerlendirebilirsiniz.

* Mobil otomasyon da sunucu ile mobil telefon arasında Kablosuz(Wifi Network) bağlantı çözümlerini araştırınız. Çünkü mobil otomasyon sektörü buraya doğru gidiyor.

* Mobil mimariyi OOP dillerinden Visual C# ile yazmanızı tavsiye ederim. Hem Deploy hemde başka Framework'leri mimariye bağlamada size kolaylık sağlayacaktır.

Burak AVCI