Teste automatizado de restauração de backup

  
Estrutura de teste automatizada para verificar se os dados do usuário e as credenciais da conta sobrevivem com segurança a upgrades de dispositivos e restaurações na nuvem.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
23 de setembro de 2026 - - - 1.0.0-alpha01

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão de teste de restauração automática de backup 1.0

Versão 1.0.0-alpha01

23 de setembro de 2026

Lançamento de androidx.test.backup:backup:1.0.0-alpha01 e androidx.test.backup:backup-host:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estes commits.

Recursos da versão inicial

Versão inicial da estrutura de testes de backup e restauração automatizados para Android. Essa biblioteca oferece uma maneira automatizada e de ponta a ponta de testar se os dados do usuário e as credenciais da conta sobrevivem com segurança a upgrades de dispositivos e restaurações na nuvem. Em vez de depender de testes manuais, os desenvolvedores podem automatizar todo o ciclo de vida: propagação do estado do app, backup de acordo com as regras configuradas (dataExtractionRules e fullBackupContent), limpeza do app e verificação da integridade de dados após a restauração. O framework fornece dois artefatos: androidx.test.backup:backup-host (executado no computador host para orquestrar transmissões de backup, exclusão permanente e restauração pelo ADB) e androidx.test.backup:backup (executado no dispositivo para preencher e verificar dados de apps).

  • BackupRestoreController: a interface principal do lado do host usada para controlar fluxos de trabalho de backup, limpeza, restauração e verificação de um dispositivo de teste. Fornece pipelines convenientes, como runBackupRestoreFlow, além de operações refinadas (performBackup, performRestore, clearAppData, fetchDeviceLogs e runOnDevice). Compatível com corrotinas do Kotlin e execução assíncrona ListenableFuture do Java.
  • BackupRestoreExtension: uma extensão do JUnit 5 Jupiter que resolve e injeta parâmetros BackupRestoreController em métodos de teste. Gerencia sessões do adb independentes ou compartilhadas, instala automaticamente APKs testados e de teste, dispensa telas de bloqueio e keyguards do dispositivo para desbloquear o armazenamento protegido por credenciais e impõe o isolamento do sandbox de teste.
  • BackupRestoreTestRunner: um executor de testes Instrumentation no dispositivo que é executado dentro do sandbox do aplicativo. Resolve e executa dinamicamente as implementações de BackupDeviceAction solicitadas enviadas pelos orquestradores de host e redireciona com segurança grandes payloads de resultados JSON para o disco para evitar limites de buffer de transação do Binder.
  • BackupDeviceAction: o contrato para ações personalizadas do lado do dispositivo executadas diretamente na sandbox do aplicativo de destino durante a inclusão de dados (PHASE_POPULATE) ou a validação pós-restauração (PHASE_VERIFY).
  • StorageDomain: descritores fortemente tipados (Preference, Database, TextFile e BinaryFile) usados com helpers de ação pré-criados (PopulateStorageAction e AssertStorageAction) para propagar e declarar automaticamente SharedPreferences, bancos de dados SQLite e arquivos brutos em contextos de armazenamento protegidos por credenciais (CE) e por dispositivo (DE) sem boilerplate.
  • BackupTransportMode: especifica a topologia de transporte de backup da plataforma a ser simulada durante as passagens de teste, incluindo DEVICE_TO_DEVICE (migração de dispositivo físico via USB ou Wi-Fi Direct), CLOUD_ENCRYPTED (backup na nuvem com criptografia de ponta a ponta do lado do cliente), CLOUD_UNENCRYPTED (backup padrão na nuvem) e LOCAL (backup off-line do sistema de arquivos local).
  • @Device e @Isolation: anotações de host para selecionar dispositivos conectados que correspondem a números de série, níveis da API ou papéis multidispositivo específicos e para configurar políticas de isolamento de sandbox entre execuções de teste (IsolationPolicy.AUTOMATIC x IsolationPolicy.MANUAL).