## 第4章 测试用例设计原则 ### 适用场景 本章适用于所有需要为 MediaCodec 硬件权限验证编写回归测试用例的场景,包括但不限于: - 新增或修改系统权限策略后对编解码器进行回归验证; - 构建自动化测试套件前的用例设计评审阶段; - 跨团队协作时统一测试用例设计规范。 ### 前置条件 - 已获取被测设备/平台的权限策略文档(如 SELinux 策略、APEX 白名单); - 已掌握 MediaCodec 原生 API 调用方式与权限错误码(如 `PermissionDenied`、`SecurityException`); - 测试人员已了解等价类划分、边界值分析、异常场景构造及优先级标注四项基本原则。 ### 操作步骤 1. **识别输入域与等价类** 分析被测接口的合法输入/状态空间,按功能或权限等级划分等价类。例如 `MediaCodec.createByCodecName()` 的 `name` 参数可划分为“白名单编码器名”、“黑名单编码器名”、“不存在的编码器名”三个等价类。 2. **确定边界值** 找出等价类的边界条件,如: - 权限开关的开关状态(0/1 边界); - 编码器名称长度(0 字符、最大字符、超长字符); - 同时请求编解码实例数的上限(0 个、1 个、上限值、上限+1)。 3. **构造异常场景** 从以下维度补充异常用例: - 权限被撤销(运行时 `revokePermission`); - 权限策略文件损坏; - 进程被降权(如后台进程、前台进程); - API 调用顺序异常(未配置权限前调用)。 4. **标注优先级标签** 按影响范围与频次给每条用例打标签: - **P0**:核心权限缺失直接导致编解码失败; - **P1**:边界值或异常场景导致的非功能问题; - **P2**:低概率边缘情况或非关键路径。 5. **编制测试用例表** 将上述结果填入标准模板,每行包含:用例编号、等级、输入、预期输出、优先级标签。 ### 输入输出物 | 输入物 | 输出物 | |--------|--------| | 权限策略文档、MediaCodec API 规范、历史缺陷记录 | 测试用例表(Excel/CSV)、优先级矩阵图 | | 设备/平台版本清单、SELinux 策略文件 | 等价类划分清单、边界值列表 | | 代码变更 diff、测试环境配置 | 异常场景列表、用例权重说明 | ### 责任边界 | 角色 | 职责 | |------|------| | 测试设计工程师 | 实施等价类划分、边界值分析,撰写用例,标注优先级 | | 测试负责人(TL) | 审查用例覆盖率与优先级合理性 | | 开发工程师 | 提供权限策略细节,确认异常场景是否可重现 | | QA 自动化工程师 | 将已标注优先级的用例转换为自动化脚本 | ### 记录材料(检查表模板) **测试用例设计检查表** | 检查项 | 通过标准 | 结果 | |--------|----------|------| | 等价类覆盖 | 每个输入域至少覆盖一个正常类、一个异常类 | □通过 □失败 | | 边界值选取 | 包含最小值、最大值、0、空、超长值 | □通过 □失败 | | 异常场景构造 | 包含至少 3 个权限撤销/降权/策略损坏场景 | □通过 □失败 | | 优先级标签 | 所有用例均有 P0/P1/P2 标签,且 P0 占比 ≤ 30% | □通过 □失败 | | 用例格式 | 含编号、等级、输入、预期、优先级标签 | □通过 □失败 | ### 异常处理说明 - **发现等价类遗漏**:补充用例,并在评审会上更新划分依据文档,流程回溯至步骤 1。 - **边界值超出预期范围**:确认是否属于设备或版本差异,若为 bug 则提交缺陷,测试用例保留为异常场景。 - **优先级争议**:由测试负责人与开发、PM 三方会议裁决,原则:影响用户直接体验的权限失败必须为 P0。 - **自动化转化异常**:若某用例无法自动化(如需要物理篡改策略文件),保留为手工用例并注明原因,标记为 `ManualOnly`。 ### 验收标准 1. 等价类划分表完整覆盖策略文档中列出的所有权限组与接口。 2. 每条边界值用例都附带等价类编号引用。 3. 异常场景总数 ≥ 5,且至少涵盖撤销、降权、策略损坏三类。 4. 用例优先级标签不存在冲突或缺失,P0 用例必须在回归套件中优先执行。 5. 检查表所有项通过率 ≥ 90%,未通过项均附有整改计划。
**最佳实践**:将等价类划分结果保存为可视化的“输入空间映射图”,后续维护或新人上手时可快速理解设计脉络。
测试用例设计原则流程框架 输入域 等价类划分 边界值 异常场景 优先级标签 测试用例表 补充/修正反馈 输入 划分 边界 异常 优先级 用例