Pengujian Pemulihan Cadangan Otomatis

  
Framework pengujian otomatis untuk memverifikasi bahwa data pengguna dan kredensial akun tetap aman setelah upgrade perangkat dan pemulihan cloud.
Update Terbaru Rilis Stabil Kandidat Rilis Rilis Beta Rilis Alfa
23 September 2026 - - - 1.0.0-alpha01

Masukan

Masukan Anda membantu meningkatkan kualitas Jetpack. Beri tahu kami jika Anda menemukan masalah baru atau mempunyai masukan untuk meningkatkan kualitas library ini. Harap periksa masalah yang sudah diketahui dalam library ini sebelum membuat laporan baru. Anda dapat memberikan suara untuk masalah yang sudah diketahui dengan mengklik tombol bintang.

Laporkan masalah baru

Lihat dokumentasi Issue Tracker untuk informasi selengkapnya.

Pengujian Pemulihan Cadangan Otomatis Versi 1.0

Versi 1.0.0-alpha01

23 September 2026

androidx.test.backup:backup:1.0.0-alpha01 dan androidx.test.backup:backup-host:1.0.0-alpha01 dirilis. Versi 1.0.0-alpha01 berisi commit ini.

Fitur Rilis Awal

Rilis awal framework Pengujian Pencadangan dan Pemulihan Otomatis untuk Android. Library ini menyediakan cara otomatis end-to-end untuk menguji bahwa data pengguna dan kredensial akun tetap aman setelah upgrade perangkat dan pemulihan cloud. Daripada mengandalkan pengujian manual, developer dapat mengotomatiskan siklus proses lengkap: mengisi status aplikasi, mencadangkannya sesuai dengan aturan yang dikonfigurasi (dataExtractionRules dan fullBackupContent), menghapus aplikasi, dan memverifikasi integritas data setelah pemulihan. Framework ini menyediakan dua artefak: androidx.test.backup:backup-host (yang berjalan di komputer host untuk mengatur pencadangan, penghapusan total, dan pemulihan melalui ADB) dan androidx.test.backup:backup (yang berjalan di perangkat untuk mengisi dan memverifikasi data aplikasi).

  • BackupRestoreController: Antarmuka sisi host utama yang digunakan untuk mengontrol alur kerja pencadangan, penghapusan data, pemulihan, dan verifikasi untuk perangkat pengujian. Menyediakan pipeline praktis seperti runBackupRestoreFlow serta operasi terperinci (performBackup, performRestore, clearAppData, fetchDeviceLogs, dan runOnDevice). Mendukung eksekusi asinkron coroutine Kotlin dan ListenableFuture Java.
  • BackupRestoreExtension: Ekstensi Jupiter JUnit 5 yang menyelesaikan dan menyuntikkan parameter BackupRestoreController ke dalam metode pengujian. Mengelola sesi ADB mandiri atau bersama, menginstal APK yang diuji dan APK pengujian secara otomatis, menutup layar kunci perangkat dan keyguard untuk membuka kunci penyimpanan yang dilindungi kredensial, serta menerapkan isolasi sandbox pengujian.
  • BackupRestoreTestRunner: Runner pengujian Instrumentation di perangkat yang dijalankan di dalam sandbox aplikasi. Menyelesaikan dan mengeksekusi implementasi BackupDeviceAction yang diminta secara dinamis yang dikirim oleh orkestrator host dan mengalihkan payload hasil JSON besar dengan aman ke disk untuk mencegah batas buffer transaksi Binder.
  • BackupDeviceAction: Kontrak untuk tindakan sisi perangkat kustom yang dieksekusi langsung dalam sandbox aplikasi target selama pengisian data (PHASE_POPULATE) atau validasi pasca-pemulihan (PHASE_VERIFY).
  • StorageDomain: Deskriptor berjenis kuat (Preference, Database, TextFile, dan BinaryFile) yang digunakan bersama helper tindakan bawaan (PopulateStorageAction dan AssertStorageAction) untuk otomatis mengisi dan menegaskan SharedPreferences, database SQLite, dan file mentah di seluruh konteks penyimpanan yang Dilindungi Kredensial (CE) dan Dilindungi Perangkat (DE) tanpa boilerplate.
  • BackupTransportMode: Menentukan topologi transportasi pencadangan platform yang akan disimulasikan selama pengujian, termasuk DEVICE_TO_DEVICE (migrasi perangkat fisik melalui USB atau Wi-Fi Langsung), CLOUD_ENCRYPTED (pencadangan cloud dengan enkripsi end-to-end sisi klien), CLOUD_UNENCRYPTED (pencadangan cloud standar), dan LOCAL (pencadangan sistem file lokal offline).
  • @Device dan @Isolation: Anotasi host untuk memilih perangkat terhubung yang cocok dengan serial, level API, atau peran multi-perangkat tertentu, dan mengonfigurasi kebijakan isolasi sandbox di antara proses pengujian (IsolationPolicy.AUTOMATIC vs. IsolationPolicy.MANUAL).