File contents 构建软件测试集
软件测试集的构建指南。构建测试集是为了维持软件在长期迭代中的稳定性,是保障代码质量的必要过程。
核心原则
测试集是长期迭代的保护伞,而非一次性任务。
构建测试集的首要目标是保证后端功能的正确性,其次才是前端测试。
测试集类型
构建流程
第一步:分析后端代码
扫描项目中的所有后端代码文件
识别核心业务逻辑(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/afterEach
beforeEach(async () => {
await db.clean(); // 清理测试数据
});
准则三:提交前必测
触发时机 :
执行流程 :
运行全部测试文件
如有失败,分析错误信息
修改代码直至全部通过
方可提交
准则四:测试文件不可随意修改
禁止行为 :修改已写好的测试文件
例外情况 :
用户明确要求修改
情况紧急(大量测试未建立,需要调整策略)
理由 :测试文件是功能的契约,随意修改会降低测试可信度。
准则五:执行顺序
必须遵循:后端测试 → 前端测试
先运行所有后端测试
确认后端测试全部通过
再运行前端测试
确保开发环境本身无问题
前端测试引用
前端测试可借助以下 Skill 完成:
测试集检查清单
1 --- 2 name: build-test-suite 3 description: 构建软件测试集 4 --- 5 6 # 构建软件测试集 7 8 软件测试集的构建指南。构建测试集是为了维持软件在长期迭代中的稳定性,是保障代码质量的必要过程。 9 10 --- 11 12 ## 核心原则 13 14 > **测试集是长期迭代的保护伞,而非一次性任务。** 15 16 构建测试集的首要目标是保证后端功能的正确性,其次才是前端测试。 17 18 --- 19 20 ## 测试集类型 21 22 | 类型 | 优先级 | 说明 | 相关 Skill | 23 |-----|-------|------|-----------| 24 | **后端功能测试** | P0(优先) | 测试 API、Service、Database 操作等 | - | 25 | **前端测试** | P1 | 测试 UI 交互、页面流程 | [web-devtools](../web-devtools/SKILL.md)、[weapp-devtools](../weapp-devtools/SKILL.md) | 26 27 --- 28 29 ## 构建流程 30 31 ### 第一步:分析后端代码 32 33 1. 扫描项目中的所有后端代码文件 34 2. 识别核心业务逻辑(API 接口、Service 层、关键函数) 35 3. 搜索当前技术栈的主流测试框架 36 4. 整理需要测试的模块列表 37 38 ### 第二步:设计方案(用户确认) 39 40 **⚠️ 重要:在用户确认前,禁止直接创建测试文件。** 41 42 以表格形式输出测试集设计方案: 43 44 | 模块 | 测试点 | 测试框架 | 优先级 | 预估工作量 | 45 |-----|-------|---------|-------|-----------| 46 | UserService | CRUD 操作 | Jest | P0 | 2h | 47 | Auth API | 登录/鉴权 | Jest + supertest | P0 | 3h | 48 | ... | ... | ... | ... | ... | 49 50 等待用户确认或修改方案后,方可进入实施阶段。 51 52 ### 第三步:选择测试框架 53 54 **操作步骤:** 55 56 1. **分析技术栈**:扫描项目代码,识别当前使用的后端技术栈(如 Node.js、Python、Go、Java、Rust 等) 57 2. **网络搜索**:针对识别出的技术栈,搜索网络获取该领域成熟的测试框架 58 - 搜索关键词:"{技术栈} testing framework 2024"、"{技术栈} best test framework" 59 - 关注:社区活跃度、GitHub stars、官方推荐、与当前项目匹配度 60 3. **评估选择**:综合考虑以下因素选择最合适的框架 61 - 与现有技术栈的兼容性 62 - 学习成本 63 - 社区支持和文档完善度 64 - 是否支持所需的测试类型(单元、集成、覆盖率等) 65 66 ### 第四步:实施构建 67 68 按照确认的测试集方案,逐步实现测试代码。 69 70 --- 71 72 ## 五大准则 73 74 ### 准则一:用户确认制 75 76 - **禁止行为**:未经用户确认,直接创建测试文件 77 - **正确流程**: 78 1. 分析后端代码 79 2. 整理测试集方案(表格形式) 80 3. 提交给用户确认 81 4. 用户同意后方可构建 82 83 ### 准则二:幂等性保证 84 85 > **无论运行多少次测试,系统状态必须保持一致。** 86 87 - **查询操作**:天然幂等,无需特殊处理 88 - **数据变更操作**:必须配套清理逻辑 89 90 ```javascript 91 // ✅ 正确示例:测试后清理数据 92 it('should create user', async () => { 93 const user = await createUser({ name: 'Test' }); 94 expect(user.name).toBe('Test'); 95 96 // 测试结束后删除 97 await deleteUser(user.id); 98 }); 99 100 // ✅ 或使用 beforeEach/afterEach 101 beforeEach(async () => { 102 await db.clean(); // 清理测试数据 103 }); 104 ``` 105 106 ### 准则三:提交前必测 107 108 - **触发时机**: 109 - 准备提交代码到 GitHub 时 110 - 用户要求提交时 111 112 - **执行流程**: 113 1. 运行全部测试文件 114 2. 如有失败,分析错误信息 115 3. 修改代码直至全部通过 116 4. 方可提交 117 118 ### 准则四:测试文件不可随意修改 119 120 - **禁止行为**:修改已写好的测试文件 121 - **例外情况**: 122 - 用户明确要求修改 123 - 情况紧急(大量测试未建立,需要调整策略) 124 125 > **理由**:测试文件是功能的契约,随意修改会降低测试可信度。 126 127 ### 准则五:执行顺序 128 129 **必须遵循:后端测试 → 前端测试** 130 131 1. 先运行所有后端测试 132 2. 确认后端测试全部通过 133 3. 再运行前端测试 134 4. 确保开发环境本身无问题 135 136 --- 137 138 ## 前端测试引用 139 140 前端测试可借助以下 Skill 完成: 141 142 - **网站调试**:`../web-devtools/SKILL.md` 143 - UI 自动化测试 144 - 截图对比 145 - 表单交互测试 146 147 - **小程序调试**:`../weapp-devtools/SKILL.md` 148 - 小程序自动化测试 149 - 页面导航测试 150 - 网络 Mock 测试 151 152 --- 153 154 ## 测试集检查清单 155 156 - [ ] 是否已获取用户对方案的确认 157 - [ ] 所有测试是否满足幂等性 158 - [ ] 数据变更操作是否有配套清理 159 - [ ] 提交前是否已运行全部测试 160 - [ ] 后端测试是否先于前端测试运行 161 - [ ] 测试框架是否与当前技术栈匹配
lstm-kirigaya/jinhui-skills/tree/main/skills/jinhui-stack-debug/build-test-suite commit d623e1a49b
Frequently asked questions How do I install the Build Test Suite skill? Run npx skillmds@latest add lstm-kirigaya/build-test-suite in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
What does the Build Test Suite skill do? 构建软件测试集 It is listed under Coding & Dev Tools on SkillMD.
Is Build Test Suite safe to use? This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
Which AI agents work with Build Test Suite? This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Is Build Test Suite free to use? Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
Who published Build Test Suite? lstm-kirigaya (@lstm-kirigaya) published this skill. Their other Agent Skills are listed on their SkillMD profile.