@zhanlucode/zl-darwin-arm64 1.6.4-moma.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/LICENSE +22 -0
  2. package/bin/rg +0 -0
  3. package/bin/tree-sitter/tree-sitter-bash.wasm +0 -0
  4. package/bin/tree-sitter/tree-sitter-c.wasm +0 -0
  5. package/bin/tree-sitter/tree-sitter-c_sharp.wasm +0 -0
  6. package/bin/tree-sitter/tree-sitter-cpp.wasm +0 -0
  7. package/bin/tree-sitter/tree-sitter-css.wasm +0 -0
  8. package/bin/tree-sitter/tree-sitter-dart.wasm +0 -0
  9. package/bin/tree-sitter/tree-sitter-elisp.wasm +0 -0
  10. package/bin/tree-sitter/tree-sitter-elixir.wasm +0 -0
  11. package/bin/tree-sitter/tree-sitter-elm.wasm +0 -0
  12. package/bin/tree-sitter/tree-sitter-embedded_template.wasm +0 -0
  13. package/bin/tree-sitter/tree-sitter-go.wasm +0 -0
  14. package/bin/tree-sitter/tree-sitter-html.wasm +0 -0
  15. package/bin/tree-sitter/tree-sitter-java.wasm +0 -0
  16. package/bin/tree-sitter/tree-sitter-javascript.wasm +0 -0
  17. package/bin/tree-sitter/tree-sitter-json.wasm +0 -0
  18. package/bin/tree-sitter/tree-sitter-kotlin.wasm +0 -0
  19. package/bin/tree-sitter/tree-sitter-lua.wasm +0 -0
  20. package/bin/tree-sitter/tree-sitter-objc.wasm +0 -0
  21. package/bin/tree-sitter/tree-sitter-ocaml.wasm +0 -0
  22. package/bin/tree-sitter/tree-sitter-php.wasm +0 -0
  23. package/bin/tree-sitter/tree-sitter-python.wasm +0 -0
  24. package/bin/tree-sitter/tree-sitter-ql.wasm +0 -0
  25. package/bin/tree-sitter/tree-sitter-rescript.wasm +0 -0
  26. package/bin/tree-sitter/tree-sitter-ruby.wasm +0 -0
  27. package/bin/tree-sitter/tree-sitter-rust.wasm +0 -0
  28. package/bin/tree-sitter/tree-sitter-scala.wasm +0 -0
  29. package/bin/tree-sitter/tree-sitter-solidity.wasm +0 -0
  30. package/bin/tree-sitter/tree-sitter-swift.wasm +0 -0
  31. package/bin/tree-sitter/tree-sitter-systemrdl.wasm +0 -0
  32. package/bin/tree-sitter/tree-sitter-tlaplus.wasm +0 -0
  33. package/bin/tree-sitter/tree-sitter-toml.wasm +0 -0
  34. package/bin/tree-sitter/tree-sitter-tsx.wasm +0 -0
  35. package/bin/tree-sitter/tree-sitter-typescript.wasm +0 -0
  36. package/bin/tree-sitter/tree-sitter-vue.wasm +0 -0
  37. package/bin/tree-sitter/tree-sitter-yaml.wasm +0 -0
  38. package/bin/tree-sitter/tree-sitter-zig.wasm +0 -0
  39. package/bin/tree-sitter/tree-sitter.wasm +0 -0
  40. package/bin/zhanlu-plugins/bundle-index.json +60 -0
  41. package/bin/zhanlu-plugins/lingji-alpha-assistant/.claude-plugin/plugin.json +42 -0
  42. package/bin/zhanlu-plugins/lingji-alpha-assistant/README.md +29 -0
  43. package/bin/zhanlu-plugins/lingji-alpha-assistant/mcps/sast_fixer_mcp/README.md +10 -0
  44. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/SKILL.md +179 -0
  45. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/config/gitlab_config.json +5 -0
  46. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step1_preparation.md +167 -0
  47. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/prompts/step2_consistency_check.md +446 -0
  48. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/gitlab_clone.py +213 -0
  49. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-check/scripts/read_excel_requirements.py +144 -0
  50. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/GITLAB_USAGE.md +160 -0
  51. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/QUICK_REFERENCE.md +149 -0
  52. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/README.md +134 -0
  53. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/SKILL.md +151 -0
  54. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/assets/review_standards.md +144 -0
  55. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/file_review_prompt.md +160 -0
  56. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/output_requirements.md +35 -0
  57. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step1_project_preprocessing.md +106 -0
  58. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step2_file_review.md +83 -0
  59. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/prompts/step3_report_generation.md +319 -0
  60. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/code-review/scripts/gitlab_clone.py +213 -0
  61. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/SKILL.md +366 -0
  62. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/generation-rules.md +214 -0
  63. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/query-rules.md +60 -0
  64. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/review-rules.md +117 -0
  65. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/manual-test-case-generator/references/save-rules.md +367 -0
  66. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/quality_scan/SKILL.md +195 -0
  67. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-analysis/SKILL.md +346 -0
  68. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirement-review/SKILL.md +267 -0
  69. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/requirements-gather/SKILL.md +187 -0
  70. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/sast_scan/SKILL.md +312 -0
  71. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/SKILL.md +77 -0
  72. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/evals/evals.json +34 -0
  73. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-methodology.md +122 -0
  74. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-template.md +93 -0
  75. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/epic-to-story-to-task-template.md +221 -0
  76. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-methodology.md +139 -0
  77. package/bin/zhanlu-plugins/lingji-alpha-assistant/skills/story-decomposer/references/story-to-task-template.md +89 -0
  78. package/bin/zhanlu-plugins/lingji-beta-assistant/.claude-plugin/plugin.json +19 -0
  79. package/bin/zhanlu-plugins/lingji-beta-assistant/README.md +21 -0
  80. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/.gitkeep +1 -0
  81. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-analysis/SKILL.md +383 -0
  82. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/SKILL.md +348 -0
  83. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-methodology.md +122 -0
  84. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-template.md +93 -0
  85. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/epic-to-story-to-task-template.md +221 -0
  86. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-methodology.md +139 -0
  87. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-decomposer/references/story-to-task-template.md +89 -0
  88. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirement-review/SKILL.md +350 -0
  89. package/bin/zhanlu-plugins/lingji-beta-assistant/skills/beta-requirements-gather/SKILL.md +244 -0
  90. package/bin/zl +4 -0
  91. package/package.json +18 -0
