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()