Android Açık Kaynak Projesi (AOSP), uygulamanızın çeşitli bölümlerini test etmek için çeşitli araçlar ve test paketleri sağlar. Bu bölümdeki sayfaları kullanmadan önce aşağıdaki terimleri bilmeniz gerekir:
- Android uyumlu cihaz
- Android SDK'sını ve NDK'yı kullanarak üçüncü taraf geliştiriciler tarafından yazılan tüm üçüncü taraf uygulamalarını çalıştırabilen bir cihaz. Android uyumlu cihazlar, Uyumluluk Tanımlama Belgesi (CDD)'nin koşullarına uymalı ve Uyumluluk Test Paketi (CTS)'nden geçmelidir. Android uyumlu cihazlar, Google Play'in olası lisansı, Google Mobil Hizmetleri (GMS) uygulama ve API paketinin olası lisansı ve Android ticari markasının kullanımı da dahil olmak üzere Android ekosistemine katılmaya uygundur. Android kaynak kodunu herkes kullanabilir ancak Android ekosisteminin bir parçası olarak kabul edilmek için cihazın Android uyumlu olması gerekir.
- yapı
- Yerel sorun gidermeyi sağlayan derlemeyle ilgili günlük.
- Uyumluluk Tanımlama Belgesi (CDD)
- Android uyumlu bir cihazın yazılım ve donanım şartlarını belirten bir doküman.
- Uyumluluk Test Paketi (CTS)
AOSP'de ikili veya kaynak olarak indirilebilen, ticari sınıfa ait ücretsiz bir test paketi. CTS, günlük iş akışınıza entegre edilmek üzere tasarlanmış bir dizi birim testidir. CTS'nin amacı, uyumsuzlukları ortaya çıkarmak ve yazılımın geliştirme süreci boyunca uyumlu kalmasını sağlamaktır.
CTS ve platform testleri birlikte kullanılabilir. Aşağıda bazı genel yönergeler verilmiştir:
- Bir test, çerçeve API işlevlerinin veya davranışlarının doğruluğunu teyit ediyorsa ve testin OEM iş ortakları genelinde uygulanması gerekiyorsa CTS'de olmalıdır.
- Platform geliştirme sırasında gerilemelerin yakalanması amaçlanan ve yürütülmesi için ayrıcalıklı izin gerektiren ve uygulama ayrıntılarına (AOSP'de yayınlandığı şekilde) bağlı olabilecek bir test, platform testi olmalıdır.
- Google Mobil Hizmetleri (GMS)
Cihazlara önceden yüklenebilen Google uygulamaları ve API'leri koleksiyonu.
- GoogleTest (GTest)
C++ test ve taklit çerçevesi. GTest ikili dosyaları genellikle daha düşük düzeyli soyutlama katmanlarına erişir veya çeşitli sistem hizmetlerine karşı ham IPC gerçekleştirir. GTest'in test yaklaşımı genellikle test edilen hizmetle sıkı bir şekilde bağlıdır. CTS, GTest çerçevesini içerir.
- enstrümantasyon testi
am instrument
komutu tarafından başlatılan özel bir test yürütme ortamı. Burada, hedeflenen uygulama işlemi yeniden başlatılıp temel uygulama bağlamıyla başlatılır ve uygulama işlemi sanal makinesinde bir araç iş parçacığı başlatılır. CTS, araç testlerini içerir.- Logcat
Cihazın ne zaman hata yaptığını ve uygulamanızdan
Log
sınıfıyla yazdığınız mesajları içeren yığın izlemeleri (stack trace) dahil olmak üzere sistem mesajlarının günlüğünü oluşturan bir komut satırı aracı.- logging
Hatalar gibi bilgisayar sistemi etkinliklerini takip etmek için günlük kullanma Android'de günlük kaydı, Logcat aracında birleştirilen standartların karışımı nedeniyle karmaşıktır.
- gönderme sonrası testi
Ortak bir çekirdek dalına yeni bir yama uygulandığında gerçekleştirilen Android testidir. Kısmi dal adı olarak
aosp_kernel
yazarak, mevcut sonuçları içeren çekirdek dallarının listesini görebilirsiniz. Örneğin,android-mainline
ile ilgili sonuçlar https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid adresinde bulunabilir.- ön gönderim testi
Hataların yaygın çekirdeklere eklenmesini önlemek için kullanılan bir testtir.
- Trade Federation
Android cihazlarda test çalıştırmak için tasarlanmış sürekli bir test çerçevesi olan Tradefed olarak da bilinir. Örneğin, Tradefed, Compatibility Test Suite ve Vendor Test Suite testlerini çalıştırmak için kullanılır.
- Satıcı Test Paketi (VTS)
Android testi için kapsamlı bir özellik grubu, test odaklı geliştirme sürecini destekleme ve donanım soyutlama katmanı (HAL) ile OS çekirdek testini otomatikleştirme.
Platform testi türleri
Platform testi genellikle Android sistem hizmetlerinden veya HAL katmanlarından biriyle veya daha fazlasıyla etkileşime geçer, test edilen öznenin işlevlerini çalıştırır ve test sonucunun doğruluğunu onaylar. Platform testleri:
- (1. Tür) Android çerçevesini kullanarak çerçeve API'lerini çalıştırın. Kullanılan belirli API'ler şunlardır:
- Üçüncü taraf uygulamaları için tasarlanmış herkese açık API'ler
- Ayrıcalıklı uygulamalara yönelik gizli API'ler (ör. sistem API'leri veya özel API'ler (
@hide
,protected
,package private
))
- (2. Tür) Android sistem hizmetlerini doğrudan ham bağlayıcı veya IPC proxy'lerini kullanarak çağırın.
- (3. Tür) Düşük düzey API'ler veya IPC arayüzleri kullanarak doğrudan HAL'lerle etkileşim kurun.
Tip 1 ve 2 testler genellikle araç testleridir. Tip 3 testler ise genellikle GTest'tir.
Sırada ne var?
Daha ayrıntılı bilgi için okuyabileceğiniz dokümanların listesi aşağıda verilmiştir:
Android mimarisini incelemediyseniz Mimariye genel bakış başlıklı makaleyi inceleyin.
Android uyumlu bir cihaz oluşturuyorsanız Android uyumluluk programına genel bakış bölümünü inceleyin.
Enstrümantasyon, işlevsel, metrik ve JAR ana makine testlerini bir platform sürekli test hizmetine entegre etmek için Test geliştirme iş akışı başlıklı makaleyi inceleyin.
Cihazlarınızın güvenlik açıklarını tespit edip bunlara karşı koruma sağlamak için Güvenlik testi başlıklı makaleyi inceleyin.
HAL ve çekirdek uygulamalarınızı test etme hakkında bilgi edinmek için Satıcı Testi Paketi (VTS) ve altyapı başlıklı makaleyi inceleyin.
Uygulama testi için Android uygulamalarını test etmeyle ilgili temel bilgiler başlıklı makaleyi okuyun ve sağlanan örnek kullanarak Kotlin'de Gelişmiş Android 05.1:Testlerle İlgili Temel Bilgiler başlıklı makaleyi inceleyin.
Depo kancaları aracılığıyla kullanabileceğiniz temel göndermeden önce test hakkında bilgi edinin. Bu kancalar, devam etmeden önce linters çalıştırmak, biçimlendirmeyi kontrol etmek ve birim testlerini (ör. birleştirme yükleme) tetiklemek için kullanılabilir. Bu kancalar varsayılan olarak devre dışıdır. Daha fazla bilgi için AOSP Ön Yükleme Kancaları başlıklı makaleyi inceleyin.
Günlük kaydı hakkında daha fazla bilgi edinmek için Günlük kaydını anlama başlıklı makaleyi inceleyin.
Android kodunda nasıl hata ayıklama yapılacağını öğrenmek için Yerel Android platform kodunda hata ayıklama başlıklı makaleyi inceleyin.