Sicherung testen

  
Automatisierte Test-Frameworks, mit denen überprüft wird, ob Nutzerdaten und Kontoanmeldedaten Geräteupgrades und Cloud-Wiederherstellungen sicher überstehen.
Letzte Aktualisierung Stabile Release Releasekandidat Beta-Release Alpha-Release
21. Oktober 2026 - - - 1.0.0-alpha03

Abhängigkeiten deklarieren

Wenn Sie eine Abhängigkeit von der Test-Sicherung hinzufügen möchten, müssen Sie Ihrem Projekt das Google Maven-Repository hinzufügen. Weitere Informationen finden Sie im Google-Repository bei Maven.

Fügen Sie die Abhängigkeiten für die benötigten Artefakte in der Datei build.gradle für Ihre App oder Ihr Modul hinzu:

Cool

dependencies {
    implementation "androidx.test.backup:backup:1.0.0-alpha03"
    implementation "androidx.test.backup:backup-host:1.0.0-alpha03"
}

Kotlin

dependencies {
    implementation("androidx.test.backup:backup:1.0.0-alpha03")
    implementation("androidx.test.backup:backup-host:1.0.0-alpha03")
}

Weitere Informationen zu Abhängigkeiten finden Sie unter Build-Abhängigkeiten hinzufügen.

Feedback

Ihr Feedback hilft uns, Jetpack zu verbessern. Wenn Sie neue Probleme entdecken oder Ideen zur Verbesserung dieser Bibliothek haben, lassen Sie es uns wissen. Bevor Sie ein neues Problem erstellen, sollten Sie sich jedoch die bereits gemeldeten Probleme in dieser Bibliothek ansehen. Wenn Sie sich einer Problemmeldung anschließen möchten, klicken Sie auf den Button mit dem Stern.

Neues Problem melden

Weitere Informationen finden Sie in der Dokumentation zum Issue Tracker.

Automatischer Sicherungswiederherstellungstest Version 1.0

Version 1.0.0-alpha03

21. Oktober 2026

androidx.test.backup:backup:1.0.0-alpha03 und androidx.test.backup:backup-host:1.0.0-alpha03 sind veröffentlicht. Version 1.0.0-alpha03 enthält diese Commits.

Neue Funktionen

  • Vereinfachte Testeinrichtung in Android Gradle-Plug-in-Backup-Test-Suites durch automatisches Targeting der getesteten App, wenn @BackupRestoreConfig weggelassen wird. (I1452b)
  • Unterstützung für das Übernehmen von @BackupRestoreConfig- und @Isolation-Einstellungen aus einer äußeren Testklasse in @Nested-Testklassen hinzugefügt. (Ia45a8)
  • Unterstützung für das direkte Einfügen von BackupRestoreController in Testklassenkonstruktoren und @BeforeAll-Einrichtungsmethoden hinzugefügt. (I6e822, Ia2ebd)
  • In Tests mit mehreren Geräten kann jetzt ein bestimmtes Gerät mit dem Attribut androidx.test.backup.device.serial.{role} an eine @Device-Rolle angepinnt werden. (I484be)

