AOSP menyediakan beberapa alat dan rangkaian pengujian untuk menguji berbagai bagian implementasi Anda. Sebelum melanjutkan ke bagian ini, Anda harus memahami istilah-istilah berikut:
- Perangkat yang kompatibel dengan Android
- Perangkat yang dapat menjalankan aplikasi pihak ketiga apa pun yang dibuat oleh pengembang pihak ketiga menggunakan Android SDK dan NDK. Perangkat yang kompatibel dengan Android harus mematuhi persyaratan Dokumen Definisi Kompatibilitas (CDD) dan lulus Rangkaian Uji Kompatibilitas (CTS) . Perangkat yang kompatibel dengan Android memenuhi syarat untuk berpartisipasi dalam ekosistem Android, yang mencakup potensi lisensi Google Play Store, potensi lisensi rangkaian aplikasi dan API Layanan Seluler Google (GMS) , dan penggunaan merek dagang Android. Siapa pun boleh menggunakan kode sumber Android, namun untuk dianggap sebagai bagian dari ekosistem Android, perangkat harus kompatibel dengan Android.
- artefak
- Artefak adalah log terkait build yang memungkinkan pemecahan masalah lokal.
- Dokumen Definisi Kompatibilitas (CDD)
- Dokumen yang menyebutkan persyaratan perangkat lunak dan perangkat keras untuk perangkat yang kompatibel dengan Android.
- Rangkaian Uji Kompatibilitas (CTS)
Rangkaian pengujian tingkat komersial gratis, tersedia untuk diunduh sebagai biner atau sebagai sumber di AOSP. CTS adalah serangkaian pengujian unit yang dirancang untuk diintegrasikan ke dalam alur kerja harian Anda. Tujuan dari CTS adalah untuk mengungkap ketidakcocokan, dan memastikan bahwa perangkat lunak tetap kompatibel selama proses pengembangan.
Pengujian CTS dan platform tidak berdiri sendiri-sendiri. Berikut adalah beberapa pedoman umum:
- Jika suatu pengujian menegaskan kebenaran fungsi atau perilaku framework API, dan pengujian tersebut harus diterapkan di seluruh mitra OEM, maka pengujian tersebut harus dilakukan dalam CTS.
- Jika pengujian dimaksudkan untuk menangkap regresi selama pengembangan platform, dan mungkin memerlukan izin istimewa untuk melaksanakannya, dan mungkin bergantung pada detail implementasi (seperti yang dirilis di AOSP), pengujian tersebut harus berupa pengujian platform.
- Layanan Google Seluler (RUPS)
Kumpulan aplikasi dan API Google yang dapat diinstal sebelumnya di perangkat.
- Tes Google (Tes GT)
GTest adalah kerangka 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 digabungkan dengan layanan yang sedang diuji. CTS berisi kerangka GTest.
- uji instrumentasi
Pengujian instrumentasi menyediakan lingkungan eksekusi pengujian 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 tes instrumentasi.- catatan log
Logcat adalah alat baris perintah yang membuat log pesan sistem, termasuk jejak tumpukan saat perangkat melakukan kesalahan dan pesan yang Anda tulis dari aplikasi Anda dengan kelas
Log
.- pencatatan
Pencatatan mengacu pada penggunaan log untuk melacak peristiwa sistem komputer, seperti kesalahan. Logging di Android rumit karena campuran standar yang digunakan digabungkan dalam alat Logcat.
- tes pasca penyerahan
Tes pasca-pengiriman Android dilakukan ketika patch baru diterapkan ke cabang kernel umum. Dengan memasukkan
aosp_kernel
sebagai sebagian nama cabang, 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 .- tes pra-pengiriman
Tes pra-pengiriman digunakan untuk mencegah kegagalan masuk ke kernel umum.
- Federasi Perdagangan
Federasi Perdagangan, juga disebut Tradefed, adalah kerangka pengujian berkelanjutan yang dirancang untuk menjalankan pengujian pada perangkat Android. Misalnya, Tradefed digunakan untuk menjalankan pengujian Compatibility Test Suite dan Vendor Test Suite.
- Rangkaian Uji Vendor (VTS)
Android Vendor Test Suite (VTS) memberikan kemampuan ekstensif untuk pengujian Android, mendorong proses pengembangan berbasis pengujian, dan mengotomatiskan pengujian kernel HAL dan OS.
Jenis pengujian platform
Pengujian platform biasanya berinteraksi dengan satu atau beberapa layanan sistem Android atau lapisan lapisan abstraksi perangkat keras (HAL), menjalankan fungsi subjek yang diuji, dan memastikan kebenaran hasil pengujian. Pengujian platform mungkin:
- (tipe 1) Latihan framework API menggunakan framework Android. API spesifik yang diterapkan dapat mencakup:
- API Publik yang ditujukan untuk aplikasi pihak ketiga
- API tersembunyi yang ditujukan untuk aplikasi yang memiliki hak istimewa, yaitu API sistem atau API pribadi (
@hide
, or
protected,
package private`)
- (tipe 2) Panggil layanan sistem Android menggunakan pengikat mentah atau proksi IPC secara langsung.
- (tipe 3) Berinteraksi langsung dengan HAL menggunakan API tingkat rendah atau antarmuka IPC.
Tes tipe 1 dan 2 biasanya merupakan tes instrumentasi, sedangkan tes tipe 3 biasanya merupakan Tes GT.
Apa berikutnya?
Berikut adalah daftar dokumen berikutnya yang mungkin Anda baca:
Jika Anda belum mempelajari arsitektur Android, lihat Ikhtisar arsitektur .
Jika Anda membuat perangkat yang kompatibel dengan Android, lihat ikhtisar 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 memperkuat perangkat Anda terhadap kerentanan, lihat Pengujian keamanan .
Untuk mempelajari tentang pengujian implementasi HAL dan kernel Anda, lihat Vendor Test Suite (VTS) dan infrastruktur .
Untuk pengujian aplikasi, baca Dasar-dasar pengujian aplikasi Android dan lakukan Android Tingkat Lanjut di Kotlin 05.1: Dasar-Dasar Pengujian menggunakan contoh yang disediakan.
Pelajari tentang pengujian pra-pengiriman dasar yang tersedia untuk Anda melalui repo hooks. Kait ini dapat digunakan untuk menjalankan linter, memeriksa pemformatan, dan memicu pengujian unit sebelum melanjutkan, seperti mengunggah penerapan. Kait ini dinonaktifkan secara default. Untuk informasi lebih lanjut, lihat Kait Preuplaod AOSP .
Untuk membaca selengkapnya tentang logging, lihat Memahami logging .
Untuk memahami cara men-debug kode Android, lihat Men-debug kode platform asli .