Sobes.tech
Middle

Rääkige kohalike rakenduste testimise omadustest.

sobes.tech AI

Vastus AI-lt

Natiivsete rakenduste testimine erineb veebirakenduste testimisest mitmete omaduste poolest:

  • Platvormi ja seadme sõltuvus. Rakendus arendatakse konkreetsele operatsioonisüsteemile (iOS, Android) ning arvestatakse riistvara omadusi, mis nõuab testimist erinevates seadmetes ja OS versioonides.
  • Süsteemi funktsioonide integreerimine. Rakendused kasutavad sageli GPS-i, kaamerat, teateid, kontakte ja teisi seadme funktsioone. Tuleb kontrollida nende korrektset tööd.
  • Erinevad paigaldus- ja levitamisviisid. Testida paigaldus- ja uuendusprotsesse ning rakenduse tööd pärast uuesti paigaldamist. Rakendused levitatakse App Store'i, Google Play kaudu, mis nõuab avaldamise ja uuendamise eripärade arvestamist.
  • Kasutajaliidese (UI) ja UX omadused. Kohandamine platvormi juhistele (Material Design Androidile, Human Interface Guidelines iOSile), žestide tugi (sviipid, pihustused).
  • Töö taustal ja katkestuste ajal. Testida rakenduse käitumist sissetulevate kõnede, sõnumite, rakenduste vahetamise ja ekraani lukustamise ajal.
  • Jõudlus ja ressursside kasutus. Baterii, mälu, CPU ja võrgu liikluse jälgimine.
  • Off-line režiim. Kontrollida funktsionaalsust, mis ei nõua internetiühendust, ning andmete sünkroniseerimist ühenduse taastamisel.
  • Turvatestimine. Kontrollida kasutajaandmete kaitset, autoriseerimist ja tundliku teabe töötlemist.
  • Automatiseerimine. Vajalikud on spetsiaalsed raamistikud (Appium, Espresso, XCUITest), mis erinevad veebiraamistikest.

Näited automatiseerimisvahenditest:

  • Android: Espresso (UI taseme testid), UI Automator (teiste rakenduste ja süsteemielementidega suhtlemiseks).
    // Näide Espresso kasutamisest nupu klõpsamiseks
    onView(withId(R.id.my_button))
        .perform(click());
    
  • iOS: XCUITest.
    // Näide XCUITest kasutamisest elemendi puudutamiseks
    XCUIApplication().buttons["My Button"].tap()
    
  • Krossplatvormne: Appium.
    # Näide Appium kasutamisest Pythoniga
    from appium import webdriver
    from appium.webdriver.common.appiumby import AppiumBy
    
    caps = {}
    caps["platformName"] = "Android"
    caps["appium:automationName"] = "UiAutomator2"
    caps["appium:deviceName"] = "emulator-5554"
    caps["appium:appPackage"] = "com.android.calculator2"
    caps["appium:appActivity"] = "com.android.calculator2.Calculator"
    
    driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
    
    el = driver.find_element(by=AppiumBy.ID, value="com.android.calculator2:id/digit_2")
    el.click()
    
    driver.quit()