Mobil Geliştirmede Performance Test: nedir, metrikler ve nasıl yapılır

Yazar: IT Sectr Yayınlanma: 2026-04-07 Okuma süresi: 10 dk

Performance Test, bir mobil uygulamanın iş yükü altında hızını, yanıt verebilirliğini ve kararlılığını ölçme sürecidir. Mantığın doğruluğunu kontrol eden işlevsel testlerin aksine, performans testleri uygulamanın gerçek koşullarda ne kadar hızlı ve akıcı çalıştığını değerlendirir. Google Research’e (2024) göre, kullanıcıların %53’ü başlatma süresi 3 saniyeden uzun sürerse uygulamayı terk eder. Performans testleri, sürümden önce darboğazları belirlemeye ve kabul edilen kalite standartlarına uygunluğu sağlamaya yardımcı olur.

Önemli Noktalar

  • Performance Test, bir uygulamanın yük altında hızını, yanıt verebilirliğini ve kararlılığını kontrol etme sürecidir.
  • Temel metrikler yanıt süresi, verim, CPU kullanımı, bellek ve pili içerir.
  • Performance Test, yük, stres, hacim ve ani yükseliş testlerini içerir.
  • Performance Test otomasyonu, Xcode Instruments, Android Profiler ve k6 aracılığıyla CI/CD hattına entegre edilir.
  • Temel çizgi (baseline), yeni derleme sonuçlarının karşılaştırıldığı metriklerin referans ölçümüdür.

Performance Test Nedir?

Performance Test, bir uygulamanın görevlerini ne kadar hızlı ve verimli bir şekilde yerine getirdiğini belirleyen bir tür işlevsel olmayan testtir. Birim testleri veya UI testlerinin aksine, Performance Test nicel özellikleri ölçer: yanıt süresi, CPU yükü, RAM tüketimi ve pil kullanımı. Sauce Labs raporuna (2025) göre, mobil geliştirme ekiplerinin %68’i Performance Test’i düzenli test döngüsüne dahil ediyor ve %41’i CI’da otomatikleştiriyor.

Performance Test’in ana amacı, uygulamanın belgelerde belirtilen performans gereksinimlerini karşılamasını sağlamaktır. Ekran başlatma süresi 500 milisaniyeyi aşarsa veya uygulama ortalama bir cihazda 200 MB’tan fazla RAM tüketirse, bu bir optimizasyon sinyalidir. Temel çizgi performansı, ilk kararlı sürümde belirlenir ve her büyük güncellemeyle gözden geçirilir.

Performance Test, simülatörlerde değil, gerçek cihazlarda gerçekleştirilir, çünkü emülasyon CPU, GPU ve ağ kaynağı kullanımının doğru bir resmini sağlamaz. Apple WWDC’ye (2024) göre, simülatördeki testler gerçek bir cihaza kıyasla %15–30 daha yüksek sonuçlar gösterir. Gerçek bir cihaz, performans verilerinin tek güvenilir kaynağı olmaya devam etmektedir.

Performance Test yürütme sıklığı, geliştirme döngüsüne bağlıdır. Google Android Performance önerilerine (2024) göre, temel performans ölçümleri her pull request’te çalıştırılmalı ve her sürümden önce tam bir paket çalıştırılmalıdır. Bu ölçümlerin otomasyonu, erken aşamalarda performans düşüşlerini tespit etmeyi sağlar.

Temel Performans Metrikleri

Mobil geliştirmede, Performance Test senaryolarının %90’ını kapsayan beş ana metrik belirlenmiştir. Başlatma süresi (cold start ve warm start), her sürümde kontrol edilen ilk metriktir. Google Play Console (2024), başlatma süresini eşik değerine göre kaydeder: cold start 5 saniyeyi, warm start ise 1,5 saniyeyi aşmamalıdır. Bu eşiklerin aşılması, uygulama mağazası puanını doğrudan etkiler.

Başlatma Süresi (Cold Start)

