Sobes.tech
Junior

Mobil testlash haqida gapiring.

sobes.tech AI

AIdan javob

Mobil testlar, mobil ilovalarni funksionallik, ishlash, qulaylik, moslik va xavfsizlik jihatidan turli qurilmalar va operatsion tizimlarda tekshirish jarayonidir.

Asosiy mobil test turlari:

  • Funktsional testlar: Ilovaning barcha funksiyalarining talablar asosida to'g'ri ishlashini tekshirish.
  • Ishlash testlari: Yuklamalar ostida yuklash tezligi, javob berish, resurslardan (batareya, xotira) foydalanishni baholash.
  • Foydalanuvchi uchun qulaylik testlari: Interfeysning intuitivligi, navigatsiya osonligi, xabarlarning tushunarli bo'lishi.
  • Moslik testlari: Ilovaning turli qurilmalarda, operatsion tizimlarda, ekran o'lchamlari, firmware versiyalarida ishlashini tekshirish.
  • Xavfsizlik testlari: Ilovaning tahdidlarga qarshi chidamliligi, foydalanuvchi ma'lumotlarini himoyalash.
  • To'xtash testlari: Kiruvchi qo'ng'iroqlar, xabarlar, bildirishnomalar, tarmoq o'zgarishlari paytida ilovaning xulqini tekshirish.
  • O'rnatish va o'chirish testlari: O'rnatish, yangilash va o'chirish jarayonlarining to'g'riligini tekshirish.

Mobil ilovalarni test qilishda asosiy nuqtalar:

  • Qurilma fragmentatsiyasi: Katta turdagi qurilmalar, operatsion tizimlar, versiyalar, ekran o'lchamlari, ishlab chiqaruvchilar.
  • Turli ulanish turlari: Wi-Fi, 3G, 4G, 5G, barqaror bo'lmagan ulanishlar.
  • Harakatlardan foydalanish: Swipes, taps, pinch-zoom, uzoq bosish.
  • Tashqi voqealarning ta'siri: Qo'ng'iroqlar, xabarlar, bildirishnomalar, batareyaning pastligi, fon rejimiga o'tish.
  • Resurslardan foydalanish: Batareya, protsessor, xotira yuklamasini baholash.
  • Nativ va kross-platforma ilovalarining xususiyatlari: Test yondashuvlari farq qiladi.

Mobil test uchun asboblar:

  • Qo'lda testlar: Haqiqiy qurilmalarda va emulyatorlar/simulyatorlar yordamida.
  • Avtomatlashtirilgan testlar: Qurilma bog'liq ramkalar: XCUITest (iOS), Espresso (Android). Kross-platforma ramkalar: Appium, Calabash, EarlGrey. API test uchun asboblar: Postman. Ishlashni monitoring qilish uchun asboblar: Xcode Instruments, Android Profiler.

Appium yordamida avtomatlashtirilgan test misoli (Python):

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

# drayverni ishga tushirish
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    # '1' tugmasini topib, bosish
    one_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/digit_1'))
    )
    one_button.click()

    # '+' tugmasini topib, bosish
    plus_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'plus')
    plus_button.click()

    # '2' tugmasini topib, bosish
    two_button = driver.find_element(MobileBy.ID, 'com.android.calculator2:id/digit_2')
    two_button.click()

    # '=' tugmasini topib, bosish
    equals_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'equals')
    equals_button.click()

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

    # natijani tekshirish
    assert result_text == '3', f"Kutilgan '3', olindi '{result_text}'"
    print("Test muvaffaqiyatli o'tdi!")

except Exception as e:
    print(f"Test davomida xato: {e}")

finally:
    # sessiyani yopish
    if driver:
        driver.quit()

Mobil ilovalarni test qilish platformalarning (iOS, Android) o'ziga xosligini tushunishni va turli qurilmalar hamda foydalanish senariylarini hisobga olishni talab qiladi. Avtomatlashtirish, qurilma va OS versiyalarining ko'plab kombinatsiyalarini samarali qamrab olish uchun muhim rol o'ynaydi.