跳转至
Test Spec · v1.0

测试规范与质量标准 v1.0

Unit · Integration · Regression · UI · CI · 金标 · Tapeout 放行
文档编号:D1-B-SPEC-004 · 版本:v1.0 · 发布:2026-05-05
没有测试的代码等于没写 · 质量红线不可逾越
4
测试层级
0
P0 外溢
≥70%
自动化覆盖

测试规范与质量标准 v1.0

摘要

本规范定义 Xisound 研发中心 全产品线、全阶段、全岗位 的测试与质量红线,是 研发中心章程 §4.2 与 XiTest 三件套在"规范层"的落地。 覆盖 四层测试体系(Unit / Integration / Regression / UI)、CI 集成、金标管理、Tapeout 放行、Bug 等级、质量指标(MTBF / THD+N / SNR) 六大主题。 所有产品线研发人员必须遵守本规范;各产品可在不违反红线前提下补充自己的细化规范。


1. 适用范围

  • 软件产品:XiStudio / XiForge / XiTune / 后端服务
  • 固件:XiDSP 固件、XiBox 系统软件
  • 芯片:XiDSP / XiCore(与 ic-dev-spec.md 交叉引用)
  • 算法:XiAlgo 各套件(与 algo-dev-spec.md 交叉引用)
  • 硬件:XiAmp / XiBox(与 hw-dev-spec.md 交叉引用)

2. 四层测试体系

2.1 层级关系

graph TB
    U[Unit Test<br/>单元测试] --> I[Integration Test<br/>集成测试]
    I --> R[Regression Test<br/>回归测试]
    R --> E[UI / E2E Test<br/>端到端测试]

    U -.金标比对.-> G[Golden Reference]
    R -.长期趋势.-> K[KPI Dashboard]

    class U xyL1
    class I xyL2
    class R xyL3
    class E xyL4
    class G,K xyL0

2.2 各层职责

范围 负责人 触发 目标
Unit 单函数 / 单类 代码作者 每次提交 增量覆盖率 ≥ 70%
Integration 模块间交互 模块 Owner 合 PR 前 关键路径 100%
Regression 整产品版本 QA 团队 Nightly / Release 金标 100% 通过
UI / E2E 用户真实路径 QA + 产品 版本候选 关键场景 100%

2.3 覆盖率目标(按产品类别)

产品类别 Line Branch 备注
软件核心库 ≥ 80% ≥ 70% XiAlgo / 后端核心
桌面应用 UI ≥ 60% ≥ 50% XiStudio / XiForge
芯片固件 ≥ 90% ≥ 85% XiDSP 固件
算法 C 实现 ≥ 95% ≥ 90% 与金标结合
脚本 / 工具 ≥ 50% CI / 构建脚本

3. 单元测试(Unit Test)

3.1 框架选择

语言 框架 说明
C/C++ Google Test / Unity 嵌入式首选 Unity
C# xUnit / NUnit xUnit 为默认
TypeScript Vitest / Jest Vitest 为 Vite 生态首选
Python Pytest 配合 coverage.py

3.2 单元测试原则

