Tarayıcı Uyumluluk Testi ve Bir Uygulaması


1. Uyumluluk Testi Nedir?

ISQTB’ye göre uyumluluk (compatibility); birbirleri ile bağlantısı olmayan bilgisayar sistemlerinin aynı ortamda (aynı donanımda) birbirlerinin davranışlarını etkilemeden (kaynakları çakışmadan), beklenildiği gibi çalışmasına denmektedir. Test açısından bakıldığında uyuyumluk testi, test ortamında yapılan güncellemeler sonrasında uygulamanın halen sorunsuz çalıştığının ve tüm fonksiyonlarını yerine getirdiğinin kanıtır. Bu boyuttan bakıldığında uyumluk testi hedef kullanıcı kitlesinin kendi ortamlarını göz önüne alarak kullanıcının yaşayabileceği görsel, fonksiyonel ve performans açısından oluşabilecek sıkıntıların keşfi olarak nitelendirilebilir.

Uyumluluk testinin amaçlarını şöyle özetleyebiliriz:
  • Test ortamıyla aynı ortamlarda uygulamanın herhangi bir fonksiyonunda çıkabilecek olası istenmeyen durumların tespit edilmesi
  • İşletim sistemi yaması ve/veya güncellenmesi neticesinde ortaya çıkan uygulamaların üzerine etkilerinin tespit edilmesi

Normal durumlarda uyumluluk testi sistem kabul testi ve kullanıcı kabul testinin başarılı bir şekilde tamamlanmasından sonra gerçeleştirilir.

2. Örnek E-Ticaret Sitesi Kullanıcı Ortamlarının Belirlenmesi


Test açısından risk oluşturan durumları test edebilmek ve müşteriye daha kaliteli hizmet verebilmek adına mevcut müşterilerin ortamlarını şu iki boyutta bakabiliriz; işletim sistemleri ve kullanılan tarayıcılarGoogle Analytic’ten elde edilen bilgiler kullanıcıların tarayıcı ve işletim sistemleri hakında gerekli bilgileri sunmaktadır. Buradan elde edilecek bilgiler belirli bir zaman aralığında alınacağınacaktır. Bu yüzden bu bilgiler ile kullanıcı eğilimleri elde edilerek kurulacak uyumluluk test ortamı değişen eğilimlere göre güncellenebilir. 

Bu çalışmadaki istatistiki bilgiler örnek bir siteye ait google analytic verileri manupule edilerek kullanılmıştır. Bu bilgiler gerçek veriler olmayıp, sadece teoriyi pratiğe dökmek adına yararlanılmıştır. Örnek sitenin müşterileri tarafından kullanılan işletim sistemi ve tarayıcı tiplerine bakıldıgında; 23 farklı işletim sistemi ve 40’dan fazla işletim sistemi sürümü, 51 çeşit tarayıcı ve 120’den fazla tarayıcı sürümü kullanmaktadır. Bu tabloda tüm ortamları gerçekleştirmek istenildiğinde yüzbinlerce test ortamı çıkabilir (23 x 51 x 120 = 140760). Bu durumda dahi tüm olasılıkları teste dahil etmemiş oluruz. ISQTB’ye göre ise %100 test imkansızdır! Risk analizi yapılarak bu durumu çözülebiliriz. Söz gelimi müşterilerin %95’nin kullanıcı ortamlarında uyuyumluluk testi yaparak %5’lik risk almak kullanılabilir ve yönetilebilir test hedefleri demektir.

İşletim sistemi ve tarayıcı bilgilerini bir kısmını aşağıda bulabilirsiniz.

Müşteri İşletim Sistem Oranı
 İşletim sistemi tablosuna bakıldığında sadece Windows işletim sisteminin tüm sürümlerini test etmek yeterli gibi görünmektedir (%95 güvenlik alanı düşünüldüğünde) fakat az da olsa Mac ve iPad makinelerinde ve Linux işletim sistemininde uyumluluğu test etmek firma imajı için önemlidir. Ayrıca büyüyen Android işletim sistemli mobil cihazların da gözden kaçmaması gerekli.

Müşteri Tarayıcı Kullanım Oranı
 Yine tarayıcı tablosuna bakıldığından listedeki ilk üç tarayıcı toplamda mevcut kullanıcı tarayıcılarınını yaklaşık %98’lik kısmını kapsamaktadır. Fakat burada ise Safari özellikle Macintosh işletim sisteminde tercih edildiğinden dolayı uyumluk testine tabi tutmak mantıklı olabilir. Geride kalan 50’den fazla tarayıcının büyük bir bölümü mobil cihazların kendi tarayıcılarıdır. Buralarda problemlerle karşılaşıldığında sorunlarının çözülmesi ve raporlanması gerekmektedir. Mobil kullanıcıların Opera Mini gibi mobil cihazların desteklediği tarayıcıların kullanılmasına yönlendirmek tarayıcı problemini çözebilir.

