Junior
Mobil testdən danışın.
sobes.tech Süni İntellekt
AI-dan cavab
Mobil testinq, mobil cihazlar üçün hazırlanmış proqram təminatının keyfiyyətini yoxlama prosesidir (smartfonlar, planşetlər). Bu, müxtəlif platformalarda (Android, iOS), cihazlarda, əməliyyat sistemi versiyalarında, ekran həllərində, şəbəkə şərtlərində və istifadə ssenarilərində test etməyi əhatə edir.
Mobil testin əsas aspektləri:
- Funksional test: Tətbiqin tələblərə və spesifikasiyalara uyğunluğunu yoxlamaq.
- Performans testi: Sürət, yaddaş və batareya istifadəsinin qiymətləndirilməsi.
- İstifadə rahatlığı testi (Usability testing): İnterfeysin intuitivliyi, naviqasiya asanlığı və ümumi istifadəçi təcrübəsinin qiymətləndirilməsi.
- Uyğunluq testi: Tətbiqin müxtəlif cihazlarda, əməliyyat sistemi versiyalarında və ekran həllərində işləməsini yoxlamaq.
- Təhlükəsizlik testi: Zəif tərəflərin aşkarlanması və istifadəçi məlumatlarının qorunması.
- İxtilafların testi: Tətbiqin daxil olan zənglər, SMS-lər, bildirişlər və digər hadisələrə reaksiyasını yoxlamaq.
- Quraşdırma/çıxarma testi: Tətbiqin düzgün quraşdırılması və tam silinməsini yoxlamaq.
- Lokallaşdırma testi (çoxdilli tətbiqlər üçün): Mətin, tarix və vaxt formatlarının müxtəlif regionlar üçün düzgün göstərilməsini yoxlamaq.
- Əlçatanlıq testi (Accessibility testing): Məhdudiyyətləri olan insanlar üçün tətbiqdən istifadəni yoxlamaq.
Mobil test üçün alətlər:
- Əl ilə test: Fiziki cihazlar və ya emulatorlar/simulyatorlardan istifadə.
- Avtomatlaşdırılmış test: Çərçivələr və alətlərdən istifadə.
Mobil test üçün məşhur avtomatlaşdırma alətləri:
- Appium:
// Appium ilə sadə test nümunəsi (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/ cihaz adı cap.setCapability("platformName", "Android"); cap.setCapability("appPackage", "com.android.calculator2"); // Test edilən tətbiqin paketi cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Test edilən tətbiqin fəaliyyəti AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap); // Nümunə qarşılıqlı əlaqə: '1' düyməsini basmaq driver.findElementById("digit_1").click(); // ... digər əməliyyatlar driver.quit(); // Appium sessiyasını bağlamaq } } - Espresso (Android):
// Sadə test nümunəsi Espresso ilə 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); // İşə salınacaq fəaliyyət @Test public void testButtonClick() { // Düyməni ID ilə tap və klik et Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click()); // Mətn sahəsini ID ilə tap və mətnini yoxla Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Button clicked!"))); } } - XCUITest (iOS):
// Sadə test nümunəsi XCUITest ilə (Swift) import XCTest class SimpleXCUIITest: XCTestCase { func testButtonPress() throws { // Tətbiqi başlat let app = XCUIApplication() app.launch() // Düyməni tap və bas let myButton = app.buttons["MyButtonIdentifier"] // ID və ya etiket myButton.tap() // Mətn sahəsini tap və dəyərini yoxla let myLabel = app.staticTexts["MyLabelIdentifier"] // ID və ya etiket XCTAssertEqual(myLabel.label, "Button Pressed!") } }
Mobil testin özünəməxsusluğu:
- Çox sayda cihaz və OS versiyası üçün geniş test ferması və ya bulud xidmətləri tələb edir.
- Müxtəlif şəbəkə şəraitlərində (Wi-Fi, 3G, 4G, 5G, offline) test etmək lazımdır.
- İxtilafların və fon proseslərinin idarə olunması.
- Sistem resurslarının (CPU, RAM, batareya) istifadəsinin monitorinqi.
Emulatorlar və simulyatorlar ilkin testlər üçün istifadə olunur, lakin yekun testlər real cihazlarda aparılmalıdır ki, performans və istifadəçi təcrübəsinin real şəraitdə düzgün qiymətləndirilməsi təmin olunsun.