Sobes.tech
Junior

Papaskinkite apie mobiliuosius testus.

sobes.tech AI

Atsakymas iš AI

Mobiliųjų testavimas — tai procesas, kuriuo tikrinamos mobiliųjų programėlių funkcionalumas, našumas, naudotojo patogumas, suderinamumas ir saugumas įvairiuose įrenginiuose ir operacinėse sistemose.

Pagrindiniai mobiliųjų testavimo tipai:

  • Funkcinis testavimas: Patikrinama, ar visos programėlės funkcijos veikia pagal reikalavimus.
  • Našumo testavimas: Vertinama įkėlimo greitis, reagavimas, išteklių (baterijos, atminties) suvartojimas įvairiuose apkrovimuose.
  • Naudotojo patirties testavimas: Vertinama sąsajos intuityvumas, navigacijos paprastumas, pranešimų aiškumas.
  • Sudėtingumo testavimas: Patikrinama programėlės veikla skirtinguose įrenginiuose, operacinėse sistemose, ekrano raiškose, programinės įrangos versijose.
  • Saugumo testavimas: Patikrinama programėlės atsparumas grėsmėms, naudotojo duomenų apsauga.
  • Pertraukimų testavimas: Patikrinama programėlės elgsena gaunant skambučius, žinutes, pranešimus, keičiant tinklus.
  • Instaliacijos ir pašalinimo testavimas: Patikrinama instaliacijos, atnaujinimo ir pašalinimo proceso teisingumas.

Svarbūs aspektai testuojant mobiliąsias programėles:

  • Įrenginių fragmentacija: Didelis įrenginių, OS, versijų, ekrano raiškų, gamintojų įvairovė.
  • Įvairūs ryšio tipai: Wi-Fi, 3G, 4G, 5G, nestabilus ryšys.
  • Gestų naudojimas: Swipai, tapai, pincz-zoom, ilgai spaudžiant.
  • Išorinių įvykių poveikis: Skambučiai, žinutės, pranešimai, mažas baterijos įkrovimas, pereimas į foninį režimą.
  • Išteklių suvartojimas: Baterijos, procesoriaus, atminties apkrovos vertinimas.
  • Natyvios ir kryžminės platformos programėlės ypatumai: Skirtingi požiūriai į testavimą.

Įrankiai mobiliųjų testavimui:

  • Rankinis testavimas: Realiuose įrenginiuose ir emuliatoriuose/simuliatoriuose.
  • Automatizuotas testavimas: Aparatinės įrangos priklausomi karkasai: XCUITest (iOS), Espresso (Android). Kryžminės platformos karkasai: Appium, Calabash, EarlGrey. API testavimo įrankiai: Postman. Našumo stebėjimo įrankiai: Xcode Instruments, Android Profiler.

Pavyzdys automatizuoto testo naudojant Appium (Python):

# coding=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 galimybės
desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.android.calculator2',
    'appActivity': 'com.android.calculator2.Calculator',
    'automationName': 'UiAutomator2'
}

# vairuotojo inicijavimas
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

try:
    # surasti mygtuką '1' ir paspausti
    one_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/digit_1'))
    )
    one_button.click()

    # surasti '+' mygtuką ir paspausti
    plus_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'plus')
    plus_button.click()

    # surasti mygtuką '2' ir paspausti
    two_button = driver.find_element(MobileBy.ID, 'com.android.calculator2:id/digit_2')
    two_button.click()

    # surasti '=' mygtuką ir paspausti
    equals_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'equals')
    equals_button.click()

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

    # rezultatų patikrinimas
    assert result_text == '3', f"Laukiama '3', gauta '{result_text}'"
    print("Testas sėkmingai praėjo!")

except Exception as e:
    print(f"Klaida testavimo metu: {e}")

finally:
    # uždaryti sesiją
    if driver:
        driver.quit()

Mobiliųjų programėlių testavimas reikalauja suprasti platformų (iOS, Android) ypatybes ir atsižvelgti į įrenginių bei naudojimo scenarijų įvairovę. Automatizacija vaidina svarbų vaidmenį efektyviai apimant daugybę įrenginių ir OS versijų kombinacijų.