Sobes.tech
Junior

Mobil testleri hakkında bilgi verin.

sobes.tech yapay zeka

AI'dan gelen yanıt

Mobil testler, mobil uygulamaların fonksiyonellik, performans, kullanılabilirlik, uyumluluk ve güvenlik açısından farklı cihazlar ve işletim sistemleri üzerinde kontrol edilmesi sürecidir.

Ana mobil test türleri:

  • Fonksiyonel testler: Uygulamanın tüm fonksiyonlarının gereksinimlere uygun çalışıp çalışmadığının doğrulanması.
  • Performans testleri: Yük altında yükleme hızı, yanıt verme süresi, kaynak kullanımı (pil, bellek) değerlendirmesi.
  • Kullanılabilirlik testleri: Arayüzün sezgisel olup olmadığı, gezinmenin kolaylığı, mesajların kullanıcıya anlaşılır olması.
  • Uyumluluk testleri: Uygulamanın farklı cihazlar, işletim sistemleri, ekran çözünürlükleri, firmware sürümlerinde çalışıp çalışmadığının kontrolü.
  • Güvenlik testleri: Uygulamanın tehditlere karşı dayanıklılığı, kullanıcı verilerinin korunması.
  • Kesinti testleri: Gelen aramalar, mesajlar, bildirimler, ağ geçişleri sırasında uygulamanın davranışının kontrolü.
  • Kurulum ve kaldırma testleri: Kurulum, güncelleme ve kaldırma işlemlerinin doğru şekilde yapıldığının doğrulanması.

Mobil uygulama testlerindeki temel noktalar:

  • Cihaz fragmentasyonu: Çok çeşitli cihazlar, işletim sistemleri, sürümler, ekran çözünürlükleri, üreticiler.
  • Farklı bağlantı türleri: Wi-Fi, 3G, 4G, 5G, kararsız bağlantılar.
  • Hareket kullanımı: Kaydırmalar, dokunuşlar, pinç ile yakınlaştırma, uzun basmalar.
  • Dış olayların etkisi: Aramalar, mesajlar, bildirimler, düşük pil, arka plana geçiş.
  • Kaynak tüketimi: Pil, işlemci, bellek üzerindeki yükün değerlendirilmesi.
  • Yerel ve çapraz platform uygulamaların özellikleri: Test yaklaşımları farklıdır.

Mobil test araçları:

  • Manuel testler: Gerçek cihazlar ve emülatörler/simülatörler üzerinde.
  • Otomasyon testleri: Donanım bağımlı frameworkler: XCUITest (iOS), Espresso (Android). Çapraz platform frameworkleri: Appium, Calabash, EarlGrey. API test araçları: Postman. Performans izleme araçları: Xcode Instruments, Android Profiler.

Appium kullanılarak otomatikleştirilmiş test örneği (Python):

# utf-8 kodlaması
from appium import webdriver
from appium.webdriver.common.mobileby import MobileBy
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Android için özellikler
desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.android.calculator2',
    'appActivity': 'com.android.calculator2.Calculator',
    'automationName': 'UiAutomator2'
}

# sürücü başlatma
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    # '1' düğmesini bul ve tıkla
    one_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/digit_1'))
    )
    one_button.click()

    # '+' düğmesini bul ve tıkla
    plus_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'plus')
    plus_button.click()

    # '2' düğmesini bul ve tıkla
    two_button = driver.find_element(MobileBy.ID, 'com.android.calculator2:id/digit_2')
    two_button.click()

    # '=' düğmesini bul ve tıkla
    equals_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'equals')
    equals_button.click()

    # sonucu al
    result_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/result'))
    )
    result_text = result_element.text

    # sonucu doğrula
    assert result_text == '3', f"Beklenen '3', alınan '{result_text}'"
    print("Test başarıyla geçti!")

except Exception as e:
    print(f"Test sırasında hata: {e}")

finally:
    # oturumu kapat
    if driver:
        driver.quit()

Mobil uygulama testleri, platformların (iOS, Android) özelliklerini anlamayı ve çeşitli cihazlar ile kullanım senaryolarını dikkate almayı gerektirir. Otomasyon, cihaz ve işletim sistemi sürümlerinin birçok kombinasyonunu etkin şekilde kapsamak için önemli bir rol oynar.