Mobile App Wiki

Mobile App Wiki

mobileapp.wiki

Ana Sayfa

Kategoriler

mobileapp.wiki

Mobile App Wiki

Mobil uygulama geliştirme bilgi tabanı

GizlilikAna SayfaSitemapRSS
© 2026 mobileapp.wiki
Ana Sayfa/Test & QA/E2E Testing (Uçtan Uca Test)
Test & QA3 dk okuma

E2E Testing (Uçtan Uca Test)

Mobil uygulama uçtan uca (E2E) test rehberi. Detox, Maestro ve Appium ile test otomasyonu, flaky test çözümleri ve bulut test servisleri.

e2edetoxmaestroappiumui testotomasyontestentegrasyonuçtan uca

İçindekiler

E2E Test Nedir?Unit vs E2EAraçlarDetox (React Native)MaestroAppiumXCUITest (iOS)Espresso (Android)Maestro YAML ÖrneğiTest Senaryoları (Öncelik Sırası)Flaky Test SorunuNedenlerÇözümlerCloud Test ServisleriCI/CD EntegrasyonuBest Practicesİlgili Konular

E2E Test Nedir?

Uygulamanın tüm katmanlarını (UI, iş mantığı, API, veritabanı) birlikte test etme. Gerçek kullanıcı senaryolarını simüle eder. 2026 itibarıyla Maestro, basitliği ve güvenilirliği ile en hızlı büyüyen E2E test aracıdır.

Unit vs E2E

ÖzellikUnit TestE2E Test
KapsamTek fonksiyonTüm akış
HızÇok hızlıYavaş (dakikalar)
GüvenilirlikYüksekFlaky olabilir
KurulumKolayKarmaşık
BakımDüşükYüksek
DeğerMantık hatalarıEntegrasyon hataları

Araçlar

Detox (React Native)

  • Wix tarafından geliştirildi
  • Gray-box testing (uygulama state'ine erişim)
  • iOS ve Android
  • Jest ile entegre
  • CI/CD uyumlu (EAS Build ile çalışır)
  • Senkron test (animasyon bekleme otomatik)

Maestro

  • Basit YAML formatında test yazma (düşük öğrenme eğrisi)
  • iOS ve Android
  • React Native, Flutter, Native destekli
  • Maestro Cloud ile bulut test
  • Öğrenmesi en kolay araç
  • Görsel test recording ile test oluşturma

Appium

  • Cross-platform (iOS + Android + Web)
  • WebDriver protokolü
  • Birçok dil desteği (JS, Python, Java)
  • Selenium benzeri API
  • Olgun ve yaygın (enterprise)

XCUITest (iOS)

  • Apple'ın yerleşik UI test framework'ü
  • Swift/ObjC ile test yazma
  • Xcode entegre, performans testi desteği

Espresso (Android)

  • Google'ın yerleşik UI test framework'ü
  • Kotlin/Java ile test yazma
  • Hızlı ve güvenilir, Android Studio entegre

Maestro YAML Örneği

# login-test.yaml
appId: com.example.myapp
---
- launchApp
- tapOn: "E-posta"
- inputText: "test@example.com"
- tapOn: "Şifre"
- inputText: "password123"
- tapOn: "Giriş Yap"
- assertVisible: "Ana Sayfa"

Test Senaryoları (Öncelik Sırası)

  1. Kritik akışlar: Kayıt, giriş, ödeme (para kaybı riski)
  2. Core özellikler: Ana değer önerisini sunan akışlar
  3. Regresyon: Daha önce hata olan akışlar
  4. Edge case'ler: Hata durumları, boş veri, offline

Flaky Test Sorunu

E2E testlerde en büyük sorun: Bazen geçiyor, bazen geçmiyor.

Nedenler

  • Animasyon zamanlama sorunları
  • Ağ bekleme sorunları (API yavaşlığı)
  • Test sırası bağımlılığı
  • Cihaz/emülatör durumu (bellek, CPU)

Çözümler

  • Retry mekanizması (max 2-3 retry)
  • Explicit wait kullan (sabit süre değil, element görünene kadar)
  • Her test izole olsun (temiz başlangıç, app state reset)
  • Deterministik test verisi kullan (mock API veya seed data)
  • Animasyonları test modunda devre dışı bırak

Cloud Test Servisleri

ServisÖzellikFiyat
BrowserStackGerçek cihaz bulutu$39/ay'dan
Firebase Test LabGoogle'ın test bulutuÜcretsiz kota var
AWS Device FarmAWS test bulutuDakika bazlı
Maestro CloudMaestro test bulutuFree tier var

CI/CD Entegrasyonu

  • GitHub Actions / GitLab CI ile otomatik test
  • Her PR'da kritik E2E testlerini çalıştır
  • Nightly build'de tam E2E suite
  • Test sonuçlarını Slack/Discord'a bildir
  • Screenshot comparison ile visual regression

Best Practices

  • Test piramidi: Çok unit, az E2E (70% unit, 20% integration, 10% E2E)
  • Sadece kritik akışları E2E ile test et
  • Her gece otomatik çalıştır (nightly)
  • Flaky testleri izole et ve düzelt
  • Screenshot karşılaştırma kullan
  • Test verilerini yönet (seed data, cleanup)
  • Page Object pattern ile test bakımını kolaylaştır

E2E testler güvenlik ağıdır, ana test stratejiniz değil. Test piramidinde en tepede, en az sayıda olmalı.

İlgili Konular

  • Device Testing (Cihaz Testi)
  • Google Play Console Rehberi
  • StoreKit 2 & Google Play Billing Rehberi

Bu makaleyi nasıl buldunuz?

Paylaş

← Önceki

Beta Testing

Sonraki →

Crash Reporting (Crashlytics & Sentry)

İlgili Makaleler

Beta Testing

Mobil uygulama beta test süreci rehberi. TestFlight ve Google Play Testing ile closed/open beta, geri bildirim toplama ve kalite güvence stratejileri.

Crash Reporting (Crashlytics & Sentry)

Uygulama çökme raporlama rehberi. Firebase Crashlytics ve Sentry ile crash-free rate yönetimi, stack trace analizi ve production hata izleme.

A/B Testing (Uygulama Ici)

Mobil uygulama içi A/B testing rehberi. Firebase Remote Config, Statsig ve RevenueCat ile experiment tasarımı ve istatistiksel anlamlılık analizi.

Performance Profiling

Mobil uygulama performans profiling rehberi. Startup time, frame rate, memory ve battery analizi araçları ile optimizasyon teknikleri detayları.

Unit Testing (Mobil)

Mobil uygulama birim test rehberi. Jest, XCTest ve JUnit araçları, AAA pattern, test coverage hedefleri ve platform bazlı test stratejileri.