设备农场是一个物理或虚拟设备池,用于测试不同型号和配置的移动应用、网站和软件。 开发人员和 QA 团队使用这些环境来运行手动或自动测试,而无需在现场保留所有必需的手机或平板电脑。
团队选择操作系统、屏幕尺寸、制造商、浏览器、语言和其他重要的设置。 然后,他们可以在一台设备上或并行运行相同的测试并比较结果。
在移动广告中,设备农场还可以描述一组用于创建虚假安装、点击或参与的设备。 除非另有说明,本文使用软件测试的含义。
什么是设备农场?
设备农场将设备池与选择设备、运行测试和审查结果所需的工具相结合。 它可以在公司内部维护或由测试提供商托管。 可以通过浏览器、命令行工具或 API 进行访问。
该术语并不描述一种固定的架构。 AWS 设备农场 在 AWS 托管的物理手机和平板电脑上运行测试。 Firebase 测试实验室 提供物理设备和虚拟 Android 设备。
设备农场如何工作?
大多数设备农场工作流程都遵循五个阶段。
- 准备应用程序和测试
团队上传应用程序和测试包、打开网站或启动交互式会话。
- 选择设备
测试人员选择一台设备或创建一个设备池。 选择标准可能包括型号、操作系统版本、屏幕尺寸、区域设置、浏览器和方向。
- 构建测试矩阵
测试矩阵将选定的测试与所需的设备配置相结合。 重点矩阵涵盖了对产品最重要的设备和条件。
- 运行手动或自动测试
手动会话允许测试人员探索应用程序、重现客户问题或检查界面。 自动运行使用测试脚本和支持的框架。 当容量可用时,该服务可以在多个设备上并行运行测试。
- 查看结果
该平台收集结果、日志、屏幕截图、视频、崩溃信息和测试工件。 然后,团队可以隔离仅影响矩阵的一部分的故障。
并行执行可以缩短反馈周期,但当请求的设备繁忙时,公共服务仍可能对测试进行排队。 并发性取决于服务和计划。
设备农场的类型
设备场可以按设备类型和基础设施运行位置进行分类。 这些是单独的选择。 云服务可以提供物理设备、虚拟设备或两者兼而有之。
-
真实设备场使用物理硬件。 它们帮助团队测试与特定型号、制造商软件、相机、电池使用、生物识别和其他硬件功能相关的行为。 托管硬件在运营商连接、传感器或保存状态方面可能仍然存在限制。
-
虚拟设备场运行模拟器或模拟器实例。 它们对于早期开发、常规回归测试和广泛的操作系统覆盖非常有用。 一个场可以运行多个 安卓模拟器,它们使用主机资源和系统映像。 依赖于物理硬件的测试稍后可能需要真实的设备。
-
混合设备场结合了这两种类型。 团队可以对虚拟设备进行频繁检查,然后使用选定的物理模型进行发布测试和需要物理硬件的案例。
-
私有设备场使组织能够直接控制硬件、网络访问、计划和数据。 组织还必须购买、充电、更新、连接和更换设备。
-
提供商托管的农场将维护工作转移给第三方。 它们提供远程访问和更广泛的目录,但可能会引入队列、会话限制、经常性成本和数据要求。
常见测试用途
当软件必须在不同设备之间保持一致的行为时,设备场最有用。
-
兼容性测试。 团队跨操作系统、屏幕尺寸、浏览器和制造商检查布局、导航、权限和应用程序行为。
-
功能和回归测试。 测试套件确认重要功能在代码更改后仍然有效。 在多个设备上运行相同的套件可能会暴露出单个开发手机可能会错过的故障。
-
探索性测试。 测试人员打开远程设备并调查应用程序,而无需遵循固定脚本。 这对于重现客户报告和检查意外行为非常有用。
-
自动化移动测试。 支持的框架可以控制应用程序、执行操作并检查结果。 Appium、Espresso 和 XCUITest 是常见的示例,但平台支持各不相同。
-
发布验证。 团队在发布前运行一个重点矩阵,以通过可重复的证据检查重要配置。
-
在特定设备上进行调试。 日志、屏幕截图、视频和崩溃详细信息可帮助开发人员了解为何在一种型号或操作系统版本上出现故障。
设备农场可以连接到持续集成。 新的构建可以触发测试并将结果返回给开发团队。 在每台设备上运行每个测试通常会增加成本和噪音。
好处和实际限制
主要好处是更广泛的访问,无需将硬件分配给每个测试人员。 远程访问还可以帮助团队跨地点工作。
其他实际好处包括:
- 跨定义配置的可重复测试
- 并行执行以获得更快的反馈
- 集中日志和测试证据
- 访问选定的当前和旧设备
- 使用托管服务减少本地硬件处理
- 更轻松地比较与特定设备相关的故障
覆盖范围仍然取决于测试选择。 如果矩阵不能反映用户群,那么大的目录就没用。 时序、网络条件和系统对话也会使自动化测试变得不可靠。
常见的限制包括:
- 请求的设备可能不可用或已排队
- 会话和自动运行可能有时间限制
- 帐户、应用程序数据和设备状态可能会被重置
- 运营商网络、SIM 功能、传感器和外围设备可能受到限制
- 共享基础设施可能需要额外的安全审查
- 大型矩阵会增加成本和结果分析时间
- 测试自动化可能会因与应用程序无关的原因而失败
真实设备可提高硬件覆盖范围,但无法重现所有客户情况。 虚拟设备提供速度,但可能会错过硬件详细信息。 每个测试都需要一个能够可靠地回答它的环境。
相关移动环境有何不同
移动环境的名称经常重叠,因此预期的工作流程比标签更重要。
| 环境 | 主要单位 | 典型用途 | 状态模式 |
|---|---|---|---|
| 设备农场 | 测试设备池 | 跨设备软件测试 | 通常围绕测试运行进行组织 |
| 设备云 | 通过云基础设施访问的设备 | 远程手动或自动测试 | 取决于提供商 |
| 安卓模拟器 | 一个虚拟的Android环境 | 开发、调试和测试 | 可配置实例 |
| 手机农场 | 一组或一组电话 | 跨设备重复操作 | 通常随着时间的推移保持活跃 |
| 云手机 | 远程移动环境 | 持久的应用程序访问和操作工作流程 | 通常旨在保留状态 |
设备农场和设备云有时是同义词。 设备云通常强调互联网访问,而设备农场也可能描述私人实验室。
安卓模拟器是一个虚拟环境。 虚拟设备农场将许多模拟器实例组织到一个测试池中。
手机农场支持在许多手机上重复操作,而不是结构化应用测试。 手机农场替代方案 用远程管理的移动环境替换物理机架,但它不会创建 QA 矩阵。
云手机 在工作会话之间保持可用。 设备农场专注于测试覆盖率和证据。 云手机专注于持续访问、保存的应用状态和正在进行的工作。
云手机适合什么地方
设备农场回答测试问题。 该应用程序是否可以在选定的设备和配置上运行? 研究结果表明构建需要在哪些方面进行更多工作。
云手机回答操作问题。 随着时间的推移,团队能否返回远程 Android 环境、其应用程序及其保存的状态?
这两种环境可以相辅相成。 QA 团队可以在设备农场中验证应用或流程。 运营团队可以使用 MoreLogin 云手机 来实现持久 Android 环境、远程访问、团队权限或重复任务。 它不会取代涵盖许多设备的专门测试服务。
移动广告欺诈的含义
在移动广告和归因中,设备农场可以指用于生成虚假安装、点击、评分、评论或其他参与的一组设备。 此活动不同于合法软件测试。
周围的语言通常表明适用的含义。 对测试矩阵、应用程序构建、QA、日志和兼容性的引用都指向测试。 提及虚假参与、归因滥用或安装欺诈都指向欺诈的含义。 根据定义,手机农场并不违法,但在其上进行的活动可能违反平台规则或适用法律。
常见问题
简单来说什么是设备农场?
它使团队可以访问许多设备环境,以跨不同配置测试相同的应用程序或网站。
设备农场是由真实设备组成的吗?
有些使用物理设备。 其他人使用虚拟设备或两者兼而有之。 AWS 使用物理设备,而 Firebase 测试实验室包括物理和虚拟 Android 设备。
设备农场和模拟器之间有什么区别?
模拟器是一种虚拟环境。 设备农场组织许多设备或实例、运行测试并收集结果。
设备农场与设备云相同吗?
这些术语经常重叠。 设备云强调互联网访问,而设备农场也可以描述私人实验室。 提供商以不同的方式使用标签。
设备农场可以运行手动和自动测试吗?
许多平台都支持两者。 手动会话有助于探索和错误重现。 自动运行处理可重复的检查。 框架支持各不相同。
设备农场和手机农场有什么区别?
设备农场围绕测试覆盖率和报告进行组织。 手机农场支持许多手机上的持续活动,并且可以出现在合法操作和欺诈讨论中。
设备农场与云手机相同吗?
不。 设备农场跨多个环境测试软件。 云手机提供对一个移动环境的持续远程访问。 某些功能可能会重叠。
设备农场测试的主要限制是什么?
限制包括设备可用性、队列、会话上限、网络条件、重置、不支持的硬件、成本和薄弱的测试设计。 更多设备并不自动意味着更好的覆盖范围。

ZH
