Sobes.tech
Junior

Mobil testləşdirmə haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

Mobil testinq, mobil tətbiqlərin funksionallıq, performans, istifadə rahatlığı, uyğunluq və təhlükəsizlik baxımından müxtəlif cihazlar və əməliyyat sistemlərində yoxlanılması prosesidir.

Əsas mobil test növləri:

  • Funksional test: Tətbiqin bütün funksiyalarının tələblərə uyğun işləməsinin yoxlanılması.
  • Performans testi: Yükləmə sürəti, cavab müddəti, resurs istifadəsi (batareya, yaddaş) müxtəlif yüklərdə qiymətləndirmə.
  • İstifadə rahatlığı testi: İnterfeysin intuitivliyi, naviqasiyanın asanlığı, istifadəçi üçün mesajların aydınlığı.
  • Uyğunluq testi: Tətbiqin müxtəlif cihazlarda, əməliyyat sistemlərində, ekran həllərində, firmware versiyalarında işləməsinin yoxlanılması.
  • Təhlükəsizlik testi: Tətbiqin təhlükələrə qarşı dayanıqlılığı, istifadəçi məlumatlarının qorunması.
  • Əngəllər testi: Gələn zənglər, mesajlar, bildirişlər, batareyanın aşağı səviyyəsi, şəbəkələr arasında keçid zamanı tətbiqin davranışının yoxlanılması.
  • Quraşdırma və silmə testi: Quraşdırma, yeniləmə və silmə proseslərinin düzgünlüyünün yoxlanılması.

Mobil tətbiqlərin testində əsas diqqət yetirilən məqamlar:

  • Cihazların müxtəlifliyi: Çoxsaylı cihazlar, əməliyyat sistemləri, versiyalar, ekran həlləri, istehsalçılar.
  • Fərqli əlaqə növləri: Wi-Fi, 3G, 4G, 5G, qeyri-sabit əlaqə.
  • Hərəkətlərin istifadəsi: Sürüşdürmələr, toxunuşlar, pincz-zoom, uzun basma.
  • Xarici hadisələrin təsiri: Zənglər, mesajlar, bildirişlər, batareyanın aşağı səviyyəsi, fon rejiminə keçid.
  • Resursların istifadəsi: Batareya, prosessor, yaddaş yüklənməsinin qiymətləndirilməsi.
  • Native və çoxplatformalı tətbiqlərin xüsusiyyətləri: Test üçün müxtəlif yanaşmalar.

Mobil test üçün alətlər:

  • Əl ilə test: Real cihazlarda və emulatorlar/simulyatorlarda.
  • Testin avtomatlaşdırılması: Hardware-ə bağlı çərçivələr: XCUITest (iOS), Espresso (Android). Çoxplatformalı çərçivələr: Appium, Calabash, EarlGrey. API test alətləri: Postman. Performans izləmə alətləri: Xcode Instruments, Android Profiler.

Appium istifadə edilərək avtomatlaşdırılmış test nümunəsi (Python):

# kodlama=utf-8
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 üçün imkanlar
desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.android.calculator2',
    'appActivity': 'com.android.calculator2.Calculator',
    'automationName': 'UiAutomator2'
}

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

try:
    # '1' düyməsini tap və bas
    one_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/digit_1'))
    )
    one_button.click()

    # '+' düyməsini tap və bas
    plus_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'plus')
    plus_button.click()

    # '2' düyməsini tap və bas
    two_button = driver.find_element(MobileBy.ID, 'com.android.calculator2:id/digit_2')
    two_button.click()

    # '=' düyməsini tap və bas
    equals_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'equals')
    equals_button.click()

    # nəticəni əldə et
    result_element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/result'))
    )
    result_text = result_element.text

    # nəticəni yoxla
    assert result_text == '3', f"Gözlənilən '3', alınan '{result_text}'"
    print("Test uğurla keçdi!")

except Exception as e:
    print(f"Test zamanı xəta: {e}")

finally:
    # sessiyanı bağla
    if driver:
        driver.quit()

Mobil tətbiqlərin test edilməsi platformanın (iOS, Android) xüsusiyyətlərinin anlaşılmasını və müxtəlif cihazlar və istifadə ssenarilərinin nəzərə alınmasını tələb edir. Avtomatlaşdırma, cihaz və OS versiyalarının çoxsaylı kombinasiyalarını effektiv şəkildə əhatə etmək üçün vacibdir.