Sobes.tech
Junior

Мобилдик тестирөө жөнүндө айтыңыз.

sobes.tech AI

AIден жооп

Мобилдик тестирлөө — бул мобилдик түзүлүштөргө (акылдуу телефондар, планшеттер) арналган программалык камсыздоонун сапатын текшерүү процесси. Ал ар кандай платформаларда (Android, iOS), түзүлүштөрдө, ОЖ версияларында, экран чечимдеринде, тармактык шарттарда жана колдонуу сценарийлеринде тестирлөөнү камтыйт:

Мобилдик тестирлөөнүн негизги аспектилери:

  • Функционалдык тестирлөө: Тиркеменин талаптарга жана спецификацияларга ылайыктуулугун текшерүү.
  • Иштөө ылдамдыгын тестирлөө: Жылдамдыкты, эс тутумду жана батареяны керектөөнү баалоо.
  • Колдонуу ыңгайлуулугун тестирлөө (Usability testing): Интерфейсдин интуитивдүүлүгүн, навигациянын жеңилдигин жана жалпы колдонуучу тажрыйбасын баалоо.
  • Туташтыктуулукту тестирлөө: Тиркеменин ар кандай түзүлүштөрдө, ОЖ версияларында жана экран чечимдеринде иштешин текшерүү.
  • Коопсуздукту тестирлөө: Атаандаштык кемчиликтерди аныктоо жана колдонуучунун маалыматтарын коргоо.
  • Бөлүнүүлөрдү тестирлөө: Тиркеменин кирүү чалуу, SMS, билдирүүлөр жана башка окуяларга реакциясын текшерүү.
  • Орнотуу/жок кылууну тестирлөө: Тиркеменин туура орнотулушу жана толук жок кылынуусун текшерүү.
  • Локализацияны тестирлөө (көп тилдүү колдонмолор үчүн): Тексттин туура көрсөтүлүшү, датасы жана убактысынын форматтары ар кандай региондор үчүн.
  • Жеткиликтүүлүктү тестирлөө (Accessibility testing): Чектелген мүмкүнчүлүктөрү бар адамдар үчүн колдонмонун ыңгайлуулугун текшерүү.

Мобилдик тестирлөө үчүн инструменттер:

  • Кол менен тестирлөө: Физикалык түзүлүштөрдү же эмуляторлор/симуляторлорду колдонуу.
  • Автоматташтырылган тестирлөө: Фреймворктарды жана инструменттерди колдонуу.

Автоматташтыруу үчүн популярдуу инструменттер:

  • Appium:
    // 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"); // Эмулятордун/түзүлүштүн аты
            cap.setCapability("platformName", "Android");
            cap.setCapability("appPackage", "com.android.calculator2"); // Тесттелүүчү колдонмонун пакети
            cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Тесттелүүчү колдонмонун активдүүлүгү
    
            AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
    
            // Мисал: '1' батырмасын басуу
            driver.findElementById("digit_1").click(); 
            
            // ... кийинки аракеттер
            
            driver.quit(); // Appium сессиясын жабуу
        }
    }
    
  • Espresso (Android):
    // Жөнөкөй тесттин мисалы 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); // Иштетүүчү активдүүлүк
    
        @Test
        public void testButtonClick() {
            // ID аркылуу батырманы табуу жана басуу
            Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click());
    
            // ID аркылуу тексттик талааны табуу жана анын мазмунун текшерүү
            Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!")));
        }
    }
    
  • XCUITest (iOS):
    // Жөнөкөй тесттин мисалы XCUITest үчүн (Swift)
    import XCTest
    
    class SimpleXCUIITest: XCTestCase {
    
        func testButtonPress() throws {
            // Колдонмонун башталуы
            let app = XCUIApplication()
            app.launch()
    
            // Батырманы табуу жана басуу
            let myButton = app.buttons["MyButtonIdentifier"] // ID же лейбл
            myButton.tap()
    
            // Тексттик талааны табуу жана анын маанисин текшерүү
            let myLabel = app.staticTexts["MyLabelIdentifier"] // ID же лейбл
            XCTAssertEqual(myLabel.label, "Button Pressed!")
        }
    }
    

Мобилдик тестирлөөнүн өзгөчөлүктөрү:

  • Көптөгөн түзүлүштөр жана ОЖ версиялары, бул кең тесттик ферма же булуттык кызматтарды талап кылат.
  • Төртүнчү шарттарда тестирлөө (Wi-Fi, 3G, 4G, 5G, офлайн).
  • Бөлүнүүлөр жана фондук процесстерди башкаруу.
  • Жүйө ресурстарын керектөө (CPU, RAM, батарея).

Эмуляторлор жана симуляторлор баштапкы тестирлөө үчүн колдонулат, бирок акыркы тестирлөө реалдуу түзүлүштөрдө жүргүзүлүшү керек, так баалоо үчүн иштөө жана колдонуучу тажрыйбасы чын шарттарда.