测试应用

与其他类型的 Android 应用相比,Home API 应用有其独特的注意事项和挑战,包括对实体智能家居设备的依赖性、网络可靠性、安全性和隐私保护,以及设备和协议互操作性。这些差异会对测试产生影响。

设置测试环境

可靠的测试环境对于测试 Home API 应用至关重要。

最好将 Home API 测试设备隔离到专用 Wi-Fi 网络中。这样可以防止其他设备的干扰,并让您模拟不同的网络条件,例如带宽受限。

您需要使用各种类型的智能家居设备(来自不同制造商)进行测试。请务必使用真实的实体设备进行测试。虚拟设备和模拟器有其用途,但不应完全依赖它们。

同样,使用来自多个制造商、屏幕尺寸各异且搭载不同 Android 版本的各种 Android 设备测试应用,有助于验证更广泛的兼容性。

组装工具

以下工具可帮助您测试 Home API 应用:

工具 说明
Google Home Plugin for Android Studio 提供对 Google Assistant Simulator、Home Graph Viewer、Google Cloud Logging 和 Android 调试桥 (adb) 日志查看器的访问权限。
Google Home Playground 虽然不能替代使用实际实体设备进行的测试,但在许多测试场景中都非常有用。
Matter Virtual Device (MVD) 另一款模拟应用,在 Home API 应用中使用 Matter 设备进行测试时非常有用。
Espresso 可让您自动执行界面测试。您需要模拟底层 API 来模拟硬件互动。
网络模拟器 可让您模拟各种网络状况和 API 响应,如果您的 Home API 使用云后端,此功能会特别有用。
Android Studio Logcat 处理和分析日志数据。

应用不同的测试方法和策略

您应采用各种测试方法来测试 Home API 应用。如需了解不同方法的常规信息,请参阅在 Android 平台上测试应用。 除了所有 Android 应用都应进行的用户体验和安全测试之外,某些测试领域对于 Home API 应用尤为重要,以下部分将对此进行更详细的介绍。

功能测试

根据应用的功能,您可能需要特别注意以下某些方面:

  1. 设备发现和配对,包括初始设置和与新设备的配对、应用重启后重新发现现有设备、设备重启或网络更改。还要检查设备无响应或用户输入错误凭据等情况。
  2. 状态同步,确保应用及时更新以准确反映当前状态。
  3. 权限的管理和强制执行方式,尤其是当您的应用支持多用户或共享住宅访问权限时。这包括验证您的应用是否能妥善处理被撤消的权限。
  4. 如果您的应用支持场景(例如关闭所有灯的“晚安”场景),请测试场景创建、修改和执行。测试自动化,包括启动器和操作。

性能测试

验证应用是否能快速响应,且不会产生任何不必要的延迟。如果可以,请使用大量设备进行测试,以评估可伸缩性以及应用在负载下的表现。还要查看应用的 CPU、内存和电池消耗情况,尤其是在设备通信活跃期间,以确定其资源使用是否合理。

可靠性和稳定性测试

由于 Home API 应用依赖于网络连接,因此应针对以下场景对其进行测试:

  1. 网络波动
    • 模拟 Wi-Fi 掉线、信号弱和网络切换。
    • 验证您的应用是否能妥善处理断开连接和重新连接的情况。
    • 验证命令是否在连接恢复时排队并执行,或者是否提供适当的错误消息。
    • 从远程网络(而不仅仅是从家庭网络)测试应用。
  2. 设备断开连接
    • 拔出设备的电源线。
    • 重启设备。
  3. 并发操作
    • 快速发送一系列命令。
    • 让多位用户同时尝试控制同一设备。
    • 测试重叠的场景和自动化操作。
  4. 错误处理
    • 强制执行 API 错误,例如通过模拟 Cloud API 服务器响应。
    • 测试用户输入的无效内容。
    • 验证是否能实现优雅降级并提供信息丰富的错误消息。
  5. 可靠性 - 让应用和已连接的设备长时间运行,以发现可能存在的内存泄漏或稳定性问题。