# 测试执行与质量门禁

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

## 三层测试契约

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

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

## 前期成果与 Test Plan

项目前期按适用性形成：

- Test Plan、Test Scope、Test Case Set；
- Acceptance Criteria Matrix、Test Applicability Matrix；
- 需求—验收标准—用例追踪关系；
- 环境、设备、工具、样机、账号和数据要求；
- 专项清单、样本、周期和外部依赖；
- 测试风险、资源缺口、未决问题和输出节点。

Test Plan 至少说明：

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

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

## 适用性

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

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

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

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

## 正式提测准入

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

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

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

## 每版测试闭环

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

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

按版本风险选择策略：

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

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

## 结果状态

版本整体质量结论只使用 PASS、FAIL、BLOCKED：

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

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

BLOCKED 必须说明原因、受影响范围、证据、责任或协调角色、解除条件和补测要求。Required 中存在 BLOCKED 时，版本不能判定 PASS。

## 统计

正式报告至少统计计划、PASS、FAIL、BLOCKED、NA、适用和实际执行数量：

- 计划用例数 = PASS + FAIL + BLOCKED + NA；
- 适用用例数 = 计划用例数 - NA；
- 实际执行用例数 = PASS + FAIL；
- 执行完成率 = 实际执行用例数 ÷ 适用用例数；
- 执行通过率 = PASS ÷ 实际执行用例数；
- 阻塞率 = BLOCKED ÷ 适用用例数。

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

## 缺陷与关闭

测试创建、持续维护并最终关闭 Defect Analysis Report。每个缺陷至少记录：

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

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

推荐生命周期：

NEW → CONFIRMED → ASSIGNED → FIXED／PENDING_RETEST → VERIFIED → CLOSED

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

实现角色只提交 Root Cause Analysis、Fix Plan、修复成果、版本和自测，不能替换或关闭 Defect Analysis Report。研发声明修复不能直接关闭缺陷；只有测试在目标版本组合独立复验通过后才能 VERIFIED 或 CLOSED。Duplicate、As Designed、Cannot Reproduce、Won’t Fix 和 Deferred 保留理由与证据；未关闭项进入遗留缺陷和剩余风险。

责任路由起点：

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

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

## 证据、版本与追踪

证据应能回答：

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

追踪链：

需求／客户标准 → Acceptance Criteria → Test Case → 执行结果 → Test Evidence Package → Defect Analysis Report → 修复版本 → 回归结果 → 适用测试报告 → 交付版本

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

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

## 最终测试定版门禁

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

1. Required 范围执行完成率 100%，无 BLOCKED；
2. 关键门禁用例全部 PASS；
3. 所有适用 Acceptance Criteria 满足；
4. 所有适用专项有明确结论；
5. 无高风险 Open Bug；
6. 中低风险遗留已评估、披露并取得必要确认；
7. 修复已在目标版本独立回归；
8. 被测版本与平台、试产和交付候选版本一致；
9. Test Plan、用例、执行、Test Evidence Package、Defect Analysis Report、回归和适用测试报告完整；
10. 限制、依赖和剩余风险明确，测试有权人员确认最终结论。

高风险 Open Bug、关键用例失败、Acceptance Criteria 不满足或严重回归必须 FAIL。关键 Required 用例 BLOCKED、执行不足、环境／依赖不可用、版本不一致或证据不足必须 BLOCKED。

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

## 正式输出深度

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

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