Junior
Pasakokite apie mobiliuosius testus.
sobes.tech AI
Atsakymas iš AI
Mobilusis testavimas — tai procesas, skirtas mobiliųjų įrenginių (išmaniuosius telefonus, planšetinius kompiuterius) programinės įrangos kokybei patikrinti. Jis apima testavimą įvairiose platformose (Android, iOS), įrenginiuose, OS versijose, ekrano raiškose, tinklo sąlygose ir naudojimo scenarijuose:
Pagrindiniai mobiliojo testavimo aspektai:
- Funkcinis testavimas: Programėlės atitikimo reikalavimams ir specifikacijoms patikrinimas.
- Veikimo našumo testavimas: Greičio, atminties naudojimo ir baterijos sąnaudų vertinimas.
- Naudojimo patogumo testavimas (Usability testing): Sąsajos intuityvumo, navigacijos paprastumo ir bendros naudotojo patirties vertinimas.
- Suderinamumo testavimas: Programėlės veikimo patikrinimas skirtinguose įrenginiuose, OS versijose ir ekrano raiškose.
- Saugumo testavimas: Pažeidžiamumų nustatymas ir naudotojo duomenų apsauga.
- Pertraukėlių testavimas: Programėlės reakcijos į gaunamus skambučius, SMS, pranešimus ir kitus įvykius patikrinimas.
- Įdiegimo/pašalinimo testavimas: Programėlės teisingas įdiegimas ir visiškas pašalinimas.
- Lokalizacijos testavimas (daugia kalbių programėlėms): Teksto teisingas rodymas, datos ir laiko formatų patikrinimas skirtinguose regionuose.
- Prieinamumo testavimas (Accessibility testing): Programėlės naudojimo patogumo patikrinimas žmonėms su ribotomis galimybėmis.
Įrankiai mobiliajam testavimui:
- Rankinis testavimas: Fiziniai įrenginiai arba emuliatoriai/simuliai.
- Automatizuotas testavimas: Naudojant karkasus ir įrankius.
Populiarūs automatizavimo įrankiai:
- Appium:
// Paprastas testas naudojant Appium (Java) import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileElement; import io.appium.java_client.android.AndroidDriver; import org.openqa.selenium.remote.DesiredCapabilities; import java.net.MalformedURLException; import java.net.URL; public class SimpleAppiumTest { public static void main(String[] args) throws MalformedURLException { DesiredCapabilities cap = new DesiredCapabilities(); cap.setCapability("deviceName", "emulator-5554"); // Jūsų emuliatoriaus / įrenginio pavadinimas cap.setCapability("platformName", "Android"); cap.setCapability("appPackage", "com.android.calculator2"); // Testuojamos programėlės paketas cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Testuojamos programėlės aktyvumas AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap); // Pavyzdys: paspausti mygtuką '1' driver.findElementById("digit_1").click(); // ... tolesni veiksmai driver.quit(); // Baigti sesiją } } - Espresso (Android):
// Paprastas testas naudojant Espresso package com.example.myapp.test; import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.espresso.Espresso; import androidx.test.espresso.action.ViewActions; import androidx.test.espresso.matcher.ViewMatchers; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import static androidx.test.espresso.assertion.ViewAssertions.matches; import static androidx.test.espresso.matcher.ViewMatchers.withId; import static androidx.test.espresso.matcher.ViewMatchers.withText; @RunWith(AndroidJUnit4.class) public class SimpleEspressoTest { @Rule public ActivityScenarioRule<MainActivity> activityRule = new ActivityScenarioRule<>(MainActivity.class); // Veiklos paleidimas @Test public void testButtonClick() { // Surasti mygtuką pagal ID ir paspausti Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click()); // Surasti teksto lauką pagal ID ir patikrinti jo tekstą Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!"))); } } - XCUITest (iOS):
// Paprastas testas naudojant XCUITest (Swift) import XCTest class SimpleXCUIITest: XCTestCase { func testButtonPress() throws { // Programos inicijavimas let app = XCUIApplication() app.launch() // Surasti mygtuką ir paspausti let myButton = app.buttons["MyButtonIdentifier"] // ID arba žymė myButton.tap() // Surasti teksto lauką ir patikrinti jo reikšmę let myLabel = app.staticTexts["MyLabelIdentifier"] // ID arba žymė XCTAssertEqual(myLabel.label, "Button Pressed!") } }
Mobiliųjų testų ypatybės:
- Daug įrenginių ir OS versijų, reikalaujančių plataus testavimo fermos arba debesų paslaugų.
- Testavimas skirtingomis tinklo sąlygomis (Wi-Fi, 3G, 4G, 5G, neprisijungus).
- Pertraukčių ir foninių procesų valdymas.
- Sistemos išteklių naudojimo stebėjimas (CPU, RAM, baterija).
Emuliatoriai ir simuliatoriai naudojami pradiniam testavimui, tačiau galutinis testavimas turi būti atliekamas tikrų įrenginių, siekiant tiksliai įvertinti našumą ir naudotojo patirtį realiomis sąlygomis.