Cold start, simgeye dokunulduğu andan uygulamanın ilk karesinin görünmesine kadar ölçülür. iOS, ertelenmiş başlatma için `dispatch_async` kullanır ve bu da görünür başlatma süresini kısaltır. Android cold start’i, süreç oluşturma, Application başlatma ve Activity başlatmayı içerir. Google Performance’a (2024) göre, cold start’teki her 100 ms gecikme, e-ticaret uygulamalarında dönüşüm oranını %1,2 oranında azaltır.

Kare Hızı (FPS)

FPS (Saniyedeki Kare Sayısı), animasyonlar ve liste kaydırma sırasındaki kare hızıdır. Akıcı bir arayüz için sabit 60 FPS gerekir. Android Studio Profiler ve Xcode GPU Report, ağır işlemler (görüntü yükleme, JSON ayrıştırma veya karmaşık düzen oluşturma) sırasında FPS düşüşlerini gösterir. 30 FPS’nin altına düşme, kullanıcı tarafından takılma olarak algılanır ve Adjust’a (2025) göre elde tutma oranında %22’lik bir düşüşe yol açar.

RAM Tüketimi

RAM tüketimi üçüncü kritik metriktir. Bellek sızıntıları, uzun süreli oturumlarda performans düşüşünün ana nedenidir. Instruments Allocations ve Android Memory Profiler, Swift’teki döngüsel referansları ve Android’de serbest bırakılmayan Activity’leri tespit etmeye yardımcı olur. Pil tüketimi, test sırasında sıklıkla gözden kaçan bir metriktir. Apple Developer’a (2024) göre, yüksek enerji tüketimine sahip uygulamalar iOS’ta arka planda kısıtlanır. Xcode’daki Energy Log, uygulamanın oturum başına wattaj profilini kaydeder.

MetrikEşikAraç
Cold start< 5 snXcode Organizer, Google Vitals
FPS≥ 55 sabitXcode GPU Report, Android Profiler
RAM< 200 MBInstruments, Memory Profiler
APK/IPA< 150 MBXcode Build, Gradle APK Analyzer

Performans Testi Türleri

Yük testi (Load Test), uygulamanın beklenen eşzamanlı kullanıcı sayısı altındaki davranışını kontrol eder. Bir mobil backend için bu, 1000–10000 eşzamanlı API isteğini simüle etmek anlamına gelir. Sunucu tarafı, yanıt süresini temel değerden %20’den fazla artırmadan tepe yükü kaldırabilmelidir. k6 kıyaslamalarına (2024) göre, tipik bir Load Test yapılandırması, 5 dakika içinde 0’dan 1000 VU’ya (sanal kullanıcı) kadar bir rampa içerir.

Stres testi (Stress Test), uygulamanın kırılma noktasını — sistemin isteklere yanıt vermeyi bıraktığı veya kabul edilemez şekilde kötüleştiği anı — belirler. Load Test’in aksine, Stress Test sistemi normal sınırların ötesinde zorlar. Kırılma noktası, şu kriterlerden birine göre kaydedilir: yanıt süresinin 10 saniyeyi aşması, 5XX hata yüzdesinin %5’i aşması veya RAM tüketiminin kullanılabilir belleğin %90’ına ulaşması.

Hacim testi (Volume Test), uygulamanın büyük veri hacimleriyle çalışırkenki davranışını değerlendirir. Mobil bağlamda bu, yerel bir veritabanında binlerce kayıt, onlarca gigabayt önbellek veya milyonlarca push bildirimiyle test etmeyi içerir. Android’de SQLite ve iOS’ta Core Data, 100.000 kaydın üzerinde farklı performans gösterir.

Performance Test Araçları

Xcode Instruments

Xcode Instruments, iOS uygulamalarını profillemek için birincil araçtır. Time Profiler, en çok CPU tüketen yöntemleri gösterirken, Allocations bellek ayırma ve serbest bırakmayı izler. Instruments, uzun oturumlarda (30 dakikaya kadar) kayıt yapmayı ve derlemeler arasında karşılaştırma için izleri dışa aktarmayı destekler. Instruments içindeki Activity Monitor, gerçek zamanlı olarak genel sistem yükünü gösterir.

