2. 测试环境与硬件资源要求

章节定位:本章定义了开展 MediaCodec 硬件权限回归测试所必需的设备型号、系统版本及硬件权限配置集合。测试团队必须严格按照本章清单与配置表搭建环境,任何偏差均会导致测试结果无效或无法复现。

2.1 适用场景

  • 首次启动 MediaCodec 硬件权限回归测试套件前,需要确认并准备全部硬件与软件资源。
  • 测试环境发生变更(如设备更换、系统升级、权限策略调整)后,需要重新对照本章清单进行环境验证。
  • 跨厂商/跨芯片平台的兼容性回归测试,需要针对每个目标平台维护独立的设备型号清单与权限配置表。
  • 第三方实验室或外部合作团队进行测试环境部署时,以此章节为唯一准入标准。

2.2 前置条件

  1. 测试计划已通过评审,明确了回归测试覆盖的芯片平台与机型号范围。
  2. 测试经理已协调设备管理员完成测试设备出库或远程设备池分配。
  3. 被测设备已恢复出厂设置或至少未经过深度权限篡改(root 状态需单独标识)。
  4. 测试工程师具备对应设备型号的 ADB/USB 驱动及刷机工具(仅用于系统版本验证,非刷机操作)。
  5. 已获取本章节附件所需的所有官方系统镜像版本号与 OTA 升级记录。

2.3 操作步骤

  1. 收集设备型号清单:根据测试计划中的芯片平台(Qualcomm、MediaTek、Exynos、Tensor、麒麟等),从设备库中筛选出代表型号,填入《设备型号清单表》。每款芯片至少选择 2 台不同 SoC 代际的设备。
  2. 确认系统版本:使用 ADB 命令查询每台设备的系统版本,确保回归测试所需的 API 层级(API 29+)及厂商扩展版本与清单一致。
    adb shell getprop ro.build.version.sdk
    adb shell getprop ro.build.version.release
    adb shell getprop ro.build.fingerprint
    将输出结果与本章“系统版本要求表”逐项核对。
  3. 配置硬件权限:针对每台设备,按照《硬件权限配置表》执行权限授予或关闭操作。部分权限需要通过 Setting provider 或权限管理器手动变更。
    # 示例:授予应用相机硬件权限(根据实际包名调整)
    adb shell pm grant com.example.mediacodec.test android.permission.CAMERA
    # 示例:关闭硬件加速渲染(回归测试需验证纯软件路径时)
    adb shell settings put global force_gpu_rendering 0
    权限变更风险:某些硬件权限(如 android.permission.MEDIA_CONTENT_CONTROL)需要系统签名或特权权限,若无法直接通过 ADB 设置,需使用具有 system 签名的 test-keys 镜像或 root 授权。该操作应在隔离环境中进行,避免影响生产设备。
  4. 验证配置生效:通过 adb shell dumpsys media.camera、adb shell dumpsys media.player 等命令确认权限状态已正确读取。记录每个权限项的实际状态。
  5. 填写环境准备记录表:将步骤1-4的核对结果填入《记录材料》中的检查表,并由测试工程师与设备管理员双人签字确认。

2.4 输入输出物

类型 名称 格式/内容 来源 去向
输入 测试计划 PDF / 文档,包含芯片平台列表 测试经理 测试工程师
输入 设备库台账 电子表格,含设备 IMEI/SN、型号、SoC 设备管理员 测试工程师
输出 设备型号清单表 Excel / CSV,每行一台设备 测试工程师 后续测试环境固化
输出 系统版本确认表 Excel / 检查表(含 API 级别、build fingerprint) 测试工程师 回归测试报告附件
输出 硬件权限配置表 Excel / CSV,每个权限项含状态字段 测试工程师 测试脚本环境检查模块
输出 环境准备记录(含检查表) PDF(签名扫描件) 测试工程师 & 设备管理员 质量管理部归档

2.5 责任边界

  • 测试工程师:负责执行步骤1-5,填写所有输出物,确保设备型号、系统版本、权限配置与本章要求完全一致。
  • 设备管理员:提供设备库台账,物理或远程交付设备,并对设备硬件健康度(无摄像头/编解码器损坏)负责。
  • 系统管理员(可选):在需要使用 root 权限或特权镜像时,负责制作并安装授权镜像,并记录修改操作。
  • 测试经理:审核「环境准备记录」,对列表中设备/系统/权限与测试计划的匹配性承担最终审批责任。

2.6 记录材料(检查表模板)

以下检查表须在环境搭建完毕后逐项填写,并附签名与日期。

检查项 标准/要求 完成状态(✔/✘) 备注
设备型号选自清单 与测试计划芯片平台一一对应
系统 API 等级 ≥29(Android 10 及以上) 记录实际 API
厂商扩展版本 与回归测试基线版本一致 记录 fingerprint
CAMERA 权限 granted / denied(按测试用例需求)
RECORD_AUDIO 权限 granted / denied
FOREGROUND_SERVICE_MEDIA_PLAYBACK 权限 granted / denied
硬件加速开关(global) force_gpu_rendering = 0(回归测试基线)
设备无 root(如需测试非特权路径) adb root 返回 error: device unauthorized 若使用特权镜像需单独备注

测试工程师签字:__________    日期:__________    设备管理员签字:__________    日期:__________

2.7 异常处理

异常场景 处理方式 输出/记录
目标设备型号已报废或不在库 从同一芯片平台、同 SoC 代际的备选型号中替换,并在备注中说明;若无可替换设备,需测试经理审批降级或扩大平台范围。 更新设备型号清单,附替换说明
系统版本低于 API 29 确认无法升级至 API 29+ 的设备直接移除,并用同平台高版本设备替代;若平台整体版本不足,则标记为“不支持”,从该轮回归测试中剔除。 移除记录,测试经理签字
ADB 权限配置失败(无 root 或系统签名) ① 尝试使用 adb shell pm grant 配合普通权限;② 若仍失败,由系统管理员刷入测试签名镜像;③ 若刷镜像不可行,记录为“受限设备”,在测试脚本中跳过对应权限用例并注明原因。 更新硬件权限配置表,“状态”列标记为受限-理由
设备物理硬件故障(摄像头/mic/编解码器损坏) 立即停止使用该设备,从设备库中标记故障,从测试清单中移除并申请替换设备。 设备故障工单 + 环境记录表备注

2.8 验收标准

  • 所有设备型号均通过《设备型号清单》与测试计划芯片平台完全对应,无缺漏、无错误替换。
  • 每台设备的系统版本(API 等级 + fingerprint)均与《系统版本要求表》一致,偏差公差为 0。
  • 每台设备的硬件权限配置值与《硬件权限配置表》完全匹配,且可通过 ADB dump 命令验证。
  • 已填写的《环境准备记录检查表》经测试工程师与设备管理员双人签名,归档至本次回归测试目录。
  • 异常处理环节涉及的替换、降级、受限标记均有对应的审批记录及书面说明。
测试环境与硬件资源准备流程 1. 收集设备型号 2. 确认系统版本 3. 配置硬件权限 4. 验证配置生效 5. 填写环境准备记录 关键输出 设备型号清单 辅助命令 adb shell getprop 权限命令 pm grant / settings put 验证命令 dumpsys media.* 交付物 检查表(签字版)