Sobes.tech
Middle

Papaskokite apie vietinių programėlių testavimo ypatybes.

sobes.tech AI

Atsakymas iš AI

Natyvios programėlės testavimas turi keletą ypatybių, palyginti su internetinėmis programėlėmis:

  • Priklausomybė nuo platformos ir įrenginio. Programėlė kuriama konkrečiai OS (iOS, Android) ir atsižvelgiama į aparatūros ypatybes, todėl reikalingas testavimas skirtinguose įrenginiuose ir OS versijose.
  • Sistemos funkcijų integracija. Programėlės dažnai naudoja GPS, kamerą, pranešimus, kontaktus ir kitas įrenginio funkcijas. Reikia patikrinti jų teisingą veikimą.
  • Įdiegimo ir platinimo būdai. Testuoti įdiegimo, atnaujinimo procesus, programėlės veikimą po iš naujo įdiegimo. Programėlės platinamos per App Store, Google Play, todėl reikia atsižvelgti į publikavimo ir atnaujinimo ypatybes.
  • Vartotojo sąsajos (UI) ir UX ypatybės. Pritaikymas pagal platformos gaires (Material Design Android, Human Interface Guidelines iOS), gestų palaikymas (swipes, pinch).
  • Veikimas fone ir per pertraukas. Testuoti programėlės elgseną skambučio, žinučių, kitų programėlių perjungimo, ekrano užrakinimo metu.
  • Veikimo našumas ir išteklių suvartojimas. Stebėti baterijos, atminties, CPU, tinklo srauto naudojimą.
  • Neprisijungus prie interneto režimas. Patikrinti funkcionalumą, kuris nereikalauja interneto ryšio, duomenų sinchronizaciją atstatymo metu.
  • Saugumo testavimas. Patikrinti naudotojo duomenų apsaugą, autorizaciją, jautrios informacijos tvarkymą.
  • Automatizacija. Reikalaujama specializuotų framework'ų (Appium, Espresso, XCUITest), kurie skiriasi nuo internetinių framework'ų.

Pavyzdžiai automatizavimo įrankių:

  • Android: Espresso (UI lygio testai), UI Automator (sąveika su kitomis programėlėmis ir sisteminiais elementais).
    // Pavyzdys naudojant Espresso mygtuko paspaudimui
    onView(withId(R.id.my_button))
        .perform(click());
    
  • iOS: XCUITest.
    // Pavyzdys naudojant XCUITest elemento paspaudimui
    XCUIApplication().buttons["My Button"].tap()
    
  • Kryžminės platformos: Appium.
    # Pavyzdys naudojant Appium su Python
    iš appium importuoti webdriver
    iš appium.webdriver.common.appiumby importuoti 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()