Tarayıcı/İşletim Sistemi Oranı
Tarayıcı ve işletim sistemini ortak gösteren tabloda ise Windows işletim sisteminde İnternet Explorer, Chrome ve Firefox kullanıcıların toplamı tüm kullanıcıların yaklaşık olarak %97’sini oluşturmaktadır. Fakat üstteki nedenlerden dolayı Linux, iPhone, Mac’de de uyuyumluluk testlerinin yapılması yarar saylacakyacaktır.

Bu bilgiler ışığında uyumluluk testinin gerçekleşmemiz gereken ortamlar bir matris üzerinde aşağıdaki gibi gösterebiliriz.

Test Ortamları


3. Uyumluluk Testi Ortamlarının Belirlenmesi

Uyumluluk testleri ancak olgunlaşmış test senaryoları üzerinde yapılabilir. Bu yüzden öncelikle test senaryolarını çıkarılmalı ve risk derecelendirmesi yapılmalıdır. Regresyon test caseler hazırlanıp koşturulmalıdır. Yukarıdaki tablodan da görülüceği üzere yaklaşık olarak 15 adet farklı test ortamının (Oracle Virtual Box veya Virtual Machine üzerinden 15 ayrı sanal makine oluşturularak yapılabilir) kurulması gerekmekte. Herbir test ortamında uyumluluk testlerinin yapılması gerekmektedir. Bu işin yapılması ciddi anlamda zaman ve emek isteyen bir süreç olup zaman zaman da güncellenmesi gerekmektedir. İş yükünün azaltılması  amacıyla bu testler otomatik olarak bazı test araçları üzerinden gerçekleştirilebilir.  Bu durumda aşağıdaki gereksinimler ortaya çıkmaktadır.
  1. Güçlü bir bilgisayar:  test makinesi - ubuntu 64 bit kurulu
  2. Kurmak istediğimiz ortamlar için işletim sistemi imajları
  3. Test otomasyon araçları
  4. Android simulatörü veya mobil android cihaz
  5. iPhone, iPad, Mac bilgisayar 

4. Uyumluk Test Seviyeleri

Projenin daha önceden hazırlanmış master test senaryolarını ve müşterinin kullanım ortamlarınını göz önüne aldığımızda üç farklı test seviyesinde: Partial Coverage, Full Coverage ve Sanity Test adı altında uyumluluk testlerini yapmak  gerekir. Genel olarak bu testler, kapsadığı ortamların miktarı (%) ve kapsadığı test caselerin öncelik seviyesiyle (Priority: Critical, High, Medium, Low) değerlendirilmelidir. Bu test seviyeleri aşağıdaki gibi yapılmalıdır. 

4.1. Partial Coverage 

Test ortamların %95’inde en az ana test caselerin koşturulması. (Regresyon test caselerin içerisinde önem sıra en üstte olanları, Priority = Critical)

Partial Coverage Test Ortamları

4.2. Full Coverage
  
Test ortamların %90’nında tüm master test senaryolarının koşturulması yani alttaki listeye Partial Coverage’da koşturulan Priority=Critical olanlarda dahildir.

Full Coverage Test Ortamları

4.3. Sanity Test
 
Sanity test uygulama üzerinde temel fonksiyonlara bakılarak hızla yapılan ve sonucu göre test durdurmaya ya da devam ettirmeye karar verilecek test seviyesidir. Ana test caseleri bir ortamda test etmek yeterlidir.

4.4. Unsupported Region (Destek Verilmeyen)
  
Full coverage testininde kapsamadığı ortamlardaki test caseleri test edilemeyeceği için bu bölgeye destek verilememektedir. Bu bölge risk analizine göre belirlediğimiz ve risk almakta çok fazla problem görmediğimiz kombinasyonları kapsamaktadır.


Comments

Popular posts from this blog

Selenium Error "Element is not currently interactable and may not be manipulated"

Change Default Timeout and Wait Time of Capybara

Page-Object Pattern for Selenium Test Automation with Python

Performance Testing on CI: Locust is running on Jenkins

How to Set Shared Preferences in Espresso Test for Kotlin and Java