单元测试七原则(FIRST + 2)

  1. Fast:毫秒级,不访问网络 / 文件系统(除非隔离)
  2. Independent:测试之间无顺序依赖
  3. Repeatable:任何时间任何环境结果一致
  4. Self-validating:断言明确,不人工判
  5. Timely:与代码同步(不是最后补)
  6. Naming:测试名表达"情境 + 期望"(如 EQBypass_WhenFreq0_ShouldOutputEqualInput
  7. One assert(原则上):一个测试方法表达一个事实

3.3 Mock 与 Fake

  • 外部依赖(网络 / 数据库 / 硬件)必须用 Mock / Fake 替代
  • 算法层使用固定输入(而非随机)+ 金标断言
  • Mock 框架:Moq(C#) / unittest.mock(Python) / gmock(C++)

4. 集成测试

4.1 典型场景

  • 模块间接口:Mixer ↔ DSP、前端 ↔ 后端 API
  • 固件 ↔ 硬件:Bring-up 脚本、自检程序
  • 算法 ↔ 平台:XiAlgo 在 XiStudio 中的插件加载与参数下发

4.2 环境要求

  • 独立测试环境(不污染开发机)
  • 每次跑 Integration Test 前重置环境到已知基线
  • 使用容器 / 虚拟机固化环境

4.3 数据管理

  • 黄金数据集(Golden dataset)集中存放,不随代码仓
  • 测试数据按业务场景分类:典型 / 边界 / 异常 / 压力
  • 大数据集走 Git LFS 或对象存储

5. 回归测试

5.1 回归分级

级别 频率 范围 目标时长
PR Gate 每次 PR 关键子集 ≤ 15 min
Nightly 每日 全量 ≤ 8 h
Weekly 每周 扩展(长时 / 性能 / 跨平台) ≤ 48 h
Release 每次发版 全量 + 手工抽测 业务决定

5.2 金标管理

  • 每个算法 / 核心模块有对应金标集(见 algo-dev-spec.md §8)
  • 金标更新必须有 ADR 记录 + 双人签批
  • 金标版本与产品版本解耦(金标独立打 Tag)

5.3 性能回归

  • 关键性能指标(延迟 / 吞吐 / MIPS / 内存)纳入回归
  • 阈值:任一指标劣化 > 5% 即阻塞(除非有 ADR)

6. UI / E2E 测试

6.1 框架选择

平台 框架
Web 前端 Playwright / Cypress
Electron Playwright(Electron 适配)
桌面 .NET FlaUI / WinAppDriver
移动 Appium(未来扩展)

6.2 关键场景覆盖

XiStudio / XiForge 等产品必须覆盖: - 登录 / 授权激活 - 新建工程 → 编辑 → 保存 → 重新打开 - 插件加载 / 参数保存 / Undo-Redo - 导出 / 导入 / 打印 - 错误路径(无网络 / 文件损坏 / 授权失效)

6.3 稳定性

  • Flaky Test 零容忍:连续 3 次失败则禁用 + 挂 Issue
  • 每次 E2E 运行记录视频 + 截图,失败时作为证据

7. CI / CD 集成

7.1 流水线结构

graph LR
    P[PR 提交] --> L[Lint + Format]
    L --> B[Build Matrix]
    B --> U[Unit Tests]
    U --> I[Integration Tests]
    I --> S[SAST + SCA]
    S --> G{质量门禁}
    G -- 通过 --> M[可合并标记]
    G -- 失败 --> R[阻塞 + 回报]

    class P xyL0
    class L,B xyL2
    class U,I xyL3
    class S xyWarn
    class G xyWarn
    class M xySuccess
    class R xyError

7.2 质量门禁(Quality Gate)

任一项失败 → PR 阻塞,不能合并: - Lint / Format 有 Error - Unit Test 有失败 - 增量覆盖率 < 70% - SAST / SCA 有 High+ - PR 体量 > 500 行且未拆分

7.3 Nightly 与趋势

  • Nightly 跑全量回归
  • 指标推送到 KPI Dashboard(Grafana / 自研)
  • 覆盖率 / 性能 / 稳定性 / 安全四维趋势图持续可见

8. Tapeout 放行与出厂测试

8.1 Tapeout 放行清单

ic-dev-spec.md §7.1 的 "Tapeout 八不放" 呼应,测试维度要点:

测试视角的 Tapeout 红线

  • Release Regression 最近一次 0 Fail
  • 代码 / 功能 / 断言覆盖率全部达标
  • CDC / Lint / Formal 零未豁免违规
  • DFT ATPG 覆盖率 ≥ 目标(Stuck-at ≥ 99%)
  • Bring-up Plan 已含完整测试策略
  • 出厂测试程序(FT Program)已有初版

8.2 出厂测试(FT)

  • FT 程序在 Bring-up 阶段完成 v1
  • 覆盖:功能 / 参数 / 性能(关键) / DFT
  • 目标:每片测试时长 ≤ 5 秒,良率判据清晰
  • 量产阶段每周抽样 50 片做"FT 对比测试"(设备 A vs 设备 B)

9. Bug 等级与质量指标

9.1 Bug 等级定义

等级 定义 响应 SLA 解决 SLA
P0 生产不可用 / 数据损坏 / 安全严重 ≤ 1 h ≤ 24 h
P1 主要功能不可用 / 严重性能劣化 ≤ 4 h ≤ 3 d
P2 次要功能异常 / 体验问题 ≤ 1 d ≤ 2 w
P3 体验小瑕疵 / 文档问题 ≤ 1 w 纳入迭代

9.2 P0 红线

  • P0 Bug 发现 → 必须立即启动 应急响应流程
  • 涉及客户现场 → 商务中心同步通报
  • 解决后必须出 RCA(Root Cause Analysis)报告
  • P0 外溢率 = 0(版本发布后才发现的 P0 数 / 版本数)

9.3 质量指标

软件

  • 崩溃率(Crash Rate) ≤ 0.1%
  • 版本按时发布率 ≥ 90%
  • P0 外溢率 = 0
  • 自动化测试覆盖率 ≥ 70%

硬件

  • 量产不良率 ≤ 1%(消费) / ≤ 0.3%(车规)
  • MTBF ≥ 5 万小时(消费) / ≥ 20 万小时(车规)
  • RMA 率 ≤ 0.5%

音频性能(核心产品通用)

指标 消费级目标 车规/专业级目标
THD+N ≤ 0.01% ≤ 0.005%
SNR ≥ 110 dB ≥ 120 dB
Dynamic Range ≥ 110 dB ≥ 120 dB
Crosstalk ≤ -90 dB ≤ -100 dB
响应延迟 ≤ 10 ms ≤ 5 ms

10. 附录

10.1 测试文档模板

每个产品 / 模块测试套件应有: - Test Plan:范围、策略、资源、里程碑 - Test Case:用例条目(ID / 前置 / 步骤 / 期望 / 实际) - Test Report:执行结果、Pass Rate、Issue 汇总 - RCA:P0 / P1 Bug 的根因分析

10.2 关联文档

10.3 版本历史

版本 日期 要点
v1.0 2026-05-05 首版 · 四层测试 + Tapeout 红线 + P0 外溢 0

test-spec.md · D1-B-SPEC-004 · v1.0 · 2026-05-05 · Xisound 研发中心