Proyek Open Source Android (AOSP) menyediakan beberapa alat dan rangkaian pengujian untuk menguji berbagai bagian dari implementasi Anda. Sebelum menggunakan halaman dalam Anda harus familier dengan istilah-istilah berikut:
- Perangkat yang kompatibel dengan Android
- Perangkat yang dapat menjalankan aplikasi pihak ketiga yang ditulis oleh developer pihak ketiga menggunakan Android SDK dan NDK. Perangkat yang kompatibel dengan Android harus mematuhi persyaratan Compatibility Definition Document (CDD) dan meneruskan Compatibility Test Suite (CTS). Kompatibel dengan Android perangkat memenuhi syarat untuk berpartisipasi dalam ekosistem Android, yang mencakup potensi lisensi dari Google Play, potensi lisensi dari Rangkaian Layanan Seluler Google (GMS) aplikasi dan API, serta penggunaan merek dagang Android. Siapa saja dipersilakan untuk menggunakan kode sumber Android, tetapi 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 menyebutkan persyaratan software dan hardware untuk Perangkat yang kompatibel dengan Android.
- Compatibility Test Suite (CTS)
Paket pengujian gratis tingkat komersial, tersedia untuk diunduh dalam bentuk biner atau di AOSP. CTS adalah serangkaian pengujian unit yang dirancang untuk diintegrasikan ke dalam dalam alur kerja harian Anda. Tujuan dari CTS adalah untuk mengungkapkan inkompatibilitas, dan memastikan bahwa perangkat lunak tetap kompatibel selama proses pengembangan.
CTS dan pengujian platform tidak saling eksklusif. Berikut adalah beberapa panduan:
- Jika pengujian menegaskan ketepatan fungsi atau perilaku API framework, dan pengujian harus diterapkan di seluruh partner OEM, dan pengujian harus dilakukan di CTS.
- Jika pengujian dimaksudkan untuk mendeteksi regresi selama pengembangan platform, dan mungkin memerlukan izin hak istimewa untuk melaksanakannya, dan mungkin bergantung pada detail implementasi (seperti yang dirilis dalam AOSP), ini harus menjadi platform uji coba.
- 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 sistem layanan IT perusahaan mereka. Pendekatan pengujian untuk GTest biasanya dikaitkan erat dengan layanan yang sedang diuji. CTS berisi framework GTest.
- uji instrumentasi
Lingkungan eksekusi uji khusus diluncurkan oleh perintah
am instrument
, di mana proses aplikasi yang ditargetkan dimulai ulang dan diinisialisasi dengan konteks aplikasi dasar, dan thread instrumentasi dimulai di dalam virtual proses aplikasi mesin Linux dan Windows. CTS berisi uji instrumentasi.- Logcat
Alat baris perintah yang membuat log dari pesan sistem, termasuk pelacakan tumpukan saat perangkat menampilkan kesalahan dan pesan yang masuk yang ditulis dari aplikasi Anda dengan class
Log
.- logging
Menggunakan log untuk melacak peristiwa sistem komputer, seperti sebagai error. Logging in Android bersifat kompleks karena campuran standar yang digunakan digabungkan dalam alat Logcat.
- pengujian pasca-pengiriman
Pengujian Android yang dilakukan ketika patch baru di-commit di cabang {i>kernel<i} umum. Dengan memasukkan
aosp_kernel
sebagai nama cabang parsial, Anda dapat melihat daftar cabang {i> kernel<i} 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
Sebuah pengujian yang digunakan untuk mencegah kegagalan yang masuk ke dalam {i>kernel<i} yang umum digunakan.
- Federasi Perdagangan
Juga disebut Tradefed, pengujian berkelanjutan framework yang dirancang untuk menjalankan pengujian pada perangkat Android. Misalnya, Tradefed digunakan untuk menjalankan pengujian Compatibility Test Suite dan Vendor Test Suite.
- Paket Pengujian Vendor (VTS)
Serangkaian kemampuan yang ekstensif untuk Pengujian Android, mempromosikan proses pengembangan berbasis pengujian, dan otomatisasi pengujian{i> hardware abstraksi layer <i}(HAL) dan pengujian {i>kernel<i} OS.
Jenis pengujian platform
Pengujian platform biasanya berinteraksi dengan satu atau beberapa sistem Android atau lapisan HAL, menjalankan fungsi subjek yang diuji, dan menegaskan ketepatan hasil pengujian. Pengujian platform mungkin:
- (Jenis 1) API framework latihan menggunakan framework Android. API spesifik yang
yang dilakukan 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 proxy IPC atau binder raw secara langsung.
- (Tipe 3) Berinteraksi langsung dengan HAL menggunakan API tingkat rendah atau antarmuka IPC.
Tes Tipe 1 dan 2 biasanya adalah uji instrumentasi, sedangkan tes tipe 3 adalah biasanya 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 uji instrumentasi, fungsional, metrik, dan host JAR ke layanan pengujian berkelanjutan di platform, lihat Alur kerja pengembangan pengujian.
Untuk mendeteksi dan memperkuat perangkat Anda terhadap kerentanan, lihat Pengujian keamanan.
Untuk mempelajari pengujian implementasi HAL dan {i>kernel<i}, lihat Vendor Test Suite (VTS) dan infrastruktur.
Untuk pengujian aplikasi, baca Dasar-dasar pengujian Android aplikasi dan menjalankan Advanced Android in Kotlin 05.1:Testing Dasar-dasar menggunakan sampel yang diberikan.
Pelajari pengujian prapengiriman dasar yang tersedia untuk Anda melalui hook repo. Hook ini dapat digunakan untuk menjalankan linter, memeriksa pemformatan, dan unit pemicu sebelum melanjutkan, seperti mengupload commit. Hook ini dinonaktifkan secara {i>default<i}. Untuk informasi selengkapnya, lihat Praupload AOSP Hook.
Untuk membaca selengkapnya tentang logging, lihat Memahami logging.
Untuk memahami cara men-debug kode Android, lihat Men-debug kode platform Android native.