Junior
Mobil testler hakkında bilgi verin.
sobes.tech yapay zeka
AI'dan gelen yanıt
Mobil testler, mobil cihazlar ( akıllı telefonlar, tabletler ) için geliştirilmiş yazılımın kalitesini kontrol etme sürecidir. Farklı platformlarda (Android, iOS), cihazlarda, işletim sistemi sürümlerinde, ekran çözünürlüklerinde, ağ koşullarında ve kullanım senaryolarında testleri içerir.
Mobil testlerin temel yönleri:
- Fonksiyonel testler: Uygulamanın gereksinimlere ve spesifikasyonlara uygunluğunun kontrolü.
- Performans testleri: Hız, bellek kullanımı ve pil ömrünün değerlendirilmesi.
- Kullanılabilirlik testleri: Arayüzün sezgisel olup olmadığı, gezinmenin kolaylığı ve genel kullanıcı deneyimi.
- Uyumluluk testleri: Uygulamanın farklı cihazlarda, işletim sistemi sürümlerinde ve ekran çözünürlüklerinde çalışmasının kontrolü.
- Güvenlik testleri: Açıkların tespiti ve kullanıcı verilerinin korunması.
- Kesintiler testleri: Uygulamanın gelen aramalar, SMS, bildirimler ve diğer olaylara tepkisinin kontrolü.
- Kurulum/kaldırma testleri: Uygulamanın doğru şekilde kurulması ve tamamen kaldırılması.
- Yerelleştirme testleri: Metinlerin, tarih ve saat formatlarının farklı bölgeler için doğru gösterimi.
- Erişilebilirlik testleri: Engelli kullanıcılar için uygulamanın kullanılabilirliği.
Mobil test araçları şunları içerir:
- Manuel testler: Fiziksel cihazlar veya emülatörler/simülatörler kullanmak.
- Otomatik testler: Çerçeveler ve araçlar kullanmak.
Mobil test otomasyonu için popüler araçlar:
- Appium:
// Appium ile basit bir test örneği (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"); // Emülatör/cihaz adı cap.setCapability("platformName", "Android"); cap.setCapability("appPackage", "com.android.calculator2"); // Test edilen uygulamanın paketi cap.setCapability("appActivity", "com.android.calculator2.Calculator"); // Test edilen uygulamanın aktivitesi AppiumDriver<MobileElement> driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap); // Örnek etkileşim: '1' düğmesine basmak driver.findElementById("digit_1").click(); // ... diğer işlemler driver.quit(); // Appium oturumunu kapat } } - Espresso (Android):
// Espresso ile basit bir test örneği 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); // Başlatılacak aktivite @Test public void testButtonClick() { // ID ile butonu bul ve tıkla Espresso.onView(withId(R.id.myButton)).perform(ViewActions.click()); // ID ile metin alanını bul ve metni kontrol et Espresso.onView(withId(R.id.myTextView)).check(matches(withText("Buton tıklandı!"))); } } - XCUITest (iOS):
// XCUITest ile basit bir test örneği (Swift) import XCTest class SimpleXCUIITest: XCTestCase { func testButtonPress() throws { // Uygulamayı başlat let app = XCUIApplication() app.launch() // Butonu bul ve tıkla let myButton = app.buttons["MyButtonIdentifier"] // ID veya etiket myButton.tap() // Metin alanını bul ve değerini kontrol et let myLabel = app.staticTexts["MyLabelIdentifier"] // ID veya etiket XCTAssertEqual(myLabel.label, "Buton Pressed!") } }
Mobil testlerin özgünlüğü şunları içerir:
- Çok sayıda cihaz ve işletim sistemi sürümü, geniş bir test ortamı veya bulut hizmetleri gerektirir.
- Farklı ağ koşullarında (Wi-Fi, 3G, 4G, 5G, çevrimdışı) test edilmesi gerekir.
- Kesintilerin ve arka plan süreçlerinin yönetimi.
- Sistem kaynaklarının kullanımı (CPU, RAM, pil).
Emülatörler ve simülatörler başlangıç testleri için kullanılır, ancak son testler gerçek cihazlarda yapılmalı ve performans ile kullanıcı deneyiminin gerçek koşullarda doğru değerlendirilmesi sağlanmalıdır.