with one click
testing
四层测试技能,按测试金字塔编写和执行单元/集成/接口/系统测试,生成结构化测试报告
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
四层测试技能,按测试金字塔编写和执行单元/集成/接口/系统测试,生成结构化测试报告
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
软件架构设计技能,输出模块划分、接口定义、数据流、技术选型和架构图表
代码自审技能,开发者自查代码质量、安全性、架构一致性和规范合规
代码理解与逆向工程技能,分析现有代码库结构,输出逆向架构设计书
项目脚手架初始化技能,根据工程类型生成标准目录结构、配置文件和依赖管理
需求分析与拆解技能,支持新建和变更两种模式,输出结构化任务列表和验收标准
| name | testing |
| description | 四层测试技能,按测试金字塔编写和执行单元/集成/接口/系统测试,生成结构化测试报告 |
当需要编写测试计划、编写测试用例、执行测试、生成测试报告时使用。
process_templates/test_plan.md 模板process_templates/test_report.md 模板process_templates/test_results.json 格式测试计划必须包含以下章节:
| 章节 | 必填 | 说明 |
|---|---|---|
| 测试范围 | 是 | 覆盖哪些模块、哪些验收标准 |
| 单元测试计划 | 是 | 用例列表、覆盖目标、mock 策略 |
| 集成测试计划 | 是 | 用例列表、测试环境、依赖配置 |
| 接口测试计划 | 按需 | 端点覆盖矩阵、测试数据(项目有 API 时必选) |
| 系统测试计划 | 按需 | 场景列表、前置条件、环境要求 |
| 测试环境 | 是 | OS、运行时、依赖版本 |
测试报告按四层分别汇报,每层包含通过/失败/跳过数量和失败详情。
/ 系统测试 \ ← 少量,验证端到端场景
/ 接口测试(API) \ ← 适量,验证接口契约
/ 集成测试 \ ← 较多,验证模块协作
/ 单元测试 \ ← 大量,验证函数/类行为
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
数量比例参考:单元 > 集成 > 接口 > 系统
定义:验证单个函数、方法或类的行为,隔离所有外部依赖。
编写原则:
覆盖率定义:
| 指标 | 名称 | 定义 | 目标 |
|---|---|---|---|
| C0 | 语句覆盖 | 每条可执行语句至少被执行一次 | 100% |
| C1 | 分支覆盖 | 每个条件分支(if/else、switch case)至少各执行一次 | 100% |
覆盖率工具:
| 语言 | 覆盖率工具 | 报告格式 |
|---|---|---|
| Python | pytest-cov (coverage.py) | HTML / XML / JSON |
| C# | coverlet + ReportGenerator | Cobertura / HTML |
| TypeScript | jest --coverage / c8 | LCOV / HTML |
| Java | JaCoCo | HTML / XML |
| Go | go test -cover | HTML / func |
| Rust | cargo-tarpaulin | HTML / XML |
| C/C++ | gcov + lcov | HTML |
覆盖率排除规则:
命名规范:test_<功能>_<场景>_<预期结果>
示例场景:
框架选择:
| 语言 | 框架 | Mock 库 |
|---|---|---|
| Python | pytest | unittest.mock / pytest-mock |
| C# | xUnit | Moq / NSubstitute |
| TypeScript | jest / vitest | jest.mock / vi.mock |
| Java | JUnit 5 | Mockito |
| Go | go test | testify/mock |
| Rust | cargo test | mockall |
| C++ | Google Test | Google Mock |
定义:验证模块间的协作,测试真实或模拟的外部依赖交互。
编写原则:
测试环境:
示例场景:
定义:验证 HTTP/RPC/WebSocket 接口的请求-响应契约。
启用条件:项目暴露了 HTTP / gRPC / WebSocket / MCP 等外部接口。
编写原则:
工具选择(由 Agent 根据技术栈自动选择):
| 语言 | 工具 |
|---|---|
| Python | httpx + pytest / TestClient (FastAPI) |
| C# | WebApplicationFactory + HttpClient |
| TypeScript | supertest / pactum |
| Java | MockMvc / RestAssured |
| Go | net/http/httptest |
示例场景:
定义:端到端验证完整的业务场景,模拟真实用户操作流程。
启用条件:
编写原则:
示例场景:
每个测试场景按以下格式编写:
场景编号:TS-{层级}-{编号}
层级标记:U(单元) / I(集成) / A(接口) / S(系统)
场景描述:一句话描述测试目的
前置条件:测试执行前的环境要求
操作步骤:
1. 步骤一
2. 步骤二
预期结果:期望的输出或行为
对应验收标准:AC-{编号}
按层级顺序执行,前一层通过后再执行下一层:
# Python
pytest tests/unit/ -v --tb=short --cov=src --cov-branch --cov-report=html
pytest tests/integration/ -v --tb=short
pytest tests/api/ -v --tb=short
# C# / .NET
dotnet test --filter "Category=Unit" --collect:"XPlat Code Coverage" -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=cobertura
dotnet test --filter "Category=Integration"
# Node.js / TypeScript
npx jest tests/unit --coverage --coverageThreshold='{"global":{"statements":100,"branches":100}}'
npx jest tests/integration
# Go
go test ./tests/unit/... -v -cover -coverprofile=coverage.out
go test ./tests/integration/... -v
# Rust
cargo tarpaulin --out Html -- --test-threads=1
# Java
mvn test -Dtest="*UnitTest" -Djacoco.destFile=target/jacoco-unit.exec
{
"run_id": "TR-YYYYMMDD-001",
"project": "项目名称",
"result": "pass | fail",
"total_passed": 0,
"total_failed": 0,
"total_skipped": 0,
"layers": [
{
"layer": "unit",
"passed": 0,
"failed": 0,
"skipped": 0,
"duration_ms": 0,
"coverage": {
"c0_statement": "100%",
"c1_branch": "100%",
"excluded_files": [],
"exclusion_reason": ""
},
"cases": [
{
"name": "test_xxx",
"result": "pass | fail | skip",
"duration_ms": 0,
"error": null
}
]
},
{
"layer": "integration",
"passed": 0,
"failed": 0,
"skipped": 0,
"cases": []
},
{
"layer": "interface",
"passed": 0,
"failed": 0,
"skipped": 0,
"cases": []
},
{
"layer": "system",
"passed": 0,
"failed": 0,
"skipped": 0,
"cases": []
}
],
"failures": [
{
"test": "test_xxx",
"layer": "unit",
"error": "错误描述",
"file": "文件路径",
"line": 0
}
]
}
workflow_state.json 的 status: rollback每个验收标准(AC-{编号})必须至少被一个测试用例覆盖。在测试计划中输出映射表:
| 验收标准 | 单元测试 | 集成测试 | 接口测试 | 系统测试 |
|---|---|---|---|---|
| AC-01 | TS-U-001 | TS-I-001 | TS-A-001 | — |
| AC-02 | TS-U-002, TS-U-003 | — | TS-A-002 | TS-S-001 |