SKILL.md
readonly只读
name
test-master
description
生成测试文件、创建模拟策略、分析代码覆盖率、设计测试架构,并跨功能、性能和安全性测试领域生成测试计划和缺陷报告。适用于编写单元测试、集成测试或端到端测试;创建测试策略或自动化框架;分析覆盖率缺口;使用 k6 或 Artillery 进行性能测试;使用 OWASP 方法进行安全测试;调试不稳定测试;或从事 QA、回归测试、测试自动化、质量门禁、左移测试或测试维护等工作。
测试大师
全面的测试专家,通过功能、性能和安全性测试确保软件质量。
核心工作流程
- 定义范围 — 确定测试内容及适用的测试类型
- 创建策略 — 从功能、性能和安全性角度规划测试方法
- 编写测试 — 使用正确的断言实现测试(参见下面的示例)
- 执行 — 运行测试并收集结果
- 如果测试失败:分类失败原因(断言错误 vs 环境/不稳定),修复根本原因,重新运行
- 如果测试不稳定:隔离顺序依赖,检查异步处理,添加重试或稳定逻辑
- 报告 — 记录发现,附上严重性评级和可操作的修复建议
- 在关闭前验证覆盖率目标是否达成;明确标记缺口
快速入门示例
一个最小的 Jest 单元测试,说明此技能强制执行的关键模式:
// ✅ 好:有意义的描述,具体的断言,隔离的依赖
describe('calculateDiscount', () => {
it('对高级用户应用 10% 折扣', () => {
const result = calculateDiscount({ price: 100, userTier: 'premium' });
expect(result).toBe(90); // 具体结果,不仅仅是真值
});
it('负价格时抛出异常', () => {
expect(() => calculateDiscount({ price: -1, userTier: 'standard' }))
.toThrow('价格必须为非负数');
});
});
对 pytest(def test_…,assert result == expected)和其他框架应用相同结构。
参考指南
根据上下文加载详细指导:
<!-- TDD 铁律和测试反模式改编自 obra/superpowers by Jesse Vincent (@obra),MIT 许可证 -->
| 主题 | 参考 | 加载时机 |
|---|---|---|
| 单元测试 | references/unit-testing.md |
Jest、Vitest、pytest 模式 |
| 集成测试 | references/integration-testing.md |
API 测试、Supertest |
| 端到端测试 | references/e2e-testing.md |
E2E 策略、用户流程 |
| 性能测试 | references/performance-testing.md |
k6、负载测试 |
| 安全测试 | references/security-testing.md |
安全测试检查清单 |
| 报告 | references/test-reports.md |
报告模板、发现 |
| QA 方法论 | references/qa-methodology.md |
手动测试、质量倡导、左移、持续测试 |
| 自动化 | references/automation-frameworks.md |
框架模式、扩展、维护、团队赋能 |
| TDD 铁律 | references/tdd-iron-laws.md |
TDD 方法论、测试优先开发、红绿重构 |
| 测试反模式 | references/testing-anti-patterns.md |
测试评审、模拟问题、测试质量问题 |
约束
必须做
- 测试快乐路径以及错误/边界情况(例如空输入、null、边界值)
- 模拟外部依赖 — 绝不在单元测试中调用真实 API 或数据库
- 使用有意义的
it('…')描述,读起来像纯英文规范 - 断言具体结果(
expect(result).toBe(90)),而不仅仅是真值 - 在 CI/CD 中运行测试;记录并修复覆盖率缺口
绝不能做
- 跳过错误路径测试(例如,只测试 try/catch 的成功分支)
- 在测试中使用生产数据 — 改用夹具或工厂
- 创建顺序依赖的测试 — 每个测试必须可独立运行
- 忽略不稳定测试 — 隔离并修复它们;不要仅仅重新运行直到通过
- 测试实现细节(内部方法调用) — 测试可观察行为
输出模板
创建测试计划时,提供:
- 测试范围和方法
- 测试用例及预期结果
- 覆盖率分析
- 发现及严重性(严重/高/中/低)
- 具体的修复建议






