백업 테스트
| 최근 업데이트 | 안정화 버전 | 출시 후보 버전 | 베타 버전 | 알파 버전 |
|---|---|---|---|---|
| 2026년 10월 21일 | - | - | - | 1.0.0-alpha03 |
종속 항목 선언
테스트 백업의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.
다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.
Groovy
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") }
종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.
의견
제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.
자세한 내용은 Issue Tracker 문서를 참고하세요.
자동 백업 복원 테스트 버전 1.0
버전 1.0.0-alpha03
2026년 10월 21일
androidx.test.backup:backup:1.0.0-alpha03 및 androidx.test.backup:backup-host:1.0.0-alpha03이 출시되었습니다. 버전 1.0.0-alpha03에는 이러한 커밋이 포함되어 있습니다.
새로운 기능
@BackupRestoreConfig가 생략된 경우 테스트된 앱을 자동으로 타겟팅하여 Android Gradle 플러그인 백업 테스트 모음에서 테스트 설정을 간소화했습니다. (I1452b)@Nested테스트 클래스의 외부 테스트 클래스에서@BackupRestoreConfig및@Isolation설정을 상속하는 기능이 추가되었습니다. (Ia45a8)- 테스트 클래스 생성자 및
@BeforeAll설정 메서드에BackupRestoreController를 직접 삽입하는 지원이 추가되었습니다. (I6e822, Ia2ebd) androidx.test.backup.device.serial.{role}속성을 사용하여 멀티 디바이스 테스트에서 특정 기기를@Device역할에 고정하는 기능이 추가되었습니다. (I484be)
버그 수정
- 백업이 건너뛰어지거나 비어 있거나, 백업 지원 서비스에서 오류가 발생하거나, 로컬 백업 보관 파일이 다른 앱 또는 기기에 속하는 경우 테스트가 자동으로 통과되지 않고 즉시 실패하도록
performBackup및performRestore를 수정했습니다. (I7673d, I478ad, I0b989, I9a0ea, I79567) - 백업, 복원, 기기 작업, 정리 단계에서 제한 시간을 적용하여 응답하지 않는 기기에서 테스트가 무기한 중단되는 문제를 수정했습니다. (I10661, I9cdee, If5f92)
- 테스트 실행이 완료될 때 생성된 백업 파일을 삭제하는
performBackup를 수정하여 이제 테스트가 종료된 후에도 백업 보관 파일이 디스크에 보관됩니다. (I8c13f) null값을 올바르게 저장하고 확인하고, 테스트 데이터를 시드할 때 기존 행을 덮어쓰고, 잘못된 테이블 구성을 조기에 포착하고, 예상 데이터베이스 파일이 누락된 경우 실패하도록 데이터베이스 테스트 도우미 (StorageDomain.Database)를 수정했습니다. (Ib4767, Iddf87, I19c43, Ie8d78, I8bc18)- 데이터 유형을 정확하게 보존하고
null또는 삭제된 환경설정 확인을 지원하도록SharedPreferences테스트 도우미를 수정했습니다. (I8456d9, I1d0fc2) runOnDevice를 수정하여 비정상 종료 없이 대규모 테스트 페이로드를 처리하고,waitForDebugger가 사용 설정된 경우 디버거를 일시중지하고, 맞춤 테스트 APK 패키지 이름에서 테스트 실행기를 찾고, 내부 실행기 플래그가 기기 작업으로 유출되지 않도록 차단합니다. (Ic73bd, Iede17, I1d172, I84c15)- 테스트 실행 전반에서 단일 ADB 연결을 공유하고 기기당 한 번만 APK를 설치하며 APK 설치 또는 실행에 실패할 때 명확하게 실패를 표시하여 테스트 안정성과 속도를 개선했습니다. (I62717, Iabf75, I14e6f, I4c3da5, I54077, Iee84e)
fetchDeviceLogs에서 빈 로그 파일을 작성하는 문제를 수정하고 취소된 테스트 실행에서 잘못된 실패 보고서를 생성하지 않도록 했습니다. (I736c4, I7b199, Ia847e)backup-host종속 항목을 정리하여 호출자가adblib를 직접 사용할 수 있으며 내부 로깅 또는 테스트 라이브러리가 더 이상 프로젝트의 클래스 경로와 충돌하지 않습니다. (I6e822, Iba9a4, Ib4ec9)
버전 1.0.0-alpha02
2026년 10월 7일
androidx.test.backup:backup:1.0.0-alpha02 및 androidx.test.backup:backup-host:1.0.0-alpha02이 출시되었습니다. 버전 1.0.0-alpha02에는 이러한 커밋이 포함되어 있습니다.
API 변경사항
- 페이로드 키가 이제
BackupActionInputKeys,BackupActionOutputKeys,BackupActionValues로 문서화되어BackupDeviceAction의 상수를 대체합니다.BackupDeviceActionResult.success()및failure()팩토리와isSuccess및errorMessage접근자가 추가되었습니다. (Ibd493)
버그 수정
- 이제
BackupRestoreController.clearAppData는pm clear가 성공을 보고하지 않을 때 자동으로 계속하는 대신IOException을 발생시킵니다. (I61556) - 기기 실행을 위해
BackupRestoreController에 전달된 셸 인수가 이제 올바르게 이스케이프 처리되어 명령어 삽입을 방지하고 공백이 있는 파일 경로가 안전하게 처리됩니다. - 예상 데이터가 누락된 경우 테스트가 엄격하게 실패하도록 번들 저장소 작업 (
PopulateStorageAction및AssertStorageAction)을 강화하여 자동 확인 통과를 방지했습니다. - 이제 호스트 측 테스트 조정자가 기기에서 보고한 인밴드 작업 실패를 무시하지 않고 올바르게 처리합니다.
- 데이터베이스
'values'유선 형식을 퍼센트 인코딩하여 데이터베이스 행 채우기 문제를 해결하고 페이로드 전송 중 데이터 손상을 방지했습니다. - 종속 항목을 업그레이드하여
androidx.test.backup:backup-host의 보안 취약점을 해결했습니다.
버전 1.0.0-alpha01
2026년 9월 23일
androidx.test.backup:backup:1.0.0-alpha01 및 androidx.test.backup:backup-host:1.0.0-alpha01이 출시되었습니다. 버전 1.0.0-alpha01에는 이러한 커밋이 포함되어 있습니다.
초기 출시의 기능
Android용 자동 백업 및 복원 테스트 프레임워크의 첫 번째 출시 버전입니다. 이 라이브러리는 사용자 데이터와 계정 사용자 인증 정보가 기기 업그레이드 및 클라우드 복원 후에도 안전하게 유지되는지 테스트하는 자동화된 엔드 투 엔드 방식을 제공합니다. 개발자는 수동 테스트에 의존하는 대신 앱 상태 시드, 구성된 규칙 (dataExtractionRules 및 fullBackupContent)에 따른 백업, 앱 완전 삭제, 복원 후 데이터 무결성 확인 등 전체 수명 주기를 자동화할 수 있습니다. 프레임워크는 두 가지 아티팩트를 제공합니다. androidx.test.backup:backup-host (호스트 컴퓨터에서 실행되어 ADB를 통해 백업, 완전 삭제, 복원 패스를 조정함)와 androidx.test.backup:backup (기기에서 실행되어 앱 데이터를 채우고 확인함)입니다.
BackupRestoreController: 테스트 기기의 백업, 완전 삭제, 복원, 확인 워크플로를 제어하는 데 사용되는 기본 호스트 측 인터페이스입니다.runBackupRestoreFlow와 같은 편의 파이프라인과 세분화된 작업 (performBackup,performRestore,clearAppData,fetchDeviceLogs,runOnDevice)을 제공합니다. Kotlin 코루틴과 JavaListenableFuture비동기 실행을 모두 지원합니다.BackupRestoreExtension:BackupRestoreController매개변수를 확인하고 테스트 메서드에 삽입하는 JUnit 5 Jupiter 확장 프로그램입니다. 독립형 또는 공유 ADB 세션을 관리하고, 테스트된 APK와 테스트 APK를 자동으로 설치하고, 기기 잠금 화면과 키가드를 닫아 사용자 인증 정보로 보호된 저장소를 잠금 해제하고, 테스트 샌드박스 격리를 시행합니다.BackupRestoreTestRunner: 애플리케이션 샌드박스 내에서 실행되는 기기 내Instrumentation테스트 실행기입니다. 호스트 조정자가 전달한 요청된BackupDeviceAction구현을 동적으로 확인하고 실행하며, 대규모 JSON 결과 페이로드를 디스크로 안전하게 리디렉션하여 Binder 트랜잭션 버퍼 제한을 방지합니다.BackupDeviceAction: 데이터 시딩 (PHASE_POPULATE) 또는 복원 후 검증 (PHASE_VERIFY) 중에 대상 애플리케이션 샌드박스 내에서 직접 실행되는 맞춤 기기 측 작업의 계약입니다.StorageDomain: 사전 빌드된 작업 도우미 (PopulateStorageAction및AssertStorageAction)와 함께 사용되는 강력한 유형의 설명자 (Preference,Database,TextFile,BinaryFile)로, 상용구 없이 사용자 인증 정보 보호 (CE) 및 기기 보호 (DE) 저장소 컨텍스트 모두에서SharedPreferences, SQLite 데이터베이스, 원시 파일을 자동으로 시드하고 어설션합니다.BackupTransportMode: 테스트 통과 중에 시뮬레이션할 플랫폼 백업 전송 토폴로지를 지정합니다. 여기에는DEVICE_TO_DEVICE(USB 또는 Wi-Fi Direct를 통한 실제 기기 이전),CLOUD_ENCRYPTED(클라이언트 측 엔드 투 엔드 암호화를 사용하는 클라우드 백업),CLOUD_UNENCRYPTED(표준 클라우드 백업),LOCAL(오프라인 로컬 파일 시스템 백업)가 포함됩니다.@Device및@Isolation: 특정 일련번호, API 수준 또는 멀티 디바이스 역할과 일치하는 연결된 기기를 선택하고 테스트 실행 간에 샌드박스 격리 정책을 구성하기 위한 호스트 주석 (IsolationPolicy.AUTOMATIC및IsolationPolicy.MANUAL).