Android Studio Profiler

Android Studio Profiler, Android için yerleşik profilleyicidir. CPU, Bellek, Ağ ve Enerji profilleyicilerini tek bir arayüzde birleştirir. Android Profiler’ın bir özelliği, etkileşimli oturumları desteklemesidir: geliştiriciler uygulamada işlemler yapabilir ve metriklerin anlık yanıtını görebilir. Google I/O’ya (2024) göre, Profiler .perf formatında kaydı destekler ve bu, CI’da bir temel çizgiyle karşılaştırılabilir.

Charles Proxy

Charles Proxy ve Proxyman, ağ trafiğini analiz etmek için araçlardır. Her HTTP isteğinin süresini, yanıt boyutunu ve başlıkları gösterirler. Performance Test için, 500 ms’den uzun süren istekleri yakalamak önemlidir — bunlar önbelleğe alma veya optimizasyon için adaylardır. Charles, yavaş ağları simüle eden kısıtlama modunu destekler: 3G, Edge ve LTE. Proxyman, yerel Swift mimarisine sahip macOS için daha hafif bir alternatiftir.

swift
import XCTest

class PerformanceTests: XCTestCase {

    func testLaunchPerformance() {
        measure(metrics: [XCTClockMetric(),
                         XCTMemoryMetric()]) {
            XCUIApplication().launch()
        }
    }

    func testScrollPerformance() {
        let app = XCUIApplication()
        app.launch()
        let tableView = app.tables["list"]
        measure {
            tableView.swipeUp()
            tableView.swipeDown()
        }
    }
}

CI/CD Hattında Performance Test

Performance Test’i CI/CD’ye entegre etmek, 2025–2026 için endüstri standardıdır. Performans hattı üç aşamayı içerir: pre-commit (pull request’te hızlı ölçümler), nightly (tam test paketi) ve pre-release (referans cihazlarda temel çizgiyle karşılaştırma). Bitrise ve GitHub Actions, Xcode Instruments CLI ve Gradle Profiler’ı çalıştırmayı destekler.

GitHub Actions (2024), `xcodebuild test-without-building` kullanarak iOS Performance Test için resmi bir şablon yayınladı. Şablon, GitHub makinelerinden birinde testleri çalıştırır ve raporu bir yapıt olarak yayınlar. Temel çizgi, depoda bir JSON dosyasında saklanır: eşik %10 aşılırsa, hat bir hatayla başarısız olur. Bu yaklaşım, her derlemenin manuel olarak incelenmesine gerek kalmadan performans düşüşünü önler.

CI’da mobil Performance Test’in sorunu, farklı makinelerde sonuçların kararsızlığıdır. Apple Silicon (M1–M4) ve Intel Xeon farklı yürütme süreleri verir. Çözüm, mutlak değerler yerine temel çizgiye göre bir yüzde oranı kullanmaktır. Bir test temel çizgiden %15 daha uzun sürerse, derleme inceleme gerektiriyor olarak işaretlenir.

iOS ve Android’de Performance Test Yazma

iOS’ta XCTest Performance, bir kod bloğunu 10 kez çalıştıran ve istatistik döndüren `measure(metrics:)` yöntemini kullanır: ortalama, medyan, standart sapma. Veritabanı performans testi için XCTest, en yüksek RAM tüketimini yakalayan XCTMemoryMetric’i kullanışlı bir şekilde kullanır. Eşik, test tamamlandıktan sonra `XCTPerformanceReport` aracılığıyla ayarlanır.

Android Macrobenchmark, uygulama düzeyinde performansı ölçmek için Google’dan bir kütüphanedir. Macrobenchmark, kullanıcı senaryolarını (Activity başlatma, RecyclerView kaydırma, WebView açma) çalıştırır ve yürütme süresini ölçer. Baseline Profile, Android derleyicisinin önceden optimize ettiği sınıflar ve yöntemler kümesidir. Google Play, ilk başlatmayı %30 hızlandırmak için Baseline Profile’ı kullanır.

