Sobes.tech
Junior

Rääkige mobiilitestimisest.

sobes.tech AI

Vastus AI-lt

Mobiiltestimine — see on protsess, mille käigus kontrollitakse mobiilseadmetele (nutitelefonid, tahvelarvutid) mõeldud tarkvara kvaliteeti. See hõlmab testimist erinevatel platvormidel (Android, iOS), seadmetes, OS versioonides, ekraanisuurustes, võrgutingimustes ja kasutusstsenaariumides:

Mobiiltestimise põhiaspektid:

  • Funktsionaalne testimine: Rakenduse vastavuse kontrollimine nõuetele ja spetsifikatsioonidele.
  • Jõudluse testimine: Kiiruse, mälu kasutamise ja aku laadimise hindamine.
  • Kasutusmugavuse testimine (Usability testing): Kasutajaliidese intuitiivsuse, navigatsiooni lihtsuse ja üldise kasutajakogemuse hindamine.
  • Ühilduvuse testimine: Rakenduse toimimise kontroll erinevates seadmetes, OS versioonides ja ekraanisuurustes.
  • Turvalisuse testimine: Haavatavuste avastamine ja kasutaja andmete kaitse.
  • Katkestuste testimine: Rakenduse reageerimine sissetulevatele kõnedele, SMS-idele, teavitustele ja teistele sündmustele.
  • Paigaldamise/kustutamise testimine: Rakenduse korrektne paigaldamine ja täielik eemaldamine.
  • Lokalisatsiooni testimine (mitmekeelsed rakendused): Teksti õige kuvamine, kuupäeva ja aja formaadid erinevates piirkondades.
  • Ligipääsetavuse testimine (Accessibility testing): Rakenduse kasutusmugavuse kontroll piiratud võimalustega inimestele.

Mobiiltestimise tööriistad hõlmavad:

  • Käsitsi testimine: Füüsiliste seadmete või emulaatorite/simulaatorite kasutamine.
  • Automatiseeritud testimine: raamistikud ja tööriistade kasutamine.

Populaarsed automatiseerimistööriistad:

  • Appium:
    // Lihtne test Appiumiga (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"); // Teie emulaatori/seadme nimi
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Testitava rakenduse pakett
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Testitava rakenduse aktiivsus
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Näide: vajuta nuppu '1'
            driver.findElementById("digit_1").click(); 
            
            // ... edasised tegevused
            
            driver.quit(); // Sessiooni sulgemine
        }
    }
    
  • Espresso (Android):
    // Lihtne test Espresso abil
    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); // Aktiivsuse käivitamine
    
        @Test
        public void testButtonClick() {
            // Leia nupp ID järgi ja vajuta
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // Leia tekstiväli ID järgi ja kontrolli selle teksti
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Lihtne test XCUITestiga (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Rakenduse käivitamine
            let app = XCUIApplication()
            app.launch()
    
            // Leia nupp ja vajuta
            let myButton = app.buttons["MyButtonIdentifier"] // ID või märgis
            myButton.tap()
    
            // Leia tekstiväli ja kontrolli selle väärtust
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID või märgis
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Mobiiltestimise spetsiifika hõlmab:

  • Palju seadmeid ja OS versioone, mis nõuavad laia testimisferma või pilveteenuseid.
  • Testimine erinevates võrgutingimustes (Wi-Fi, 3G, 4G, 5G, offline).
  • Katkestuste ja taustaprotsesside juhtimine.
  • Süsteemi ressursside (CPU, RAM, aku) kasutamise jälgimine.

Emulaatorid ja simulatsioonid kasutatakse algtaseme testimiseks, kuid lõplik test peab toimuma reaalsetel seadmetel, et saada täpne hinnang jõudlusele ja kasutajakogemusele reaalses keskkonnas.