Skip to content
Agent Orchestration
Skill

/dev-testing

测试规范 — 单元测试/集成测试/API测试/E2E测试四类覆盖标准与触发条件

BOOST
From plugin
devcodex
43888 skills2 agents2 MCP
Install
$ npx -y skills add devcodex-labs/devcodex --skill dev-testing --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/dev-testing

Context preview

The summary Claude sees to decide when to auto-load this skill.

测试规范 — 单元测试/集成测试/API测试/E2E测试四类覆盖标准与触发条件

SKILL.md

dev-testing.SKILL.md
name: dev-testing
description: 测试规范 — 单元测试/集成测试/API测试/E2E测试四类覆盖标准与触发条件

Dev Testing Skill

触发条件(按需读取,不预读)

以下任一场景触发本 Skill:

  • `dev.default`:新增模块/功能时(判断是否需要补测试)
  • `fix.default`:修复 Bug 后,验证回归测试覆盖
  • `dev.refactor`:重构前置检查(确认已有测试覆盖,无则禁止继续)
  • `test-router` 判定本轮需要静态/单元/集成/API/E2E 任一测试路线时
  • 用户明确要求"写测试"/"补测试"/"测试覆盖"

与 test-router 的关系

  • `test-router` 负责在 CP2/CP3 与执行前判定“本轮需要哪些验证路线”,并输出 TestRoute。
  • 本 Skill 负责定义各类测试的覆盖标准、阻断规则和失败处理,不替代 `api-verification` / `dev-scenario-test` 的专项产物。
  • 当 TestRoute 包含对外 HTTP API 归档验证时,必须继续读取 `api-verification`;当 TestRoute 包含场景/负载测试时,必须继续读取 `dev-scenario-test`。
  • 写测试用例时必须同步执行 `LeakRiskStabilityPressureTest` 条件判定:命中资源生命周期或稳定性风险时,继续读取 `dev-scenario-test` 并把泄漏风险稳定性压测纳入 TestRoute;未命中时记录 `N/A + skipReason`,不得把所有低风险单元测试机械升级为压测。
  • 高风险资源泄漏修复、公开库/adapter/SDK、连接池、监听器、定时器、worker、cache 或 PE-12 命中项必须同步评估 `MethodLevelLeakPressureProbe`:需要时为公开方法、生命周期入口或资源创建/释放路径补重复调用/重复挂载卸载/重复 open-close 压测;低风险纯函数写 `N/A + skipReason`。
  • 前端页面、组件、控制台、官网、文档站、可视化工具或游戏测试必须同步执行 `FrontendExperienceQualityGate` 条件判定;命中时测试路线覆盖 UI 视觉和 UX 交互证据;Figma/截图/既有页面还原、真实 preview、状态回归、生产资产或运行时本地化场景追加 `FigmaHighFidelityRestorationGate`、`ScopedVisualChangeGate`、`ActualPreviewChainAndMockFallbackGate`、`UIStateScopeRegressionGate`、`FigmaProductionAssetBudgetGate`、`RuntimeI18nArtifactVerificationGate`、`VisualDeviationTypeGate` 与 `DesignFramePurposeClassificationGate`,未命中时记录 `N/A + skipReason`。
  • 前端测试路线必须执行 `FrontendBrowserVerificationBudgetGate`:浏览器/交互验证按 required / optional / N/A 分层;用户明确自验或禁止浏览器/截图时执行 `UserSelfVerificationOverrideGate`,只保留代码级验证和残余风险说明。
  • 所有验证命令执行前必须执行 `VerificationCommandSideEffectGate`,优先无产物校验;写产物命令执行后扫描 git status/生成物并隔离或清理。
  • 测试路线必须同步执行 `VerificationScopeBudgetGate` 与 `LiveVerificationExecutionObligation`:验证强度匹配风险和变更面,声明“已验证/可运行/可点击/已安装/已发布”前必须真实执行对应命令、页面、接口、pack/install、registry/tag 查询或项目等价验证。
  • 项目存在 coverage 脚本、阈值、CI coverage 或发布覆盖率要求时必须同步执行 `CoverageGateDecision`:区分测试断言通过、相关 suite 通过与覆盖率门禁通过,报告命令、工具、阈值、基线、当前值和阻断/降级依据。
  • 外部 runtime、plugin、registry、adapter、provider、injected runtime 或 owner mutation 路径变更时必须同步执行 `ExternalRuntimePluginLifecycleGate` / `ExternalRegistryLifecycleMatrixGate`;function source、hash、toString 或 fingerprint 参与 key/checkpoint/去重时执行 `FunctionSourceFingerprintMatrixGate`。
  • 同一风险簇连续出现 ≥3 个 finding、返修或复审遗漏时必须触发 `ClusterEscalationGate` 与 `RiskBasedValidationLadder`,先冻结风险模型和测试矩阵,再按 targeted、related suite、full gate 分层验证。
  • 默认行为、控制流、能力触发、metrics/info/logs/events/warnings/admin bridge/public types 或副通道失败策略变化时必须判定 `DerivedMetricConsumerProbe` / `DerivedConsumerFailureInjectionProbe`:测试应覆盖派生消费者、失败注入、主结果隔离和 warn / ignore / propagate 语义;未命中时记录 `N/A + skipReason`。
  • 人工复核、视觉检查、手工冒烟、外部页面观察或无法自动化验证必须执行 `ManualReviewEvidenceRetention`,记录复核人/时间/范围/输入/观察结果/截图或日志位置。
  • 测试来源于产品需求整理、真实联调、本机/跨环境配置、包名/发布名、性能第一、公开模块承诺、兼容契约、集合关系命名或用户可见验证产物时,必须同步判定 `ProductRequirementTraceabilityGate`、`LocalExecutionConfigProbe`、`ManualReviewEvidenceDataRetention`、`PackageNameAuthorityGate`、`PerformanceBenchmarkFirstGate`、`PublicModuleDifferentiationGate`、`CompatibilityAndContractAuthorityGate`、`CollectionRelationIdNamingGate` 与 `UserFacingVerificationArtifactLanguageGate`;未命中时记录 `N/A + skipReason`。