@@ -0,0 +1,366 @@
1
+ ---
2
+ name: manual-test-case-generator
3
+ description: |
4
+ 手工测试用例生成、查询并保存技能。根据用户指定的需求编号,自动拉取需求详情,基于需求描述和验收标准生成结构化手工测试用例(用例标题、前置条件、测试步骤、预期结果、优先级、用例类型),以 Markdown 列表形式展示,支持对话修改,并可批量保存至用例库指定目录;同时支持查询关联指定需求的已有测试用例。当用户提到"手工用例"、"测试用例"、"manual test case"、"生成用例"、"设计用例"、"编写用例"、"修改用例"、"保存用例"、"用例入库"、"查询用例"、"查看用例"、"关联需求的用例"时,务必使用此 skill。
5
+ ---
6
+
7
+ # 手工测试用例生成与查询
8
+
9
+ > 根据用户指定的需求编号,自动拉取需求详情,生成结构化手工测试用例,支持对话修改,并引导用户将用例保存至用例库;同时支持查询关联指定需求的已有测试用例。
10
+
11
+ ## 流程
12
+
13
+ **重要:本流程各步骤依次执行,不要在步骤之间无故停下等待用户输入(使用 question 工具与用户交互的步骤除外)。**
14
+
15
+ ### 第 1 步:身份解析
16
+
17
+ 从本地认证文件读取当前用户身份信息。
18
+
19
+ - **Windows 路径**:`C:\Users\Admin\.local\share\zhanlu\auth_zhanlu.json`
20
+ - **macOS / Linux 路径**:`~/.local/share/zhanlu/auth_zhanlu.json`
21
+
22
+ 从 `metadata` 中提取 `userName`、`deputyAccountNumber`、`email`。
23
+
24
+ ### 第 2 步:意图识别与流程分流
25
+
26
+ 根据用户指令判断执行路径:
27
+
28
+ | 用户指令特征 | 执行路径 |
29
+ |-------------|---------|
30
+ | 包含"生成用例"、"设计用例"、"编写用例"、"帮我写用例"等 | → **流程 A:生成用例**(第 3 步起) |
31
+ | 包含"生成用例并保存"、"生成用例并入库"等 | → **流程 A:生成用例**(第 3 步起),生成完成后自动衔接第 5.4 步(保存MD)和第 7 步(保存至用例库) |
32
+ | 包含"查询用例"、"查看用例"、"关联XX需求的用例"、"获取用例"等 | → **流程 B:查询用例**(阅读 `references/query-rules.md` 执行) |
33
+ | 包含"保存用例"、"用例入库"等 | → **第 7 步:保存用例至用例库**(阅读 `references/save-rules.md` 执行) |
34
+ | 包含"修改用例"等 | → **第 6 步:修改用例**(需上下文中已有用例数据) |
35
+
36
+ ---
37
+
38
+ ## 流程 A:生成用例
39
+
40
+ ### 第 3 步:查询获取需求列表
41
+
42
+ 使用 `mcp__cmdevops_req__list_req_item` 拉取需求列表,支持以下查询方式:
43
+
44
+ | 用户说法 | 查询策略 |
45
+ |----------|----------|
46
+ | "帮我生成手工用例" | 查询当前用户作为负责人、处于未完成状态的需求 |
47
+ | "为XX项目空间生成用例" | 按 `workspaceName` 筛选指定项目空间的需求 |
48
+ | "为张三提交的需求生成用例" | 按 `approver`(审批人/提交人副账号)筛选指定人员提交的需求 |
49
+ | "为 RR20260119400340 生成用例" | 按 `key` 精确匹配指定需求编号 |
50
+ | "为登录相关需求生成用例" | 按 `name` 模糊匹配需求标题 |
51
+
52
+ **筛选维度组合:** 以上条件可组合使用,例如"为演示项目中李四提交的需求生成用例"同时按 `workspaceName` + `approver` 筛选。
53
+
54
+ **默认查询参数(list_req_item):**
55
+ - `queryMap.itemTypeName` ∈ ["初始需求", "用户故事"]
56
+ - `queryMap.statusName` ∈ ["新建", "需求分派", "需求接收", "分析", "需求评审", "评审中", "评审完成", "设计", "开发", "测试", "待验收", "验收", "验收不通过", "采纳", "执行", "未开始", "进行中"]
57
+ - `queryMap.values__assignee` = ["currentUser"](当前用户作为负责人)
58
+ - `from` = 0, `size` = 50
59
+ - `fields` 不允许传值
60
+ - 所有 MCP 调用的 `workspaceId` 参数均传 **空间编码**,非空间数据库ID
61
+
62
+ **按提交人筛选时额外参数:**
63
+ - `queryMap.approver` = 提交人副账号。若用户仅提供姓名,需先通过姓名匹配确认副账号。
64
+ - 此时 `queryMap.values__assignee` 不再默认为 `currentUser`,改为查询该提交人名下的需求。
65
+
66
+ 如果用户指定了需求编号(1个或多个),直接用 `queryMap.key` 精确匹配,无需按状态和负责人过滤。
67
+
68
+ ### 第 4 步:展示需求列表并确认
69
+
70
+ 将查询到的需求以 Markdown 列表形式展示给用户确认,**必须包含业务背景、需求描述、验收标准,且这三个字段必须完整展示,禁止截断或省略**:
71
+ ```markdown
72
+ 📋 需求列表
73
+
74
+ ### 1. RR20260119400340 - 查看项目列表
75
+ - **类型**: 初始需求
76
+ - **状态**: 评审完成
77
+ - **优先级**: P0
78
+ - **业务背景**: 本项目隶属于XX项目,用来解决用户查看项目信息的问题,当前系统缺乏统一的项目信息展示入口...
79
+ - **需求描述**: 支持按分页查看项目列表,包含项目名称、状态、负责人等字段,支持按名称模糊搜索...
80
+ - **验收标准**: 1.分页功能正常 2.字段展示正确 3.支持按名称搜索 4.每页默认20条...
81
+
82
+ ### 2. RR20260119400341 - 用户登录功能
83
+ - **类型**: 用户故事
84
+ - **状态**: 开发
85
+ - **优先级**: P1
86
+ - **业务背景**: 移动云平台新增用户登录功能,支持多种登录方式
87
+ - **需求描述**: 支持手机号+验证码或邮箱+密码两种登录方式
88
+ - **验收标准**: 1.手机号登录可用 2.密码规则校验正确
89
+ ```
90
+ 以上是否为您要生成用例的需求?确认后继续,如需调整请直接输入修改内容。
91
+
92
+ `question` 工具调用示例:
93
+
94
+ ```json
95
+ {
96
+ "questions": [
97
+ {
98
+ "question": "以上是否为您要生成用例的需求?确认后继续,如需调整请直接输入修改内容。",
99
+ "header": "需求确认",
100
+ "options": [
101
+ { "label": "确认,继续生成用例", "description": "为以上需求生成手工测试用例" }
102
+ ]
103
+ }
104
+ ]
105
+ }
106
+ ```
107
+
108
+ `question` 工具默认启用 `custom` 模式,用户如需调整范围可直接在输入框中输入,**不要在 options 中添加"调整范围"选项**。
109
+
110
+ ### 第 5 步:拉取需求详情并生成用例
111
+
112
+ #### 5.1 拉取需求详情
113
+
114
+ 从 `list_req_item` 返回结果中提取核心字段:
115
+
116
+ | 字段 | 说明 | 生成用途 |
117
+ |------|------|----------|
118
+ | businessBackground | 业务背景 | 理解业务场景,设计测试场景 |
119
+ | requirement | 需求描述 | 拆解功能点,生成测试用例 |
120
+ | acceptanceCriteria | 验收标准 | 直接转化为预期结果和验证点 |
121
+
122
+ 若列表返回数据不完整,需再次调用 `mcp__cmdevops_req__list_req_item` 按 `key` 精确查询单条需求详情。
123
+
124
+ #### 5.2 生成测试用例
125
+
126
+ 阅读 `references/generation-rules.md` 获取完整生成规则,然后根据需求信息生成用例。
127
+
128
+ **核心原则:生成的测试用例必须针对需求本身描述的业务功能进行测试,而非针对"用户操作AI生成用例的流程"。** 测试步骤中的操作对象是需求描述中的功能模块(如页面、接口、按钮、数据),不是IDE对话框或AI交互流程。
129
+
130
+ **错误示例**(针对AI交互流程,禁止):
131
+ ```
132
+ 前置条件: 用户已登录灵畿平台,IDE中MCP服务连接正常
133
+ 测试步骤: 在IDE对话框中输入指令"为需求XX生成手工用例"
134
+ 预期结果: 系统返回需求详情
135
+ ```
136
+
137
+ **正确示例**(针对需求功能本身):
138
+ ```
139
+ 前置条件: 用户已登录系统,拥有需求管理模块操作权限
140
+ 测试步骤: 进入需求列表页面,输入需求编号CMSSAIYSYFXFS-330进行搜索
141
+ 预期结果: 列表展示需求CMSSAIYSYFXFS-330的详情,包含业务背景、需求描述、验收标准等完整字段
142
+ ```
143
+
144
+ **输入来源:** 以 5.1 步提取的 `businessBackground`(业务背景)、`requirement`(需求描述)、`acceptanceCriteria`(验收标准)三个字段作为生成依据,从中拆解功能点,设计针对这些功能点的测试用例。
145
+
146
+ **用户指定了用例类型或数量时,以用户要求为准,不再强制以下默认规则。** 例如用户说"只生成功能测试用例"则仅生成功能测试类型;用户说"每个需求生成2条用例"则按2条生成。
147
+
148
+ 未指定时,默认遵循以下规则:
149
+
150
+ - 100% 覆盖所有识别到的测试点
151
+ - 每个需求至少 4 条用例
152
+ - 7 种用例类型均需覆盖(功能测试、兼容性测试、易用性测试、性能测试、安全测试、冒烟测试、可靠性测试)
153
+ - 包含正向、负向、边界值三类场景
154
+ - 步骤和预期结果必须一一对应
155
+
156
+ #### 5.3 用例格式与展示
157
+
158
+ **生成用例后,必须先在 IDE 中以 Markdown 格式完整展示所有用例内容,然后再询问保存路径。** 禁止仅展示用例标题摘要而省略详细内容。
159
+
160
+ 每条用例必须包含以下全部字段,缺一不可:用例编号、用例标题、用例类型、用例等级、前置条件、测试步骤、预期结果。
161
+
162
+ 按以下格式输出(Markdown 列表,不使用表格):
163
+
164
+ ```markdown
165
+ ## 测试用例
166
+
167
+ ### 需求:{需求Key} - {需求标题}
168
+
169
+ #### 用例 1: [模块-场景-预期状态]
170
+ - **用例编号**: TC-001(三位数序号递增)
171
+ - **用例类型**: [功能测试|兼容性测试|易用性测试|性能测试|安全测试|冒烟测试|可靠性测试]
172
+ - **用例等级**: [P0|P1|P2|P3]
173
+ - **前置条件**:
174
+ 1. [独立占一行,不合并多条]
175
+ - **测试步骤**:
176
+ 1. [操作动作] + [输入内容/参数] + [附加说明]
177
+ - **预期结果**:
178
+ 1. [数据状态] + [系统响应] + [验证标准]
179
+
180
+ #### 用例 2: [用例标题]
181
+ - **用例编号**: TC-002
182
+ - **用例类型**: ...
183
+ - **用例等级**: ...
184
+ - **前置条件**:
185
+ 1. ...
186
+ - **测试步骤**:
187
+ 1. ...
188
+ - **预期结果**:
189
+ 1. ...
190
+ ```
191
+
192
+ **展示完成后再执行 5.4 步保存操作。**
193
+
194
+ #### 5.4 保存用例文档
195
+ 生成用例并展示后,保存仍须获得用户对精确目标路径的明确确认。当前对话已明确指定并批准该路径、且不涉及未批准的覆盖时,复用该确认并写入;否则使用 `question` 询问路径,禁止把默认路径或经过的时间当作批准。已有文件覆盖、需求回写和用例平台入库分别保留对应批准。
196
+ **默认路径:** `当前项目/doc/manual_test_case/{需求Key}_{需求名称}.md`
197
+
198
+ `question` 工具调用示例:
199
+
200
+ ```json
201
+ {
202
+ "questions": [
203
+ {
204
+ "question": "请确认用例文档保存路径,默认保存至 doc/manual_test_case/",
205
+ "header": "保存路径",
206
+ "options": [
207
+ { "label": "使用默认路径", "description": "保存至 doc/manual_test_case/{需求Key}_{需求名称}.md" }
208
+ ]
209
+ }
210
+ ]
211
+ }
212
+ ```
213
+
214
+ `question` 工具默认启用 `custom` 模式,会自动附带输入框供用户输入自定义路径,**不要在 options 中添加"自定义路径"选项**。
215
+
216
+ **必须等待用户选择或输入后再执行 `write` 操作。** 若目录不存在,需先创建目录。每条需求的用例保存为独立文件,特殊字符 `/\\:*?"<>|` 用下划线替代。
217
+
218
+ **重要:无论用户是否要求保存至用例库,生成的用例都必须保存为 MD 文件。** 当用户输入"生成用例并保存至用例库"时,本步骤不可跳过,必须先保存 MD 文件再执行第 7 步。
219
+
220
+ 保存完成后展示文件路径:
221
+
222
+ ```
223
+ 📁 用例文档已保存:doc/manual_test_case/RR20260119400340_查看项目列表.md
224
+ ```
225
+
226
+ 后续引导:
227
+ - 仅生成用例:`如需修改用例可直接编辑 MD 文件或通过对话调整。确认无误后,请输入"保存用例到XX用例库"进行入库。`
228
+ - 生成并保存:直接继续执行第 7 步保存至用例库
229
+
230
+ ### 第 6 步:修改用例(按需)
231
+
232
+ 用户可通过两种方式修改用例:
233
+
234
+ **方式一:对话修改** — 等级调整、内容修改、批量修改、增删用例等
235
+
236
+ **方式二:直接编辑 MD 文件** — 用户可直接在 IDE 中编辑第 5.4 步保存的 MD 文件
237
+
238
+ **同步更新规则:** 无论通过哪种方式修改,修改完成后必须将最新用例内容同步写入 MD 文件。对话修改后立即使用 `write` 工具更新;用户编辑 MD 文件后无需额外同步。
239
+
240
+ 修改完成后,主动引导用户保存用例:
241
+
242
+ ```
243
+ 用例修改完成,MD 文档已同步更新。如需保存到用例库,请输入"保存用例到XX用例库"进行入库。
244
+ ```
245
+
246
+ ### 第 7 步:保存用例至用例库
247
+
248
+ 阅读 `references/save-rules.md` 获取完整保存规则,包括:
249
+ - 自然语言指令解析(用例库名、目录、测试计划)
250
+ - 用例库及场景目录树查询与校验
251
+ - 测试计划查询
252
+ - 必填字段确认
253
+ - Markdown 用例到平台格式的数据转换
254
+ - `batch_create_case` API 调用
255
+ - 保存结果展示
256
+
257
+ **核心约束:**
258
+ - `execType` 固定为 1(手工测试),所有保存的用例均为手工用例
259
+ - `moduleId` 未指定目录时默认填 `"-1"`,指定目录时填对应的 moduleId 字符串
260
+ - `priority`、`caseType`、`execType` 为 integer 类型,**禁止传字符串**(如 `"P0"`、`"功能测试"`),`caseName`、`directorId`、`creator`、`moduleId`、`demandList`、`projectId`、`productId` 等为 string 类型,类型必须与平台字段一致
261
+ - `projectId`(项目编码)从当前需求的关联项目中获取,如果获取不到,则从当前登录研发空间的关联项目中自动提取,仅一个时自动填充,多个时让用户选择
262
+ - `productId`(产品编码)从当前需求的关联产品中获取,如果获取不到,则从当前登录研发空间的关联产品中自动提取,仅一个时自动填充,多个时让用户选择
263
+ - `remark` 为可选字段,用户有补充说明时填入,无则不传
264
+
265
+ ---
266
+
267
+ ## 流程 B:查询用例
268
+
269
+ 阅读 `references/query-rules.md` 获取完整查询规则,包括:
270
+ - 需求编号解析(支持多个需求、标题模糊匹配)
271
+ - `page_query_case` 分页查询与需求关联过滤
272
+ - 查询结果展示与引导生成
273
+
274
+ ---
275
+
276
+ ## 用例等级速查
277
+
278
+ | 等级 | 编码 | 定义 | 示例 |
279
+ |------|------|------|------|
280
+ | P0 | 0 | 核心产品/业务,高频用户感知 | 登录、核心控制台、订购流程 |
281
+ | P1 | 1 | 关键业务正常逻辑 + 基础异常 | 备案、API、注销/恢复 |
282
+ | P2 | 2 | 非关键业务正常,其他业务正常 | 非核心功能正常场景 |
283
+ | P3 | 3 | 其他异常逻辑,低频场景 | 非核心/非高频的异常场景 |
284
+ | P4 | 4 | 极低频、可降级场景 | 旁路功能、降级体验 |
285
+
286
+ ## 用例类型速查
287
+
288
+ 必须覆盖以下 7 种类型(括号内为保存到平台时的数字编码):
289
+
290
+ 1. **功能测试**(0)— 验证业务功能正确性
291
+ 2. **兼容性测试**(1)— 多浏览器/OS/分辨率/版本兼容
292
+ 3. **易用性测试**(2)— 操作简洁性、提示清晰度、无障碍
293
+ 4. **性能测试**(3)— 验证响应时间、并发、资源占用
294
+ 5. **安全测试**(4)— 权限控制、注入防护、数据加密
295
+ 6. **冒烟测试**(6)— P0/P1 级核心功能快速验证
296
+ 7. **可靠性测试**(7)— 长时间运行、断网恢复、重复提交幂等
297
+
298
+ ## 关键约束
299
+
300
+ - **数据脱敏**:敏感数据用 `***` 替代,保留语义描述
301
+ - **步骤与预期一一对应**:每个测试步骤有且仅有一条预期结果
302
+ - **前置条件独立成行**:禁止将多个条件用分号合并在同一行
303
+ - **不编造信息**:前置条件只写权限、数据状态、基础环境
304
+ - **中文输出**:所有内容使用简体中文
305
+ - **不使用表格**:用例内容用 Markdown 列表格式
306
+
307
+ ## 异常处理
308
+
309
+ ### 无效需求编号
310
+
311
+ 用户输入的需求编号不存在时,**不要编造需求内容**,返回明确提示:
312
+
313
+ ```
314
+ ⚠️ 未找到需求编号"XX-999",请确认编号是否正确。
315
+ 可尝试:1. 检查编号拼写 2. 输入"帮我生成手工用例"查看当前负责人下的需求列表
316
+ ```
317
+
318
+ ### 保存目录不存在
319
+
320
+ 用户指定的用例库目录不存在时,**不执行保存操作**,提示用户重新选择。详细规则见 `references/save-rules.md`。
321
+
322
+ ### MCP 服务调用异常
323
+
324
+ `list_req_item`、`list_query_library`、`page_query_case`、`batch_create_case` 等 MCP 调用超时或返回网络错误时:
325
+
326
+ ```
327
+ ⚠️ 网络异常:MCP 服务调用超时,无法连接{服务名称}。
328
+ 请检查网络连接后重试。如持续失败,请联系平台运维。
329
+ ```
330
+
331
+ ### 权限不足
332
+
333
+ MCP 返回权限相关错误时,给出明确提示:
334
+
335
+ ```
336
+ ⚠️ 权限不足:当前用户对{资源名称}没有{操作}权限。
337
+ 请联系空间管理员开通权限后重试。
338
+ ```
339
+
340
+ ### 保存/查询失败
341
+
342
+ 保存或查询操作部分或全部失败时,必须展示每条失败记录的具体原因,禁止仅提示"操作失败":
343
+
344
+ ```
345
+ ❌ 失败详情:
346
+ - TC-003: 并发登录 → 失败原因:用例名称重复
347
+ - TC-005: XSS防护 → 失败原因:目录权限不足
348
+ ```
349
+
350
+ ## MCP 工具清单
351
+
352
+ | 工具名称 | 用途 |
353
+ |---------|------|
354
+ | `mcp__cmdevops_req__list_req_item` | 拉取初始需求和用户故事列表 |
355
+ | `mcp__cmdevops_ct__list_query_library` | 获取用例库ID及场景目录树 |
356
+ | `mcp__cmdevops_ct__list_query_plan` | 查询研发空间下的测试计划列表 |
357
+ | `mcp__cmdevops_ct__page_query_case` | 从用例库分页查询测试用例 |
358
+ | `mcp__cmdevops_ct__batch_create_case` | 批量创建测试用例至用例库 |
359
+
360
+ ## 评审规则(可选)
361
+
362
+ > 仅当用户明确要求"评审用例""需要评审"等表述时执行。
363
+
364
+ 阅读 `references/review-rules.md`,对照 8 个评审维度进行自我评审。评审的核心原则是**发现问题,而非确认通过**。
365
+
366
+ 评审不通过时执行一轮修正:修复所有不通过项、清理幻觉信息、补充缺失场景和类型。最多修正 1 轮。
@@ -0,0 +1,214 @@
1
+ # 测试用例生成规则
2
+
3
+ 本文件定义了手工测试用例生成的完整规则。生成用例时,每一条规则都是必须遵守的底线,而非可选建议——违反任何一条都会导致用例在实际执行中出现质量问题。
4
+
5
+ ## 目录
6
+
7
+ 1. [核心使命](#核心使命)
8
+ 2. [覆盖要求](#覆盖要求)
9
+ 3. [用例设计方法](#用例设计方法)
10
+ 4. [质量标准](#质量标准)
11
+ 5. [步骤精确度标准](#步骤精确度标准)
12
+ 6. [预期结果精确度标准](#预期结果精确度标准)
13
+ 7. [步骤与预期结果格式规范](#步骤与预期结果格式规范)
14
+ 8. [用例类型详细定义](#用例类型详细定义)
15
+ 9. [设计原则](#设计原则)
16
+ 10. [质量检查清单](#质量检查清单)
17
+
18
+ ---
19
+
20
+ ## 核心使命
21
+
22
+ 确保 100% 测试点覆盖率——为测试点列表中的每一个测试点生成至少一个对应的测试用例,不遗漏任何测试点。每个需求设计的用例数不少于 4 条,可根据覆盖范围和需求内容增加实际用例数量。
23
+
24
+ ## 覆盖要求
25
+
26
+ - **100% 测试点覆盖**:每个测试点至少对应一个用例
27
+ - **关键路径重点覆盖**:主要业务流程多场景测试
28
+ - **边界条件必须覆盖**:输入边界、状态边界等
29
+ - **三类场景全覆盖**:正向(正常流程)、负向(异常/非法输入)、边界值
30
+
31
+ ## 用例设计方法
32
+
33
+ 使用以下方法组合设计用例,确保系统性和完整性:
34
+
35
+ 1. **等价类划分法**:将输入域划分为有效等价类和无效等价类
36
+ 2. **边界值分析法**:针对边界条件设计用例(最大/最小/临界值)
37
+ 3. **判定表法**:处理多条件组合的场景
38
+ 4. **因果图法**:分析输入条件之间的逻辑关系
39
+ 5. **场景法**:基于业务流程设计端到端场景
40
+ 6. **错误推测法**:基于经验推测可能的错误
41
+ 7. **正交试验法**:多因素多水平时减少组合数量
42
+ 8. **状态迁移法**:测试状态转换的正确性
43
+
44
+ ## 质量标准
45
+
46
+ ### 1. 可执行性
47
+ - 操作步骤清晰具体,按序编号
48
+ - 步骤描述详细,测试人员可准确执行
49
+ - 无歧义的操作指令
50
+
51
+ ### 2. 可验证性
52
+ - 每个步骤都有明确的预期结果
53
+ - 预期结果具体、可衡量、可观察
54
+ - 判断标准清晰明确
55
+
56
+ ### 3. 独立性
57
+ - 每个用例聚焦验证对应测试点
58
+ - 用例间相互独立,不产生依赖
59
+ - 单个用例执行完整闭环
60
+
61
+ ### 4. 数据设计
62
+ - **测试数据具体化**:提供确切的输入值
63
+ - **场景数据多样化**:正常值、边界值、异常值
64
+ - **业务数据真实化**:符合实际业务场景
65
+
66
+ ## 步骤精确度标准
67
+
68
+ 每个测试步骤必须达到以下详细程度,确保任何测试人员都能准确执行:
69
+
70
+ ### 界面操作要求
71
+ - 明确指定页面/界面名称(如:登录页面、用户管理页面)
72
+ - 精确描述界面元素(如:用户名输入框、确认按钮、第2行编辑图标)
73
+ - 包含具体的操作动作(如:单击、双击、输入、选择、滚动)
74
+ - 标明元素位置信息(如:页面右上角、表格第一行、弹窗中央)
75
+
76
+ ### 数据输入要求
77
+ - 提供具体的测试数据值(敏感数据用 `***` 替代)
78
+ - 说明数据格式要求(如:11位手机号格式、6-20位密码)
79
+ - 包含特殊字符处理(如:包含空格、特殊符号、中文字符)
80
+ - 明确数据选择范围(如:从下拉菜单选择"北京市")
81
+
82
+ ### 系统交互要求
83
+ - 描述等待时间(如:等待3秒页面加载完成)
84
+ - 说明网络请求状态(如:等待API调用返回)
85
+ - 包含系统状态检查(如:确认数据已保存)
86
+ - 处理异步操作(如:等待弹窗出现)
87
+
88
+ ### 验证点要求
89
+ - 明确验证的具体内容(避免"操作成功"等模糊描述)
90
+ - 包含界面元素验证(如:按钮变为灰色、文字颜色变为红色)
91
+ - 数据验证(如:数据库新增1条记录、API返回状态码200)
92
+ - 用户体验验证(如:响应时间小于2秒、无404错误)
93
+
94
+ ## 预期结果精确度标准
95
+
96
+ 每个预期结果必须具备以下特征:
97
+
98
+ ### 可观察性
99
+ - 描述具体的视觉变化(如:按钮文字变为"提交中...")
100
+ - 包含具体的文字内容(如:页面顶部显示绿色"保存成功"提示)
101
+ - 说明数据显示格式(如:时间显示为"2024-01-15 14:30:25")
102
+ - 界面布局变化(如:表格新增一行、分页显示第2页)
103
+
104
+ ### 可测量性
105
+ - 提供具体的数值标准(如:页面加载不超过3秒)
106
+ - 包含数量验证(如:列表显示10条记录)
107
+ - 状态码验证(如:HTTP状态码201)
108
+ - 性能指标(如:内存使用率低于80%)
109
+
110
+ ### 完整性
111
+ - 覆盖主要功能验证
112
+ - 包含界面状态验证(如:必填字段标红显示)
113
+ - 数据一致性验证(如:前端数据与后端一致)
114
+ - 业务规则验证(如:库存正确扣减)
115
+
116
+ ## 步骤与预期结果格式规范
117
+
118
+ 操作步骤格式:
119
+ ```
120
+ 1. [操作动作] + [输入内容/参数] + [附加说明]
121
+ 2. [操作动作] + [输入内容/参数] + [附加说明]
122
+ 3. [操作动作] + [输入内容/参数] + [附加说明]
123
+ ```
124
+
125
+ 预期结果格式:
126
+ ```
127
+ 1. [数据状态] + [系统响应] + [验证标准] + [时间要求]
128
+ 2. [系统响应] + [验证标准] + [时间要求]
129
+ 3. [数据状态] + [系统响应] + [验证标准] + [时间要求]
130
+ ```
131
+
132
+ 要求每个操作步骤对应一条预期结果,逻辑清晰、可执行。
133
+
134
+ ## 用例类型详细定义
135
+
136
+ 7 种必选类型及其典型测试场景:
137
+
138
+ ### 功能测试
139
+ 验证业务功能正确性。包括:
140
+ - 正常业务流程(正向)
141
+ - 异常输入处理(负向)
142
+ - 边界条件验证
143
+ - 业务规则校验
144
+ - 数据流转正确性
145
+
146
+ ### 性能测试
147
+ 验证响应时间、并发、资源占用。包括:
148
+ - 页面加载时间
149
+ - 接口响应时间
150
+ - 并发用户数
151
+ - 大数据量处理
152
+ - 资源占用(CPU/内存)
153
+
154
+ ### 冒烟测试
155
+ L0/L1 级核心功能的快速验证。包括:
156
+ - 核心业务主流程
157
+ - 关键功能入口可达性
158
+ - 基础数据展示正确性
159
+
160
+ ### 兼容性测试
161
+ 多环境下的兼容性表现。包括:
162
+ - 多浏览器(Chrome/Firefox/Safari/Edge)
163
+ - 多操作系统(Windows/macOS/Linux)
164
+ - 不同分辨率与缩放
165
+ - 不同 API/数据格式版本
166
+ - 第三方组件/依赖版本兼容
167
+
168
+ ### 易用性测试
169
+ 界面与交互的易用性。包括:
170
+ - 操作步骤简洁可理解
171
+ - 提示与错误信息清晰
172
+ - 快捷键与焦点顺序
173
+ - 无障碍与可访问性
174
+ - 反馈与状态可见性
175
+
176
+ ### 可靠性测试
177
+ 长时间运行和异常恢复。包括:
178
+ - 断网恢复后数据一致性
179
+ - 服务重启后状态恢复
180
+ - 重复提交幂等性
181
+ - 超时与重试行为
182
+ - 长时间运行稳定性
183
+
184
+ ### 安全测试
185
+ 权限控制和数据保护。包括:
186
+ - 权限越权访问控制
187
+ - 输入注入防护(SQL/XSS)
188
+ - 敏感数据加密传输
189
+ - 会话管理与超时
190
+ - 日志审计完整性
191
+
192
+ ## 设计原则
193
+
194
+ 1. **完整性**:覆盖所有识别的功能点和测试场景
195
+ 2. **可执行性**:步骤清晰,易于执行
196
+ 3. **独立性**:用例之间相互独立
197
+ 4. **可重复性**:能够重复执行
198
+ 5. **易维护性**:便于后续维护和更新
199
+ 6. **数据脱敏**:敏感数据一律用 `***` 替代
200
+
201
+ ## 质量检查清单
202
+
203
+ 生成用例后,逐项确认:
204
+
205
+ - [ ] 每个测试点都有对应用例
206
+ - [ ] 用例编号唯一且符合 TC-XXX 命名规范
207
+ - [ ] 操作步骤格式严格遵循规范
208
+ - [ ] 每个步骤有对应预期结果
209
+ - [ ] 7 种用例类型均有覆盖
210
+ - [ ] 包含正向、负向、边界值场景
211
+ - [ ] 敏感数据已脱敏
212
+ - [ ] 前置条件独立成行,无合并
213
+ - [ ] 所有内容使用简体中文
214
+ - [ ] 无幻觉信息(无编造账号、URL、IP)
@@ -0,0 +1,60 @@
1
+ # 测试用例查询规则
2
+
3
+ 本文件定义了查询关联需求的已有测试用例的完整流程。
4
+
5
+ ## 重要约定:空间编码 vs 空间ID
6
+
7
+ 所有 MCP 接口中涉及研发空间参数(`workspaceId`、`X-Auth-ModuleId` 等)时,**统一传空间编码(字符串),非空间数据库数字ID**。`workspaceId` 虽然是 MCP 参数名,但值应为空间编码。
8
+
9
+ ## 流程入口
10
+
11
+ 当用户输入"查询用例"、"查看用例"、"关联XX需求的用例"、"获取用例"等指令时,进入查询流程。
12
+
13
+ ## 步骤
14
+
15
+ ### B1:解析需求编号
16
+
17
+ 从用户指令中提取需求编号:
18
+
19
+ | 用户说法 | 解析结果 |
20
+ |----------|----------|
21
+ | "查询关联 RR20260119400340 的测试用例" | 需求编号 = RR20260119400340 |
22
+ | "查看RR20260119400340和RR20260119400341的用例" | 需求编号 = RR20260119400340, RR20260119400341 |
23
+ | "获取登录需求的用例" | 需按标题模糊匹配需求编号 |
24
+
25
+ 若用户仅提供需求标题关键词,需先调用 `mcp__cmdevops_req__list_req_item` 按 `name` 模糊查询获取需求编号。
26
+
27
+ ### B2:查询用例库中的测试用例
28
+
29
+ 1. 先调用 `mcp__cmdevops_ct__list_query_library` 获取用例库信息(`libraryId`)
30
+ 2. 调用 `mcp__cmdevops_ct__page_query_case` 从用例库中分页查询用例
31
+
32
+ **page_query_case 调用参数(注意:`workspaceId` 传空间编码):**
33
+ - `queryParameters.workspaceId` = 空间编码
34
+ - `queryParameters.libraryId` = 用例库ID
35
+ - `queryParameters.page` = 1
36
+ - `queryParameters.limit` = 200
37
+
38
+ 3. 从返回结果中,按 `demandList` 字段过滤出关联了目标需求编号的用例(客户端过滤,`demandList` 包含需求编号即匹配)
39
+ 4. 若单页未查完,继续翻页查询直到获取全部用例
40
+
41
+ ### B3:展示查询结果
42
+
43
+ 将关联该需求的用例以列表形式展示:
44
+
45
+ ```
46
+ 📋 需求 RR20260119400340(查看项目列表)关联的测试用例
47
+
48
+ 1. TC-001: 查看项目列表-正常分页查询-功能测试-P0
49
+ 2. TC-002: 查看项目列表-搜索无结果-功能测试-P1
50
+ 3. TC-003: 查看项目列表-大数据量加载-性能测试-P2
51
+ ...
52
+
53
+ 共 3 条用例
54
+ ```
55
+
56
+ 若查询结果为空:
57
+
58
+ ```
59
+ 📋 需求 RR20260119400340 暂无关联的测试用例。可输入"为该需求生成手工用例"进行生成。
60
+ ```