Test Coverage Analysis
2026-09-05 11:12:30作者:魏侃纯Zoe
Test Coverage Analysis
Current Coverage
- [X] 个测试覆盖了 [Y] 个函数/组件
- 已识别的覆盖缺口:[列表]
Recommended Tests
- [测试名] — [它验证什么,为什么重要]
- [测试名] — [它验证什么,为什么重要]
Priority
- Critical:[能捕获潜在数据丢失或安全问题的测试]
- High:[核心业务逻辑的测试]
- Medium:[边界情况与错误处理的测试]
- Low:[工具函数与格式化类测试]
这份报告的价值在 `/ship` 的合并阶段体现出来:`/ship` 是发布前的 fan-out 编排器,让 `code-reviewer`、`security-auditor`、`test-engineer` 三个子代理**并行**处理同一份变更,各自产出一份独立视角的报告(review report / audit report / **coverage report**),再由主代理在 Phase B 合并成 go/no-go 决策。test-engineer 报告中的 Priority 分级直接参与决策:Critical 级缺口(可能漏掉数据丢失或安全问题)会被提升为发布阻断项。
模板的 Priority 四级与代码评审的严重度标签(Critical / Required / Optional / Nit,定义在 [code-reviewer](https://gitcode.com/GitHub_Trending/agentskill/agent-skills/blob/020ec10a788f5703108d093a4bd3d9a7c3847d36/agents/code-reviewer.md?utm_source=gitcode_repo_files) 与 [skills/code-review-and-quality/SKILL.md](https://gitcode.com/GitHub_Trending/agentskill/agent-skills/blob/020ec10a788f5703108d093a4bd3d9a7c3847d36/skills/code-review-and-quality/SKILL.md?utm_source=gitcode_repo_files) 中)属于同一套沟通语言,三份报告才能被无损地合并。
## 八、七条测试规则
原文档的 Rules 一节是 test-engineer 的硬约束,逐条继承如下:
1. **测行为,不测实现细节**(Test behavior, not implementation details);
2. **每个测试只验证一个概念**(one concept per test);
3. **测试必须相互独立** —— 测试之间不共享可变状态;
4. **慎用快照测试**,除非你愿意审阅快照的每一次变更;
5. **只在系统边界 mock**(数据库、网络),不在内部函数之间 mock;
6. **每个测试名要读起来像一份规格**;
7. **一个从不失败的测试,和一个总是失败的测试一样没用**(A test that never fails is as useless as a test that always fails)。
第 7 条与 TDD 技能 “Red Flags” 一节呼应:“第一次运行就通过的测试(它可能根本没在测你以为的东西)”是被点名的危险信号。规则 4 对应 TDD 技能反模式表中的 “Snapshot abuse:没人审阅的大快照,任何改动都炸”。
## 九、如何调用 test-engineer:三种方式与一条红线
原文档末尾的 Composition 块明确声明了这个 persona 在编排体系中的位置:
- **直接调用(Invoke directly when)**:当用户请求测试设计、覆盖度分析,或为某个具体 Bug 写 Prove-It 测试时。典型提示如 “What tests are missing for the checkout flow?”(结账流程缺什么测试?);
- **经命令调用(Invoke via)**:`/test`(TDD 工作流)或 `/ship`(与 `code-reviewer`、`security-auditor` 并行 fan-out 做覆盖度缺口分析);
- **禁止红线(Do not invoke from another persona)**:persona 不得调用另一个 persona。“建议加测试”的内容应写进报告里,何时行动由用户或斜杠命令决定——编排是斜杠命令(和用户)的职责,不是角色的职责。
### `/ship` 中的并行 fan-out 为什么成立
从 [docs/agents.md](https://gitcode.com/GitHub_Trending/agentskill/agent-skills/blob/020ec10a788f5703108d093a4bd3d9a7c3847d36/docs/agents.md?utm_source=gitcode_repo_files) 的决策矩阵看,fan-out 只适用于**子任务相互独立**(无共享可变状态、无执行顺序依赖)的场景:
```
工作是不是对单一工件的单一视角?
├── 是 → 直接调用 persona
└── 否 → 子任务是否独立(无共享可变状态、无顺序要求)?
├── 是 → 带并行 fan-out 的斜杠命令(如 /ship)
└── 否 → 用户按顺序跑的斜杠命令(/spec → /plan → /build → /test → /review)
```
`/ship` 正是这个仓库唯一认可的编排模式:
```
/ship
├── (并行) code-reviewer → review report
├── (并行) security-auditor → audit report
└── (并行) test-engineer → coverage report
↓
合并阶段(主代理)
↓
go/no-go 决策 + 回滚计划
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
最新内容推荐
Astro 源码注释规范:面向贡献者的 JSDoc 契约、行内注释与"删除测试"claude-mem 安装与分发体系解析:从 TRIAGE-07 看插件首装失败的根因与修复Understand-Anything 的 /understand 流水线 Token 成本削减:C1–C5 五项优化的实施蓝图与仓库落地Angular 中的不稳定测试(Flaky Test)排查与修复:基于 Bazel 的完整工作流实战diffusers 代码风格规范与 ` Copied from` 代码同步机制深度解析GraphRAG monorepo 依赖更新实战指南:从 uv 工作区重新锁定到 pandas 3.0 迁移问题修复Dify API 后端开发规范深度解析:从 api/AGENTS.md 看分层架构、命令体系与工程边界Gitea 测试体系详解:四类自动化测试的本地运行、数据库配置与源码级实现剖析Coqui TTS 训练实战指南:模型选型、数据集准备、配置编写与注意力对齐调试全解析Jan 发布质量验收全解:基于 autoqa/checklist.md 的发布前迁移、Settings 与 Hub 回归清单
项目优选
收起
deepin linux kernel
C
33
18
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
588
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
906
1.83 K
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
暂无描述
Markdown
891
5.78 K
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.53 K
1.01 K
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.34 K
1.45 K
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
987
506
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
540
384