2. 测试环境与硬件资源要求
章节定位:本章定义了开展 MediaCodec 硬件权限回归测试所必需的设备型号、系统版本及硬件权限配置集合。测试团队必须严格按照本章清单与配置表搭建环境,任何偏差均会导致测试结果无效或无法复现。
2.1 适用场景
- 首次启动 MediaCodec 硬件权限回归测试套件前,需要确认并准备全部硬件与软件资源。
- 测试环境发生变更(如设备更换、系统升级、权限策略调整)后,需要重新对照本章清单进行环境验证。
- 跨厂商/跨芯片平台的兼容性回归测试,需要针对每个目标平台维护独立的设备型号清单与权限配置表。
- 第三方实验室或外部合作团队进行测试环境部署时,以此章节为唯一准入标准。
2.2 前置条件
- 测试计划已通过评审,明确了回归测试覆盖的芯片平台与机型号范围。
- 测试经理已协调设备管理员完成测试设备出库或远程设备池分配。
- 被测设备已恢复出厂设置或至少未经过深度权限篡改(root 状态需单独标识)。
- 测试工程师具备对应设备型号的 ADB/USB 驱动及刷机工具(仅用于系统版本验证,非刷机操作)。
- 已获取本章节附件所需的所有官方系统镜像版本号与 OTA 升级记录。
2.3 操作步骤
- 收集设备型号清单:根据测试计划中的芯片平台(Qualcomm、MediaTek、Exynos、Tensor、麒麟等),从设备库中筛选出代表型号,填入《设备型号清单表》。每款芯片至少选择 2 台不同 SoC 代际的设备。
-
确认系统版本:使用 ADB 命令查询每台设备的系统版本,确保回归测试所需的 API 层级(API 29+)及厂商扩展版本与清单一致。
将输出结果与本章“系统版本要求表”逐项核对。adb shell getprop ro.build.version.sdk adb shell getprop ro.build.version.release adb shell getprop ro.build.fingerprint -
配置硬件权限:针对每台设备,按照《硬件权限配置表》执行权限授予或关闭操作。部分权限需要通过 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 授权。该操作应在隔离环境中进行,避免影响生产设备。 -
验证配置生效:通过
adb shell dumpsys media.camera、adb shell dumpsys media.player等命令确认权限状态已正确读取。记录每个权限项的实际状态。 - 填写环境准备记录表:将步骤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 命令验证。
- 已填写的《环境准备记录检查表》经测试工程师与设备管理员双人签名,归档至本次回归测试目录。
- 异常处理环节涉及的替换、降级、受限标记均有对应的审批记录及书面说明。