다른 유형의 Android 앱과 달리 Home API 앱에는 실제 스마트 홈 기기, 네트워크 안정성, 보안 및 개인 정보 보호, 기기 및 프로토콜 상호 운용성과 같은 고유한 고려사항과 문제가 있습니다. 이러한 차이는 테스트에 영향을 미칩니다.
테스트 환경 설정
Home API 앱을 테스트하려면 강력한 테스트 환경이 필요합니다.
전용 Wi-Fi 네트워크에서 Home API 테스트 기기를 격리하는 것이 좋습니다. 이렇게 하면 다른 기기의 간섭을 방지하고 제한된 대역폭과 같은 다양한 네트워크 조건을 시뮬레이션할 수 있습니다.
다양한 제조업체의 다양한 스마트 홈 기기 유형을 사용하여 테스트하는 것이 좋습니다. 실제 물리적 기기로 테스트해야 합니다. 가상 기기와 에뮬레이터는 유용하지만 전적으로 의존해서는 안 됩니다.
마찬가지로 다양한 제조업체의 여러 Android 기기에서 다양한 화면 크기와 서로 다른 Android 버전을 실행하여 앱을 테스트하면 더 광범위한 호환성을 확인할 수 있습니다.
도구 조립
다음 도구는 Home API 앱을 테스트하는 데 유용합니다.
도구 | 설명 |
---|---|
Google Home Plugin for Android Studio | Google Assistant Simulator, 홈 그래프 뷰어, Google Cloud Logging, Android 디버그 브리지 (adb) 로그 뷰어에 대한 액세스를 제공합니다. |
Google Home Playground | 실제 물리적 기기를 사용한 테스트를 대체할 수는 없지만 많은 테스트 시나리오에서 유용합니다. |
Matter Virtual Device (MVD) | Home API 앱에서 Matter 기기로 테스트할 때 유용할 수 있는 또 다른 에뮬레이션 앱입니다. |
Espresso | UI 테스트를 자동화할 수 있습니다. 하드웨어 상호작용을 시뮬레이션하려면 기본 API를 모의해야 합니다. |
네트워크 에뮬레이터 | 다양한 네트워크 조건과 API 응답을 시뮬레이션할 수 있습니다. 특히 Home API가 클라우드 백엔드를 사용하는 경우 유용합니다. |
Android 스튜디오 Logcat | 로그 데이터를 처리하고 분석합니다. |
다양한 테스트 접근 방식과 전략 적용
다양한 테스트 접근 방식을 Home APIs 앱에 적용해야 합니다. 다양한 방법에 관한 일반적인 정보는 Android에서 앱 테스트를 참고하세요. 모든 Android 앱이 거쳐야 하는 사용자 환경 및 보안 테스트 외에도 일부 테스트 영역은 특히 Home API 앱과 관련이 있으며 다음 섹션에서 자세히 설명합니다.
기능 테스트
앱의 기능에 따라 다음 영역에 특히 주의해야 할 수 있습니다.
- 초기 설정 및 새 기기와의 페어링, 앱 다시 시작 후 기존 기기 재검색, 기기 재부팅 또는 네트워크 변경을 포함한 기기 검색 및 페어링 또한 응답하지 않는 기기나 사용자가 잘못된 사용자 인증 정보를 입력하는 등의 시나리오도 확인합니다.
- 상태 동기화: 앱이 현재 상태를 정확하게 반영하도록 적시에 업데이트합니다.
- 권한이 관리되고 적용되는 방식(특히 앱에서 여러 사용자 또는 공유 홈 액세스를 지원하는 경우) 여기에는 앱이 취소된 권한을 적절하게 처리하는지 확인하는 작업이 포함됩니다.
- 앱이 모든 조명을 끄는 '취침' 장면과 같은 장면을 지원하는 경우 장면 생성, 수정, 실행을 테스트합니다. 시작 조건과 작업을 비롯한 자동화를 테스트합니다.
성능 테스트
앱이 응답성이 있고 불필요한 지연 시간이 발생하지 않는지 확인합니다. 가능하다면 많은 수의 기기로 테스트하여 확장성과 부하가 걸렸을 때 앱의 성능을 평가하세요. 특히 활성 기기 통신 중에 앱의 CPU, 메모리, 배터리 소모량도 살펴보고 리소스 사용이 합리적인지 확인합니다.
신뢰성 및 안정성 테스트
홈 API 앱은 네트워크 연결에 종속되므로 다음 시나리오에 대해 테스트해야 합니다.
- 네트워크 변동
- Wi-Fi 끊김, 약한 신호, 네트워크 전환을 시뮬레이션합니다.
- 앱이 연결 해제 및 재연결을 적절하게 처리하는지 확인합니다.
- 연결이 복원되면 명령어가 대기열에 추가되고 실행되는지 확인하거나 적절한 오류 메시지를 제공합니다.
- 홈 네트워크뿐만 아니라 원격 네트워크에서도 앱을 테스트합니다.
- 기기 연결 해제
- 기기의 전원 코드를 뽑습니다.
- 기기의 전원을 껐다 켭니다.
- 동시 작업
- 명령어를 빠르게 연속으로 전송합니다.
- 여러 사용자가 동시에 동일한 기기를 제어하도록 합니다.
- 중복되는 장면과 자동화를 테스트합니다.
- 오류 처리
- 클라우드 API 서버 응답을 모의하여 API 오류를 강제합니다.
- 사용자의 잘못된 입력을 테스트합니다.
- 단계적 성능 저하 및 유용한 오류 메시지를 확인합니다.
- 안정성 - 앱과 연결된 기기를 장시간 실행하여 메모리 누수나 안정성 문제를 발견합니다.