Android platformu testi

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üme devam etmeden önce aşağıdaki terimlere aşina olmalısınız:

Android uyumlu cihaz
Android SDK ve NDK kullanılarak üçüncü taraf geliştiriciler tarafından yazılan herhangi bir üçüncü taraf uygulamasını çalıştırabilen bir cihaz. Android uyumlu cihazlar Uyumluluk Tanımı Belgesinin (CDD) gereksinimlerine uymalı ve Uyumluluk Test Paketini (CTS) geçmelidir. Android uyumlu cihazlar, Google Play Store'un potansiyel lisansını, Google Mobil Hizmetleri (GMS) uygulama ve API paketinin potansiyel lisansını ve Android ticari markasının kullanımını içeren Android ekosistemine katılmaya uygundur. Herkes Android kaynak kodunu kullanabilir ancak bir cihazın Android ekosisteminin bir parçası olarak kabul edilebilmesi için Android uyumlu olması gerekir.
eser
Yapıtlar, yerel sorun gidermeye olanak tanıyan, derlemeyle ilgili günlüklerdir.
Uyumluluk Tanımı Belgesi (CDD)
Android uyumlu bir cihazın yazılım ve donanım gereksinimlerini sıralayan bir belge.
Uyumluluk Test Paketi (CTS)

AOSP'de ikili dosya veya kaynak olarak indirilebilen ücretsiz, ticari sınıf bir test paketi. CTS, günlük iş akışınıza entegre edilmek üzere tasarlanmış bir dizi birim testtir. 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 birbirini dışlayan değildir. İşte bazı genel kurallar:

  • Bir test, çerçeve API işlevlerinin veya davranışlarının doğruluğunu onaylıyorsa ve bunun OEM iş ortakları arasında uygulanması gerekiyorsa, CTS'de olmalıdır.
  • Bir testin platform geliştirme sırasındaki gerilemeleri yakalaması amaçlanıyorsa ve gerçekleştirilmesi için ayrıcalıklı izne ihtiyaç duyulabiliyorsa ve uygulama ayrıntılarına (AOSP'de yayınlandığı şekliyle) bağlı olabiliyorsa, bu bir platform testi olmalıdır.
Google Mobil Hizmetleri (GMS)

Cihazlara önceden yüklenebilen Google uygulamaları ve API'lerinden oluşan bir koleksiyon.

GoogleTest (GTest)

GTest bir C++ test ve alay çerçevesidir. GTest ikili dosyaları genellikle alt 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ı sıkıya bağlantılıdır. CTS, GTest çerçevesini içerir.

enstrümantasyon testi

Bir enstrümantasyon testi, hedeflenen uygulama sürecinin yeniden başlatıldığı ve temel uygulama bağlamıyla başlatıldığı ve uygulama süreci sanal makinesinin içinde bir enstrümantasyon iş parçacığının başlatıldığı am instrument komutu tarafından başlatılan özel bir test yürütme ortamı sağlar. CTS enstrümantasyon testlerini içerir.

Mantıksal kedi

Logcat, cihazın ne zaman hata verdiğine ilişkin yığın izlemeleri ve uygulamanızdan Log sınıfıyla yazdığınız mesajları içeren sistem mesajlarının bir kaydını oluşturan bir komut satırı aracıdır.

Kerestecilik

Günlüğe kaydetme, hatalar gibi bilgisayar sistemi olaylarını takip etmek için bir günlük kullanmayı ifade eder. Logcat aracında birleştirilen standartların karışımı nedeniyle Android'de oturum açmak karmaşıktır.

gönderim sonrası testi

Android gönderim sonrası testleri, ortak bir çekirdek dalına yeni bir yama eklendiğinde gerçekleştirilir. Kısmi dal adı olarak aosp_kernel girerek, mevcut sonuçları içeren çekirdek dallarının listesini görebilirsiniz. Örneğin, android-mainline sonuçları https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid adresinde bulunabilir.

ön teslim testi

Ön gönderim testleri, hataların ortak çekirdeklere aktarılmasını önlemek için kullanılır.

Ticaret Federasyonu

Tradefed olarak da adlandırılan Ticaret Federasyonu, Android cihazlarda testler yürütmek için tasarlanmış sürekli bir test çerçevesidir. Örneğin Tradefed, Uyumluluk Test Paketi ve Satıcı Test Paketi testlerini çalıştırmak için kullanılır.

Satıcı Test Paketi (VTS)

Android Vendor Test Suite (VTS), Android testi için kapsamlı yetenekler sağlar, test odaklı bir geliştirme sürecini destekler ve HAL ve OS çekirdek testini otomatikleştirir.

Platform test türleri

Bir platform testi tipik olarak bir veya daha fazla Android sistem hizmeti veya donanım soyutlama katmanı (HAL) katmanıyla etkileşime girer, test edilen konunun işlevlerini uygular ve test sonucunun doğruluğunu onaylar. Bir platform testi şunları yapabilir:

  • (tip 1) Android çerçevesini kullanarak çerçeve API'lerini kullanın. Kullanılan spesifik API'ler şunları içerebilir:
    • Üçüncü taraf uygulamalara yönelik genel API'ler
    • Ayrıcalıklı uygulamalara yönelik gizli API'ler, yani sistem API'leri veya özel API'ler ( @hide , or korumalı , özel paket`)
  • (tip 2) Doğrudan ham bağlayıcı veya IPC proxy'lerini kullanarak Android sistem hizmetlerini çağırın.
  • (tip 3) Düşük seviyeli API'leri veya IPC arayüzlerini kullanarak HAL'lerle doğrudan etkileşim kurun.

Tip 1 ve 2 testleri tipik olarak enstrümantasyon testleridir, tip 3 testleri ise genellikle GTtestlerdir.

Sıradaki ne?

Aşağıda okuyabileceğiniz sonraki belgelerin listesi bulunmaktadır: