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 terimler hakkında bilgi sahibi olmanız 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 potansiyel lisansı, Google Mobil Hizmetleri (GMS) uygulama ve API paketinin potansiyel 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 bir 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 birim testi grubudur. 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 doğruluyorsa ve test OEM iş ortakları genelinde uygulanacaksa CTS'de olmalıdır.
- Platform geliştirme sırasında geriye gidişleri yakalamayı amaçlayan 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üklenebilir Google uygulamaları ve API'leri koleksiyonu.
- GoogleTest (GTest)
C++ test ve taklit çerçevesi. GTest ikili dosyaları genellikle daha düşük düzey soyutlama katmanlarına erişir veya çeşitli sistem hizmetlerine karşı ham IPC gerçekleştirir. GTest iç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ı. Bu ortamda, hedeflenen uygulama işlemi yeniden başlatılır ve temel uygulama bağlamıyla başlatılır. Ayrıca, uygulama işlemi sanal makinesinin içinde bir enstrümantasyon iş parçacığı başlatılır. CTS, araç testlerini içerir.- Logcat
Cihazın hata verdiğinde oluşan yığın izlemeleri ve uygulamanızdan
Log
sınıfıyla yazdığınız mesajlar da 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.
- postsubmit test
Ortak bir çekirdek dalına yeni bir yama bağlandığında gerçekleştirilen bir Android testi. Kısmi dal adı olarak
aosp_kernel
yazarak, mevcut sonuçları içeren çekirdek dallarının listesini görebilirsiniz. Örneğin,android-mainline
için sonuçları https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid adresinde bulabilirsiniz.- ön gönderim testi
Ortak çekirdeklere hataların eklenmesini önlemek için kullanılan bir test.
- Ticaret Federasyonu
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 bir 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ına yönelik 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.
1. ve 2. tür testler genellikle enstrümantasyon testleri, 3. tür testler ise genellikle GTest'lerdir.
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ış başlıklı makaleyi 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 uygulayın.
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.