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.