kotlin
@RunWith(AndroidJUnit4::class)
class StartupBenchmark {
    @get:Rule
    val benchmarkRule = MacrobenchmarkRule()

    @Test
    fun startup() {
        benchmarkRule.measureRepeated(
            packageName = "com.example.app",
            metrics = listOf(StartupTimingMetric()),
            iterations = 5
        ) {
            pressHome()
            startActivityAndWait()
        }
    }
}

Her iki yaklaşım — XCTest Performance ve Android Macrobenchmark — aynı kavramı kullanır: ortalama alarak tekrarlanan ölçüm ve bir eşikle karşılaştırma. Performans tek bir sayıya indirgenemez. Her sürüme, son 5 derlemenin metrik eğilimlerini içeren bir performans raporu eşlik etmelidir. Böyle bir rapor, ekibin kullanıcılar fark etmeden önce düşüşü görmesini sağlar.

Sıkça Sorulan Sorular

Performance Test, Load Test’ten nasıl farklıdır?

Performance Test, Load Test, Stress Test, Volume Test ve diğer türleri içeren geniş bir kategoridir. Load Test, beklenen yük altında sistem davranışını kontrol eden Performance Test’in özel bir durumudur. Tüm Load Test’ler Performance Test’tir, ancak bunun tersi geçerli değildir.

Performance Test ne sıklıkla yapılmalıdır?

Temel ölçümler (cold start, FPS, RAM) — her pull request’te. Tam Performance Test paketi — her sürümden önce. Gece çalıştırmaları — günlük derlemeleri olan projeler için. Google, Macrobenchmark’ı günde en az bir kez çalıştırmayı önerir.

Bir mobil uygulama için hangi metrikler kritik kabul edilir?

Üç metrik kritik kabul edilir: cold start süresi (5 saniyeden fazla değil), kaydırma sırasında FPS (en az 55 FPS) ve en yüksek RAM tüketimi (200 MB’tan fazla değil). Google Play Console ve App Store Connect bu metrikleri otomatik olarak izler.

Performance Test otomatikleştirilebilir mi?

Evet, Performance Test, Xcode CLI (`xcodebuild test`) ve Gradle (`gradle connectedCheck`) aracılığıyla tamamen otomatikleştirilir. k6 ve Gatling gibi araçlar backend yük testini otomatikleştirir. CI/CD entegrasyonu, insan müdahalesi olmadan Performance Test’i çalıştırmaya olanak tanır.

Performance Test’te baseline nedir?

Baseline (temel çizgi), yeni derleme sonuçlarının karşılaştırıldığı bir referans performans ölçümüdür. Temel çizgi, ilk kararlı sürümde belirlenir ve JSON veya XML’de saklanır. Yeni bir derleme temel çizgiyi %10 aşarsa, CI hattı bir düşüş sinyali verir.

Özet

  • Performance Test, bir uygulamanın hızını, yanıt verebilirliğini ve kararlılığını ölçme sürecidir ve yük, stres ve hacim testlerini içerir.
  • Temel metrikler — başlatma süresi, FPS, RAM tüketimi, pil kullanımı ve ağ trafiği hacmi.
  • Araçlar — iOS için Xcode Instruments, Android için Android Studio Profiler, sunucu tarafı için k6 ve JMeter.
  • CI/CD’de Performance Test otomasyonu, xcodebuild, Gradle Macrobenchmark ve k6 ile uygulanan bir endüstri standardıdır.
  • Baseline — yeni derlemeleri karşılaştırmak ve düşüşleri tespit etmek için referans ölçüm.
  • Performance Test, simülatörler %15–30 hata payına sahip olduğu için gerçek cihazlarda gerçekleştirilir.
  • Temel ölçümlerin her pull request’te ve tam paketin her sürümden önce çalıştırılması önerilir.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun