| name | build-test-suite |
| description | 构建软件测试集的指南。Use when creating or improving test coverage for software projects for: (1) Setting up test infrastructure for backend APIs and services, (2) Designing test cases with idempotency guarantees, (3) Selecting appropriate testing frameworks for the current tech stack, (4) Maintaining test quality across long-term iterations, (5) Running full test suites before commits. Must follow the 5 golden rules: user approval before creation, test idempotency, pre-commit validation, no modification of existing tests, backend-first execution order. |
构建软件测试集
软件测试集的构建指南。构建测试集是为了维持软件在长期迭代中的稳定性,是保障代码质量的必要过程。
核心原则
测试集是长期迭代的保护伞,而非一次性任务。
构建测试集的首要目标是保证后端功能的正确性,其次才是前端测试。
测试集类型
构建流程
第一步:分析后端代码
- 扫描项目中的所有后端代码文件
- 识别核心业务逻辑(API 接口、Service 层、关键函数)
- 搜索当前技术栈的主流测试框架
- 整理需要测试的模块列表
第二步:设计方案(用户确认)
⚠️ 重要:在用户确认前,禁止直接创建测试文件。
以表格形式输出测试集设计方案:
| 模块 | 测试点 | 测试框架 | 优先级 | 预估工作量 |
|---|
| UserService | CRUD 操作 | Jest | P0 | 2h |
| Auth API | 登录/鉴权 | Jest + supertest | P0 | 3h |
| ... | ... | ... | ... | ... |
等待用户确认或修改方案后,方可进入实施阶段。
第三步:选择测试框架
操作步骤:
- 分析技术栈:扫描项目代码,识别当前使用的后端技术栈(如 Node.js、Python、Go、Java、Rust 等)
- 网络搜索:针对识别出的技术栈,搜索网络获取该领域成熟的测试框架
- 搜索关键词:"{技术栈} testing framework 2024"、"{技术栈} best test framework"
- 关注:社区活跃度、GitHub stars、官方推荐、与当前项目匹配度
- 评估选择:综合考虑以下因素选择最合适的框架
- 与现有技术栈的兼容性
- 学习成本
- 社区支持和文档完善度
- 是否支持所需的测试类型(单元、集成、覆盖率等)
第四步:实施构建
按照确认的测试集方案,逐步实现测试代码。
五大准则
准则一:用户确认制
- 禁止行为:未经用户确认,直接创建测试文件
- 正确流程:
- 分析后端代码
- 整理测试集方案(表格形式)
- 提交给用户确认
- 用户同意后方可构建
准则二:幂等性保证
无论运行多少次测试,系统状态必须保持一致。
- 查询操作:天然幂等,无需特殊处理
- 数据变更操作:必须配套清理逻辑
it('should create user', async () => {
const user = await createUser({ name: 'Test' });
expect(user.name).toBe('Test');
await deleteUser(user.id);
});
beforeEach(async () => {
await db.clean();
});
准则三:提交前必测
-
触发时机:
-
执行流程:
- 运行全部测试文件
- 如有失败,分析错误信息
- 修改代码直至全部通过
- 方可提交
准则四:测试文件不可随意修改
- 禁止行为:修改已写好的测试文件
- 例外情况:
- 用户明确要求修改
- 情况紧急(大量测试未建立,需要调整策略)
理由:测试文件是功能的契约,随意修改会降低测试可信度。
准则五:执行顺序
必须遵循:后端测试 → 前端测试
- 先运行所有后端测试
- 确认后端测试全部通过
- 再运行前端测试
- 确保开发环境本身无问题
前端测试引用
前端测试可借助以下 Skill 完成:
测试集检查清单