Proyek Open Source Android (AOSP) menyediakan beberapa alat dan rangkaian pengujian untuk menguji berbagai bagian implementasi Anda. Sebelum menggunakan halaman di bagian ini, Anda harus memahami istilah berikut:
- Perangkat yang kompatibel dengan Android
- Perangkat yang dapat menjalankan aplikasi pihak ketiga apa pun yang ditulis oleh developer pihak ketiga menggunakan Android SDK dan NDK. Perangkat yang kompatibel dengan Android harus mematuhi persyaratan Compatibility Definition Document (CDD) dan lulus Compatibility Test Suite (CTS). Perangkat yang kompatibel dengan Android layak untuk berpartisipasi dalam ekosistem Android, yang mencakup potensi pemberian lisensi Google Play, potensi pemberian lisensi paket aplikasi dan API Layanan Seluler Google (GMS), serta penggunaan merek dagang Android. Siapa pun dapat menggunakan kode sumber Android, tetapi agar dianggap sebagai bagian dari ekosistem Android, perangkat harus kompatibel dengan Android.
- artefak
- Log terkait build yang memungkinkan pemecahan masalah lokal.
- Compatibility Definition Document (CDD)
- Dokumen yang mencantumkan persyaratan software dan hardware untuk perangkat yang kompatibel dengan Android.
- Compatibility Test Suite (CTS)
Kumpulan pengujian gratis kelas komersial, yang tersedia untuk didownload sebagai biner atau sebagai sumber di AOSP. CTS adalah serangkaian pengujian unit yang dirancang untuk diintegrasikan ke dalam alur kerja harian Anda. Tujuan CTS adalah untuk mengungkapkan inkompatibilitas, dan memastikan bahwa software tetap kompatibel selama proses pengembangan.
Pengujian CTS dan platform tidak bersifat eksklusif satu sama lain. Berikut ini beberapa panduan umum:
- Jika pengujian menyatakan kebenaran fungsi atau perilaku API framework, dan pengujian harus diterapkan di seluruh partner OEM, pengujian tersebut harus berada di CTS.
- Jika pengujian dimaksudkan untuk menangkap regresi selama pengembangan platform, dan mungkin memerlukan izin hak istimewa untuk dilaksanakan, dan mungkin bergantung pada detail implementasi (seperti yang dirilis dalam AOSP), pengujian tersebut harus merupakan pengujian platform.
- Layanan Seluler Google (GMS)
Kumpulan aplikasi dan API Google yang dapat diprainstal di perangkat.
- GoogleTest (GTest)
Framework pengujian dan tiruan C++. Biner GTest biasanya mengakses lapisan abstraksi tingkat rendah atau melakukan IPC mentah terhadap berbagai layanan sistem. Pendekatan pengujian untuk GTest biasanya sangat terkait dengan layanan yang sedang diuji. CTS berisi framework GTest.
- pengujian instrumentasi
Lingkungan eksekusi uji khusus yang diluncurkan oleh perintah
am instrument
, tempat proses aplikasi yang ditargetkan dimulai ulang dan diinisialisasi dengan konteks aplikasi dasar, dan thread instrumentasi dimulai di dalam mesin virtual proses aplikasi. CTS berisi uji instrumentasi.- Logcat
Alat command line yang membuat log pesan sistem, termasuk pelacakan tumpukan saat perangkat menampilkan error dan pesan yang telah Anda tulis dari aplikasi dengan class
Log
.- logging
Menggunakan log untuk melacak peristiwa sistem komputer, seperti error. Logging di Android bersifat kompleks karena campuran standar yang digunakan digabungkan dalam alat Logcat.
- pengujian pasca-pengiriman
Pengujian Android yang dilakukan saat patch baru di-commit ke cabang kernel umum. Dengan memasukkan
aosp_kernel
sebagai nama cabang sebagian, Anda dapat melihat daftar cabang kernel dengan hasil yang tersedia. Misalnya, hasil untukandroid-mainline
dapat ditemukan di https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.- pengujian pra-pengiriman
Pengujian yang digunakan untuk mencegah kegagalan dimasukkan ke dalam kernel umum.
- Trade Federation
Juga disebut Tradefed, framework pengujian berkelanjutan yang dirancang untuk menjalankan pengujian di perangkat Android. Misalnya, Tradefed digunakan untuk menjalankan pengujian Compatibility Test Suite dan Vendor Test Suite.
- Vendor Test Suite (VTS)
Kumpulan kemampuan yang luas untuk pengujian Android, mempromosikan proses pengembangan berbasis pengujian, dan mengotomatiskan pengujian hardware abstraction layer (HAL) dan kernel OS.
Jenis pengujian platform
Pengujian platform biasanya berinteraksi dengan satu atau beberapa layanan sistem Android atau lapisan HAL, menjalankan fungsi subjek yang sedang diuji, dan menyatakan kebenaran hasil pengujian. Pengujian platform dapat:
- (Jenis 1) Latihan API framework menggunakan framework Android. API tertentu yang
digunakan dapat mencakup:
- API publik yang ditujukan untuk aplikasi pihak ketiga
- API tersembunyi yang ditujukan untuk aplikasi dengan hak istimewa, yaitu API sistem atau
API pribadi (
@hide
, atauprotected
,package private
)
- (Jenis 2) Memanggil layanan sistem Android menggunakan binder mentah atau proxy IPC secara langsung.
- (Jenis 3) Berinteraksi langsung dengan HAL menggunakan API level rendah atau antarmuka IPC.
Pengujian jenis 1 dan 2 biasanya merupakan uji instrumentasi, sedangkan pengujian jenis 3 biasanya adalah GTests.
Apa selanjutnya?
Berikut adalah daftar dokumen yang dapat Anda baca untuk mengetahui informasi lebih mendetail:
Jika Anda belum mempelajari arsitektur Android, lihat Ringkasan arsitektur.
Jika Anda membuat perangkat yang kompatibel dengan Android, lihat ringkasan program kompatibilitas Android.
Untuk mengintegrasikan pengujian instrumentasi, fungsional, metrik, dan host JAR ke dalam layanan pengujian berkelanjutan platform, lihat Alur kerja pengembangan pengujian.
Untuk mendeteksi dan melakukan hardening perangkat terhadap kerentanan, lihat Pengujian keamanan.
Untuk mempelajari cara menguji implementasi HAL dan kernel, lihat Infrastruktur dan Vendor Test Suite (VTS).
Untuk pengujian aplikasi, baca Dasar-dasar pengujian aplikasi Android dan lakukan Android Lanjutan di Kotlin 05.1:Dasar-Dasar Pengujian menggunakan contoh yang disediakan.
Pelajari pengujian prapengiriman dasar yang tersedia untuk Anda melalui hook repo. Hook ini dapat digunakan untuk menjalankan linter, memeriksa pemformatan, dan memicu pengujian unit sebelum melanjutkan, seperti mengupload commit. Hook ini dinonaktifkan secara default. Untuk mengetahui informasi selengkapnya, lihat Hook Praupload AOSP.
Untuk membaca selengkapnya tentang logging, lihat Memahami logging.
Untuk memahami cara men-debug kode Android, lihat Men-debug kode platform Android native.