ServiceLifecycleCleanup

  • 若测试或 E2E 验证需要 AI 启动 dev server、文档站、本地 API/mock、数据库代理、SSH 隧道、Playwright/Cypress server 或压测 target,启动时必须记录 command、cwd、PID/job、端口/URL 和启动时间。
  • 测试完成、失败、重试放弃或最终回复前,必须停止仅由 AI 本轮启动的服务,并核验端口或 PID/job 已释放。
  • 不得为释放端口杀掉用户既有进程;若端口被非本轮 AI 进程占用,只能报告 PID/端口/命令线线索并请用户确认。
  • 用户明确要求保留服务供试用时,报告保留原因、PID/端口/URL 和关闭命令;默认不得静默遗留后台进程。

泄漏风险稳定性压测(条件)

`LeakRiskStabilityPressureTest` 是写测试用例或规划回归验证时的条件判定,不是所有测试任务的默认强制压测。

| 判定项 | 触发条件 | 验证要求 | |--------|----------|----------| | 长运行服务 | dev server、worker、daemon、queue consumer、scheduler、WebSocket/SSE 等 | 在持续或并发场景下记录 heap/RSS 或项目等价内存指标,冷却后不得持续增长 | | 资源生命周期 | 数据库/HTTP 连接、文件句柄、流、socket、连接池、事务、临时文件 | 记录连接/句柄/流数量前后对比,确认关闭或回收 | | 监听与定时器 | EventEmitter、DOM listener、interval/timeout、订阅、watcher | 验证重复创建/销毁后监听器、定时器、订阅数量可回落 | | 缓存与队列 | cache/map/set、LRU、队列 backlog、批处理缓冲 | 验证容量上限、淘汰策略或积压回落,不出现无界增长 | | 前端生命周期 | React/Vue/Svelte 组件 mount/unmount、路由切换、长列表/可视化 | 验证卸载清理、订阅释放和重复切换后资源回落 |

