# 测试执行与质量门禁

测试角色形成《测试计划》、检查提测准入、执行版本测试、管理缺陷或给出质量结论时读取。本文件规定稳定的执行规则；项目具体阈值、样本、周期、资源和响应时限由当前已批准《测试计划》定义。

## 三层测试契约

1. **角色契约**：规定测试的长期使命、决定权、边界、必要输入和强制质量原则。
2. **通用执行规则**：本文件规定适用性、准入、状态、统计、缺陷、证据和门禁。
3. **项目测试计划**：按具体产品、硬件、客户、平台和阶段确定范围、阈值、样本、时长、环境、资源、版本策略和输出节点。

测试可以提出专业阈值建议，但不得自行创造产品要求、客户承诺或验收标准。

## 前期成果与测试计划

项目前期按适用性形成：

- 测试计划、测试范围、测试用例集；
- 验收标准清单、测试适用性清单；
- 需求—验收标准—用例追踪关系；
- 环境、设备、工具、样机、账号和数据要求；
- 专项清单、样本、周期和外部依赖；
- 测试风险、资源缺口、未决问题和输出节点。

《测试计划》至少说明：

- 目标、范围内事项、范围外事项；
- 输入基线和适用版本；
- 测试类型、专项和版本分级策略；
- 环境、工具、设备、样机和数据；
- 测试角色内部安排；
- 提测准入、进入和退出条件；
- 验收标准及来源；
- 适用性和裁剪原则；
- 缺陷等级／风险矩阵引用；
- 回归、证据、进度、依赖、风险和正式输出。

测试计划基线、关键覆盖变化、范围缩减、专项取消／延期、严重缺陷处置和最终质量结论需要测试负责人确认，但不另建 Hub 评审角色节点。涉及客户范围或业务风险时，再由 Hub 定向交业务决定。

## 适用性

测试专项、模块和用例的计划适用性只使用：

- 必测：当前产品、配置、客户、平台或阶段适用，必须执行；
- 不适用：经评估确认不适用，必须记录原因、依据和引用基线；
- 延期：本应执行但获正式延期，必须记录影响、风险、责任、完成节点、关闭条件和批准。

“不适用”不得表示时间／人员不足、环境／样机／账号缺失、版本阻塞、数据缺失、外部依赖未满足、失败或尚未执行。适用但无法完成的项目是“阻塞”，不是“不适用”。

任何产品需求、验收标准、硬件、PCB、BOM、固件、软件、配置、接口、平台标准、客户范围、试产批次或交付版本变化都触发测试影响评估。是否完整重测由影响分析决定，不能无评估沿用旧结论。

## 正式提测准入

每个正式提测版本应提供：

- 应用层输出、技术负责人确认版本矩阵的唯一统一固件，以及匹配的底层、硬件、BOM、配置、样机和批次；
- 可重复取得的安装包、固件、样机或构建物；
- 变更清单、影响范围、研发自测、已知问题和风险；
- 安装、升级、降级和恢复方式；
- 环境、网络、外设、账号和安全引用；
- 提测目标、建议重点、上一版本关系和计划节点。

输入不满足时，测试可判定提测拒绝或阻塞。探索性检查必须与正式测试结果分开。

## 每版测试闭环

每版按以下顺序在测试角色内部执行：

提测准入检查 → 变更影响评估 → 本版策略 → 内部任务安排 → 环境确认 → 用例执行 → 证据归档 → 缺陷反馈 → 修复复测与回归 → 质量汇总

按版本风险选择策略：

- 普通测试版：基础冒烟、变更点验证、受影响回归；
- 缺陷修复版：原缺陷复测、关联回归、基础冒烟、副作用检查；
- 大版本或跨模块变更：完整功能回归、接口集成、受影响专项和关键稳定性；
- 候选发布版（RC）：完整回归、全部适用专项、遗留缺陷和版本／证据完整性；
- 试产定版：候选基线一致性、抽样验证、最终门禁和《测试证据包》中的交付证据。

实现角色提供变更和自测信息，但不能单方面缩减测试范围。

## 结果状态

版本整体质量结论只使用通过、失败、阻塞：

- 通过：全部适用门禁满足；
- 失败：已执行并确认不满足要求，或存在高风险质量失败；
- 阻塞：无法完成必测范围或形成有效结论。

专项、模块和正式用例结果只使用通过、失败、阻塞、不适用。待执行和执行中是进度，不是正式结果。到正式汇总或报告节点，所有计划用例都必须有结果；适用但未完成的用例填“阻塞”，不能留空或改成“不适用”。

阻塞必须说明原因、受影响范围、证据、责任或协调角色、解除条件和补测要求。必测范围中存在阻塞时，版本不能判定通过。只有工具字段明确要求时才使用机器枚举，对负责人和钉钉始终写中文。

## 统计

正式报告至少统计计划、通过、失败、阻塞、不适用、适用和实际执行数量：

