Sobes.tech
Junior

Rääkige mobiilitestimisest.

sobes.tech AI

Vastus AI-lt

Mobiiltestimine on protsess, mille käigus kontrollitakse mobiilirakenduste funktsionaalsust, jõudlust, kasutusmugavust, ühilduvust ja turvalisust erinevatel seadmetel ja operatsioonisüsteemidel.

Mobiilitestimise peamised tüübid:

  • Funktsionaalne testimine: Kontrollitakse, kas kõik rakenduse funktsioonid töötavad nõuetele vastavalt.
  • Jõudluse testimine: Hinnatakse laadimiskiirust, reageerimisaega, ressursside (akud, mälu) kasutust erinevate koormuste korral.
  • Kasutusmugavuse testimine: Hinnatakse kasutajaliidese intuitiivsust, navigatsiooni lihtsust, sõnumite arusaadavust.
  • Ühilduvuse testimine: Kontrollitakse rakenduse tööd erinevatel seadmetel, operatsioonisüsteemidel, ekraanisuurustel, firmware versioonidel.
  • Turvalisuse testimine: Kontrollitakse rakenduse vastupidavust ohtudele, kasutaja andmete kaitset.
  • Katkestuste testimine: Kontrollitakse rakenduse käitumist sissetulevate kõnede, sõnumite, teavituste, võrkude vahetamise ajal.
  • Paigaldamise ja eemaldamise testimine: Kontrollitakse paigaldus-, uuendus- ja eemaldusprotsesside õigsust.

Mobiilirakenduste testimise olulised aspektid:

  • Seadmete fragmentatsioon: Suur seadmete, OS-de, versioonide, ekraanisuuruste, tootjate mitmekesisus.
  • Erinevad ühendustüübid: Wi-Fi, 3G, 4G, 5G, ebastabiilne ühendus.
  • Žestide kasutamine: Svaipid, tapid, pihustamine, pikk vajutus.
  • Välistoimingute mõju: Kõned, sõnumid, teavitused, madal aku, taustarežiim.
  • Resursside kasutus: Aku, protsessori, mälu koormuse hindamine.
  • Natiivsete ja ristplatvormirakenduste eripärad: Erinevad lähenemised testimisele.

Tööriistad mobiilitestimiseks:

  • Käsitsi testimine: Reaalsetel seadmetel ja emulaatoritel/simulaatoritel.
  • Automatiseeritud testimine: Seadmetele sõltuvad raamistikud: XCUITest (iOS), Espresso (Android). Ristplatvormi raamistikud: Appium, Calabash, EarlGrey. API testimise tööriistad: Postman. Jõudluse jälgimise tööriistad: Xcode Instruments, Android Profiler.

Näide automatiseeritud testist Appiumi kasutades (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

# Androidi võimalused
desired_caps = {
    'platformName': 'Android',
    'platformVersion': '10',
    'deviceName': 'emulator-5554',
    'appPackage': 'com.android.calculator2',
    'appActivity': 'com.android.calculator2.Calculator',
    'automationName': 'UiAutomator2'
}

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

try:
    # leia nupp '1' ja vajuta
    one_button = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((MobileBy.ID, 'com.android.calculator2:id/digit_1'))
    )
    one_button.click()

    # leia '+' nupp ja vajuta
    plus_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'plus')
    plus_button.click()

    # leia '2' nupp ja vajuta
    two_button = driver.find_element(MobileBy.ID, 'com.android.calculator2:id/digit_2')
    two_button.click()

    # leia '=' nupp ja vajuta
    equals_button = driver.find_element(MobileBy.ACCESSIBILITY_ID, 'equals')
    equals_button.click()

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

    # tulemuse kontroll
    assert result_text == '3', f"Oodatud '3', saadud '{result_text}'"
    print("Test edukalt läbitud!")

except Exception as e:
    print(f"Viga testi ajal: {e}")

finally:
    # sulge sessioon
    if driver:
        driver.quit()

Mobiilirakenduste testimine nõuab arusaamist platvormide (iOS, Android) spetsiifikast ning seadmete ja kasutusstsenaariumide mitmekesisusest. Automatiseerimine mängib olulist rolli tõhusalt katmaks paljusid seadmete ja OS versioonide kombinatsioone.