**执行规则**: 1. 命中上述任一项,TestRoute 的 `leakRiskPressure` 标为 `required`,并选择项目既有压测/场景工具;没有专用工具时可用轻量脚本采样内存、句柄、监听器或连接数。 2. 最小证据包含:基线指标、压力/重复生命周期场景、持续时间或迭代次数、冷却窗口、前后对比、清理证据和失败阈值。 3. 纯计算函数、静态文档、一次性脚本、无状态转换且无长生命周期资源的变更可标 `N/A + skipReason`。 4. 若验证需要 AI 启动服务或压测 target,必须同时执行 `ServiceLifecycleCleanup`。

MethodLevelLeakPressureProbe(方法级泄漏压测)

该探针用于补强“单元测试通过但公开方法重复调用仍泄漏”的风险,不是所有测试任务的默认要求。

| 判定项 | 触发条件 | 验证要求 | |--------|----------|----------| | 公开方法 / 导出类 | SDK、adapter、CLI helper、长期运行库或公共 API 暴露资源创建/注册/订阅能力 | 对 public method 做重复调用、失败分支和 cleanup 路径采样 | | 生命周期入口 | mount/unmount、open/close、connect/disconnect、subscribe/unsubscribe、start/stop | 验证重复生命周期后 active handles、监听器、连接、缓存或项目等价指标可回落 | | 修复回归 | 本轮修复 PE-12、内存泄漏、监听器泄漏、连接泄漏或无界缓存 | 用修复前失败模式设计最小重复场景,并记录阈值 |

最小证据:公开入口、重复次数或持续时间、基线/结束/冷却指标、清理断言、失败阈值和 `ServiceLifecycleCleanup` 状态。

前端 UI / 交互体验验证(条件)

`FrontendExperienceQualityGate` 是前端体验相关任务的条件判定,不是所有测试任务的默认视觉审查。

| 判定项 | 触发条件 | 验证要求 | |--------|----------|----------| | UI 视觉 | 页面、组件、主题、设计稿还原、响应式或状态变化 | 覆盖 `FrontendDesignSourceGate`、`UIFidelityGate`、`StyleThemeConsistencyGate`、`ResponsiveStateCoverageGate`、`VisualVerificationGate` | | UX 交互 | 用户流、导航、表单、异步操作、错误恢复、动效或输入方式变化 | 覆盖 `InteractionFlowGate`、`InteractionFeedbackGate`、`InputModalityAccessibilityGate`、`ErrorPreventionRecoveryGate`、`MotionTransitionUsabilityGate` |

**执行规则**: 1. 命中前端体验风险时,TestRoute 的 `frontendExperience` 标为 `required`。 2. 最小证据包含:设计来源或既有风格依据、关键状态清单、桌面/移动或目标断点、核心用户流、反馈/错误恢复检查,以及 Browser/截图/Playwright/E2E/人工复核之一。 3. 纯后端、纯 CLI、纯文档或无界面变更可标 `N/A + skipReason`。 4. 若验证需要 AI 启动 dev server、文档站或浏览器自动化 target,必须同时执行 `ServiceLifecycleCleanup`。

覆盖率门禁与风险分层验证(条件)

`CoverageGateDecision` 用来防止把“测试断言通过”误写成“覆盖率通过”。项目存在 `test:coverage`、coverage 阈值、CI coverage check、发布前覆盖率要求或报告承诺覆盖率时,必须单独记录 coverage gate。

| 判定项 | 触发条件 | 验证要求 | |--------|----------|----------| | coverage command | `package.json`、CI、Profile、README 或团队约定存在 coverage 命令 | 执行项目原生命令,或写 `known-red

Read more
Ships withdevcodex

Intent-driven AI coding workflow runtime for consistent context, skills, approvals, validation, and handoffs across six AI coding hosts.

Get the whole plugin

Other skills on devcodex.