- 计划用例数 = 通过 + 失败 + 阻塞 + 不适用；
- 适用用例数 = 计划用例数 - 不适用；
- 实际执行用例数 = 通过 + 失败；
- 执行完成率 = 实际执行用例数 ÷ 适用用例数；
- 执行通过率 = 通过 ÷ 实际执行用例数；
- 阻塞率 = 阻塞 ÷ 适用用例数。

实际执行数为 0 时，通过率是“不可计算”，不是 100%。阻塞项保留在适用分母中；不得把阻塞改成不适用，也不得用总体通过率掩盖关键失败。

## 缺陷与关闭

测试创建、持续维护并最终关闭《缺陷分析报告》。每个缺陷至少记录：

- 缺陷编号和关联测试项；
- 被测统一固件及其匹配的底层、硬件、BOM、配置、样机和批次；
- 环境、前置条件、复现步骤、期望／实际结果和频率；
- 影响程度、暴露概率／范围、风险等级和处理优先级；
- 影响、原始证据、初步责任边界、回归要求和状态。

影响程度、发生概率、风险等级和处理优先级必须分开。不得通过临时降级绕过门禁。

推荐生命周期：

新建 → 已确认 → 已安排修复 → 已修复／待复验 → 已验证 → 已关闭

- 测试负责复现、观察证据、影响、回归要求、复验和测试关闭；
- 实现角色负责根因、修复、变更说明和研发自测；
- 产品负责需求含义和预期行为；
- 技术负责人负责跨层归类和架构接口裁决；
- 业务负责客户范围、交付边界和业务风险接受；
- Hub 负责向实际责任角色派发修复任务；彼此独立且依赖就绪的修复可形成任务波次。

实现角色只提交原因分析、修复计划、修复成果、版本和自测，不能替换或关闭《缺陷分析报告》。研发声明修复不能直接关闭缺陷；只有测试在目标版本组合独立复验通过后才能标记为“已验证”或“已关闭”。重复、符合设计、无法复现、不修复和延期等处置都要保留理由与证据；未关闭项进入遗留缺陷和剩余风险。

责任路由起点：

- 需求、产品行为、验收标准或详细客户输入：产品；
- 合同、业务范围、对外承诺或业务风险：业务；
- 总体架构、跨层接口或责任不清：技术负责人；
- 应用逻辑、状态机、配置、界面或应用协议：嵌入式应用层；
- BSP、Bootloader、RTOS、HAL、驱动、总线或底层实时行为：嵌入式底层；
- 电路、器件、GPIO、电平、PCB、BOM 或硬件时序：硬件；
- 测试环境、工具、数据或用例：测试。

这只是证据化建议，正式修复任务始终由 Hub 按实际责任和依赖创建。

## 证据、版本与追踪

证据应能回答：

- 实际被测版本、样机、批次、配置、环境和外设；
- 使用的方法、步骤和工具；
- 原始观察和数据；
- 如何对应验收标准；
- 阻塞原因和不适用依据；
- 缺陷修复版本与独立回归；
- 测试限制、确认和剩余风险。

追踪链：

需求／客户标准 → 验收标准 → 测试用例 → 执行结果 → 测试证据包 → 缺陷分析报告 → 修复版本 → 回归结果 → 适用测试报告 → 交付版本

测试结论只对实际被测版本、样机、配置和环境有效。无法证明平台、试产和交付版本一致时，最终结论为阻塞。

普通测试成果不得保存密码、访问令牌、私钥、证书密钥或其他敏感值；只记录提供状态、适用环境、责任和安全引用。

## 最终测试定版门禁

只有全部适用条件满足才可给出最终通过：

1. 必测范围执行完成率 100%，没有阻塞；
2. 关键门禁用例全部通过；
3. 所有适用验收标准满足；
4. 所有适用专项有明确结论；
5. 没有未关闭的高风险缺陷；
6. 中低风险遗留已评估、披露并取得必要确认；
7. 修复已在目标版本独立回归；
8. 被测版本与平台、试产和交付候选版本一致；
9. 测试计划、用例、执行、测试证据包、缺陷分析报告、回归和适用测试报告完整；
10. 限制、依赖和剩余风险明确，测试有权人员确认最终结论。

未关闭的高风险缺陷、关键用例失败、验收标准不满足或严重回归必须判定失败。关键必测用例阻塞、执行不足、环境／依赖不可用、版本不一致或证据不足必须判定阻塞。

最终测试通过不等于业务验收、客户风险接受、发布批准或制造良率批准。

## 正式输出深度

- 普通测试版：策略、版本、范围、状态统计、结果摘要、缺陷增量、阻塞和限制；
- 缺陷修复版：原缺陷复测、关联回归、新问题和剩余风险；
- 大版本／候选发布版：在适用测试报告、《测试证据包》和《缺陷分析报告》中完整记录覆盖、统计、缺陷、回归与质量结论；
- 平台提测版：要求映射、预检、提交版本、平台反馈、整改和重提记录；
- 试产定版：最终计划、用例、执行、兼容矩阵、缺陷、回归、证据、遗留风险和质量报告。

角色契约不固定统一小时级响应时限；响应、测试、回归和报告时限由项目计划或《测试计划》定义。