Fehlerkorrekturen

  • performBackup und performRestore wurden korrigiert, sodass Tests sofort fehlschlagen, anstatt ohne Meldung erfolgreich zu sein, wenn eine Sicherung übersprungen wird oder leer ist, wenn der Sicherungsdienst einen Fehler meldet oder wenn ein lokales Sicherungsarchiv zu einer anderen App oder einem anderen Gerät gehört. (I7673d, I478ad, I0b989, I9a0ea, I79567)
  • Es wurde ein Problem behoben, bei dem Tests auf nicht reagierenden Geräten unbegrenzt hängen blieben. Dazu wurden Zeitlimits für Sicherungs-, Wiederherstellungs-, Geräteaktionen und Bereinigungsschritte erzwungen. (I10661, I9cdee, If5f92)
  • Es wurde ein Problem behoben, bei dem performBackup generierte Sicherungsdateien nach Abschluss des Testlaufs gelöscht hat. Sicherungsarchive werden jetzt nach Beendigung der Tests auf dem Laufwerk beibehalten. (I8c13f)
  • Datenbanktest-Hilfsprogramme (StorageDomain.Database) wurden korrigiert, um null-Werte ordnungsgemäß zu speichern und zu prüfen, vorhandene Zeilen beim Seeding von Testdaten zu überschreiben, ungültige Tabellenkonfigurationen frühzeitig zu erkennen und einen Fehler auszugeben, wenn eine erwartete Datenbankdatei fehlt. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18)
  • SharedPreferences-Testhelfer wurden korrigiert, um Datentypen genau beizubehalten und die Prüfung auf null oder entfernte Einstellungen zu unterstützen. (I8456d9, I1d0fc2)
  • runOnDevice wurde korrigiert, um große Testnutzlasten ohne Absturz zu verarbeiten, für den Debugger zu pausieren, wenn waitForDebugger aktiviert ist, den Test-Runner in benutzerdefinierten Test-APK-Paketnamen zu finden und zu verhindern, dass interne Runner-Flags in Geräteaktionen gelangen. (Ic73bd, Iede17, I1d172, I84c15)
  • Die Stabilität und Geschwindigkeit der Tests wurde verbessert, indem eine einzige ADB-Verbindung für den gesamten Testlauf verwendet wird, APKs nur einmal pro Gerät installiert werden und ein klarer Fehler ausgegeben wird, wenn eine APK nicht installiert oder gestartet werden kann. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
  • Es wurde ein Fehler behoben, durch den fetchDeviceLogs leere Logdateien geschrieben hat. Außerdem wurde verhindert, dass abgebrochene Testläufe falsche Fehlerberichte generieren. (I736c4, I7b199, Ia847e)
  • backup-host-Abhängigkeiten wurden bereinigt, sodass adblib direkt für Aufrufer verfügbar ist und interne Logging- oder Testbibliotheken nicht mehr mit dem Klassenpfad Ihres Projekts in Konflikt stehen. (I6e822, Iba9a4, Ib4ec9)

Version 1.0.0-alpha02

7. Oktober 2026

androidx.test.backup:backup:1.0.0-alpha02 und androidx.test.backup:backup-host:1.0.0-alpha02 sind veröffentlicht. Version 1.0.0-alpha02 enthält diese Commits.

API-Änderungen

  • Nutzlastschlüssel werden jetzt als BackupActionInputKeys, BackupActionOutputKeys und BackupActionValues dokumentiert und ersetzen die Konstanten in BackupDeviceAction. Die Factories BackupDeviceActionResult.success() und failure() sowie die Zugriffsfunktionen isSuccess und errorMessage wurden hinzugefügt. (Ibd493)

Fehlerkorrekturen

  • BackupRestoreController.clearAppData löst jetzt IOException aus, wenn pm clear keinen Erfolg meldet, anstatt im Hintergrund fortzufahren. (I61556)
  • Shell-Argumente, die zur Ausführung auf dem Gerät an BackupRestoreController übergeben werden, werden jetzt korrekt maskiert, um Command Injection zu verhindern und sicherzustellen, dass Dateipfade mit Leerzeichen sicher verarbeitet werden.
  • Die gebündelten Speicheraktionen (PopulateStorageAction und AssertStorageAction) wurden gegen unbemerkte Verifizierungsdurchläufe gehärtet, damit Tests strikt fehlschlagen, wenn erwartete Daten fehlen.
  • Hostseitige Test-Orchestratoren berücksichtigen jetzt korrekt die vom Gerät gemeldeten Fehler bei In-Band-Aktionen, anstatt sie zu ignorieren.
  • Es wurde ein Problem mit dem Füllen von Datenbankzeilen behoben, indem das Datenbank-Wire-Format 'values' prozentcodiert wurde, um Datenbeschädigungen während des Nutzlasttransports zu verhindern.
  • Sicherheitslücken in androidx.test.backup:backup-host wurden durch ein Upgrade der Abhängigkeiten behoben.

Version 1.0.0-alpha01

23. September 2026

androidx.test.backup:backup:1.0.0-alpha01 und androidx.test.backup:backup-host:1.0.0-alpha01 sind veröffentlicht. Version 1.0.0-alpha01 enthält diese Commits.

Funktionen der ersten Version

