Junior
Mobil testlash haqida gapiring.
sobes.tech AI
AIdan javob
Mobil testlash - bu mobil qurilmalar uchun ishlab chiqilgan dasturiy ta'minot sifatini tekshirish jarayonidir (smartfonlar, planshetlar). Bu turli platformalarda (Android, iOS), qurilmalarda, OS versiyalarida, ekran o'lchamlarida, tarmoq sharoitlarida va foydalanish ssenariylarida test qilishni o'z ichiga oladi.
Mobil testlashning asosiy jihatlari:
- Funktsional testlash: Dastur talablari va spetsifikatsiyalariga mosligini tekshirish.
- Ishlash tezligini testlash: Tezlik, xotira va batareya iste'molini baholash.
- Foydalanuvchi qulayligini testlash (Usability testing): Interfeysning intuitivligi, navigatsiya osonligi va umumiy foydalanuvchi tajribasini baholash.
- Mos keluvchanlikni testlash: Dastur turli qurilmalarda, OS versiyalarida va ekran o'lchamlarida ishlashini tekshirish.
- Xavfsizlikni testlash: Zaif joylarni aniqlash va foydalanuvchi ma'lumotlarini himoyalash.
- To'xtashlarni testlash: Dasturga kiruvchi qo'ng'iroqlar, SMSlar, bildirishnomalar va boshqa voqealarga javobini tekshirish.
- O'rnatish/ochirishni testlash: Dastur to'g'ri o'rnatilishi va to'liq o'chirilishini tekshirish.
- Lokatsiya testlash (ko'p tilli dasturlar uchun): Matn, sana va vaqt formatlarining turli mintaqalar uchun to'g'ri ko'rsatilishini tekshirish.
- Kirish imkoniyatlarini testlash (Accessibility testing): Cheklovlari bo'lgan odamlar uchun dasturdan foydalanishni tekshirish.
Mobil testlash uchun asboblar:
- Qo'lda testlash: Jismoniy qurilmalar yoki emulatorlar/simulyatorlardan foydalanish.
- Avtomatlashtirilgan testlash: Frameworklar va asboblardan foydalanish.
Mobil testlash uchun mashhur avtomatlashtirish asboblari:
- Appium:
// Appium bilan oddiy test misoli (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"); // Emulator/ qurilma nomi cap.setCapability("platformName", "Android"); cap.setCapability("appPackage", "com.android.calculator2"); // Test qilinayotgan ilovaning paketi cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Test qilinayotgan ilovaning faoliyati AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap); // Interaksiya misoli: '1' tugmasini bosish driver.findElementById("digit_1").click(); // ... keyingi harakatlar driver.quit(); // Appium sessiyasini yopish } } - Espresso (Android):
// Espresso bilan oddiy test misoli 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); // Ishga tushiriladigan faoliyat @Test public void testButtonClick() { // Tugmani ID bo'yicha topish va bosish Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click()); // Matn maydonini ID bo'yicha topish va uning matnini tekshirish Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!"))); } } - XCUITest (iOS):
// XCUITest bilan oddiy test misoli (Swift) import XCTest class SimpleXCUIITest: XCTestCase { func testButtonPress() throws { // Ilovani ishga tushirish let app = XCUIApplication() app.launch() // Tugmani topish va bosish let myButton = app.buttons["MyButtonIdentifier"] // ID yoki etiketka myButton.tap() // Matn maydonini topish va qiymatini tekshirish let myLabel = app.staticTexts["MyLabelIdentifier"] // ID yoki etiketka XCTAssertEqual(myLabel.label, "Button Pressed!") } }
Mobil testlashning o'ziga xosligi:
- Ko'plab qurilmalar va OS versiyalari uchun keng test fermasi yoki bulutli xizmatlar talab etiladi.
- Turli tarmoq sharoitlarida (Wi-Fi, 3G, 4G, 5G, offline) test qilish zarur.
- To'xtashlar va fon jarayonlarini boshqarish.
- Tizim resurslaridan (CPU, RAM, batareya) foydalanishni nazorat qilish.
Emulyatorlar va simulyatorlar boshlang'ich testlar uchun ishlatiladi, ammo yakuniy testlar haqiqiy qurilmalarda o'tkazilishi kerak, chunki bu real sharoitlarda ishlash va foydalanuvchi tajribasini aniq baholash imkonini beradi.