他のタイプの iOS アプリとは異なり、Home APIs アプリには、物理的なスマートホーム デバイスへの依存関係、ネットワークの信頼性、セキュリティとプライバシー、デバイスとプロトコルの相互運用性など、独自の考慮事項と課題があります。これらの違いはテストに影響します。
テスト環境のセットアップ
Home APIs アプリをテストするには、堅牢なテスト環境が不可欠です。
テストデバイスを専用の Wi-Fi ネットワークに分離することをおすすめします。これにより、他のデバイスからの干渉を防ぎ、帯域幅の制限など、さまざまなネットワーク条件をシミュレートできます。
さまざまなメーカーのさまざまな種類のスマートホーム デバイスを使用してテストすることをおすすめします。必ず実機でテストしてください。仮想デバイスやエミュレータは便利ですが、それだけに頼るべきではありません。
同様に、さまざまなメーカーのさまざまな iOS デバイスで、画面サイズや iOS のバージョンを変えてアプリをテストすると、より広範な互換性を検証できます。
ツールを準備する
Home APIs アプリのテストには、次のツールが役立ちます。
| ツール | 説明 |
|---|---|
| Google Home Playground | 実際の物理デバイスでのテストの代わりにはなりませんが、多くのテストシナリオで非常に役立ちます。 |
| Matter Virtual Device (MVD) | Home APIs アプリで Matter デバイスをテストする際に役立つもう 1 つのエミュレーション アプリ。 |
| ネットワーク エミュレータ | さまざまなネットワーク条件と API レスポンスをシミュレートできます。これは、クラウド バックエンドを使用する場合に特に役立ちます。 |
| TestFlight | UI テストを自動化できます。ハードウェアのインタラクションをシミュレートするには、基盤となる API をモックする必要があります。 |
| Xcode コンソール | ログデータの処理と分析を行う。 |
| XCUIAutomation | UI テストを自動化できます。ハードウェアのインタラクションをシミュレートするには、基盤となる API をモックする必要があります。 |
さまざまなテスト手法と戦略を適用する
Home APIs アプリには、さまざまなテスト手法を適用する必要があります。さまざまな方法の一般的な情報については、TestFlight でアプリをテストするをご覧ください。すべての iOS アプリで実施されることが想定されているユーザー エクスペリエンスとセキュリティのテストに加えて、Home APIs アプリに特に関連するテスト領域がいくつかあります。これらについては、以降のセクションで詳しく説明します。
機能テスト
アプリの機能によっては、次の領域に特に注意を払う必要があります。
- デバイスの検出とペア設定。これには、初期設定と新しいデバイスとのペア設定、アプリの再起動、デバイスの再起動、ネットワークの変更後の既存のデバイスの再検出が含まれます。また、デバイスが応答しない場合や、ユーザーが誤った認証情報を入力した場合などのシナリオも確認します。
- 状態の同期。アプリが更新され、現在の状態がタイムリーに正確に反映されるようにします。
- 権限の管理方法と適用方法(特に、アプリが複数のユーザーまたは共有の家へのアクセスをサポートしている場合)。これには、取り消された権限をアプリが適切に処理することの確認も含まれます。
- アプリがシーン(すべての照明を消す「おやすみ」シーンなど)をサポートしている場合は、シーンの作成、変更、実行をテストします。開始条件やアクションなど、自動化をテストします。
パフォーマンス テスト
アプリが応答し、不要なレイテンシが発生しないことを確認します。可能であれば、多数のデバイスでテストして、スケーラビリティと負荷がかかった状態でのアプリのパフォーマンスを評価します。また、アプリの CPU、メモリ、バッテリーの消費量(特にデバイスの通信がアクティブなとき)を調べて、リソースの使用量が妥当かどうかを確認します。
信頼性と安定性のテスト
Home APIs アプリはネットワーク接続に依存しているため、次のシナリオでテストする必要があります。
- ネットワークの変動
- Wi-Fi の切断、電波の弱さ、ネットワークの切り替えをシミュレートします。
- アプリが切断と再接続を適切に処理することを確認します。
- 接続が復元されたときにコマンドがキューに登録されて実行されることを確認するか、適切なエラー メッセージを表示します。
- ホーム ネットワークだけでなく、リモート ネットワークからもアプリをテストします。
- デバイスの接続解除
- デバイスの電源プラグを抜きます。
- デバイスの電源をオフにして再度オンにします。
- 同時実行オペレーション
- 一連のコマンドをすばやく送信する。
- 複数のユーザーが同じデバイスを同時に操作しようとしている。
- 重複するシーンと自動化をテストします。
- エラー処理
- クラウド API サーバーのレスポンスをモックするなどして、API エラーを強制的に発生させる。
- ユーザーからの無効な入力をテストします。
- グレースフル デグラデーションと有益なエラー メッセージを確認します。
- 信頼性 - アプリと接続済みデバイスを長時間実行して、メモリリークや安定性の問題がないか確認します。
アプリをリリースする前に
Home API を使用するアプリは、リリース前に徹底的にテストして、すべての機能要件と品質要件を満たしていることを確認することをおすすめします。Google Home APIs アプリテスト レポートをガイドとして使用して、アプリの機能をテストします。
Google Home APIs アプリテスト レポートの提出を求められた場合は、Google Technical Account Manager (TAM) にレポートを送信してください。レポートを確認し、アプリのテスト時に参照として使用します。