Erste Version des Frameworks für automatisierte Sicherungs- und Wiederherstellungstests für Android. Diese Bibliothek bietet eine automatisierte End-to-End-Methode, um zu testen, ob Nutzerdaten und Kontoanmeldedaten Geräteupgrades und Cloud-Wiederherstellungen sicher überstehen. Anstatt sich auf manuelle Tests zu verlassen, können Entwickler den gesamten Lebenszyklus automatisieren: App-Status einrichten, gemäß den konfigurierten Regeln (dataExtractionRules und fullBackupContent) sichern, App löschen und die Datenintegrität nach der Wiederherstellung überprüfen. Das Framework bietet zwei Artefakte: androidx.test.backup:backup-host (wird auf dem Hostcomputer ausgeführt, um Sicherungs-, Lösch- und Wiederherstellungsvorgänge über ADB zu orchestrieren) und androidx.test.backup:backup (wird auf dem Gerät ausgeführt, um App-Daten zu füllen und zu prüfen).

  • BackupRestoreController: Die primäre hostseitige Schnittstelle, die zum Steuern von Sicherungs-, Lösch-, Wiederherstellungs- und Verifizierungsworkflows für ein Testgerät verwendet wird. Bietet praktische Pipelines wie runBackupRestoreFlow sowie detaillierte Vorgänge (performBackup, performRestore, clearAppData, fetchDeviceLogs und runOnDevice). Unterstützt sowohl Kotlin-Koroutinen als auch die asynchrone Ausführung von Java-ListenableFuture.
  • BackupRestoreExtension: Eine JUnit 5-Jupiter-Erweiterung, die BackupRestoreController-Parameter auflöst und in Testmethoden einfügt. Verwaltet eigenständige oder freigegebene ADB-Sitzungen, installiert automatisch getestete und Test-APKs, schließt Sperrbildschirme und Tastensperren, um durch Anmeldedaten geschützten Speicher freizugeben, und erzwingt die Isolation der Test-Sandbox.
  • BackupRestoreTestRunner: Ein On-Device-Instrumentation-Test-Runner, der in der Sandbox der Anwendung ausgeführt wird. Löst angeforderte BackupDeviceAction-Implementierungen, die von Host-Orchestratoren gesendet werden, dynamisch auf und führt sie aus. Leitet große JSON-Ergebnisnutzlasten sicher auf die Festplatte um, um Binder-Transaktionspufferlimits zu vermeiden.
  • BackupDeviceAction: Der Vertrag für benutzerdefinierte geräteseitige Aktionen, die während des Daten-Seedings (PHASE_POPULATE) oder der Validierung nach der Wiederherstellung (PHASE_VERIFY) direkt in der Sandbox der Zielanwendung ausgeführt werden.
  • StorageDomain: Stark typisierte Deskriptoren (Preference, Database, TextFile und BinaryFile), die zusammen mit vordefinierten Aktionshilfen (PopulateStorageAction und AssertStorageAction) verwendet werden, um SharedPreferences, SQLite-Datenbanken und Rohdateien sowohl in durch Anmeldedaten geschützten (CE) als auch in durch das Gerät geschützten (DE) Speicherkontexten automatisch ohne Boilerplate zu füllen und zu bestätigen.
  • BackupTransportMode: Gibt die Topologie für die Sicherungsübertragung der Plattform an, die während der Testläufe simuliert werden soll. Dazu gehören DEVICE_TO_DEVICE (Migration physischer Geräte über USB oder Wi-Fi Direct), CLOUD_ENCRYPTED (Cloud-Sicherung mit clientseitiger Ende-zu-Ende-Verschlüsselung), CLOUD_UNENCRYPTED (Standard-Cloud-Sicherung) und LOCAL (Sicherung des lokalen Dateisystems offline).
  • @Device und @Isolation: Host-Annotationen zum Auswählen verbundener Geräte, die bestimmten Seriennummern, API-Levels oder Rollen für verschiedene Geräte entsprechen, und zum Konfigurieren von Sandbox-Isolationsrichtlinien zwischen Testläufen (IsolationPolicy.AUTOMATIC im Vergleich zu IsolationPolicy.MANUAL).