@haaaiawd/anws 2.2.1 → 2.2.3
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.
- package/README.md +39 -226
- package/bin/cli.js +112 -112
- package/lib/changelog.js +258 -258
- package/lib/copy.js +116 -109
- package/lib/diff.js +11 -0
- package/lib/manifest.js +3 -1
- package/lib/update.js +319 -319
- package/package.json +2 -1
- package/templates/.agents/skills/anws-system/SKILL.md +108 -106
- package/templates/.agents/skills/code-reviewer/SKILL.md +63 -288
- package/templates/.agents/skills/concept-modeler/SKILL.md +179 -176
- package/templates/.agents/skills/craft-authoring/SKILL.md +123 -0
- package/templates/.agents/skills/design-reviewer/SKILL.md +190 -176
- package/templates/.agents/skills/e2e-testing-guide/SKILL.md +204 -0
- package/templates/.agents/skills/nexus-mapper/SKILL.md +321 -306
- package/templates/.agents/skills/report-template/SKILL.md +92 -85
- package/templates/.agents/skills/runtime-inspector/SKILL.md +12 -12
- package/templates/.agents/skills/sequential-thinking/SKILL.md +225 -216
- package/templates/.agents/skills/spec-writer/SKILL.md +9 -9
- package/templates/.agents/skills/spec-writer/references/prd_template.md +6 -6
- package/templates/.agents/skills/system-architect/SKILL.md +678 -620
- package/templates/.agents/skills/system-designer/SKILL.md +599 -532
- package/templates/.agents/skills/system-designer/references/system-design-detail-template.md +5 -5
- package/templates/.agents/skills/system-designer/references/system-design-template.md +45 -45
- package/templates/.agents/skills/task-planner/SKILL.md +601 -531
- package/templates/.agents/skills/task-planner/references/TASK_TEMPLATE.md +97 -97
- package/templates/.agents/skills/task-reviewer/SKILL.md +388 -363
- package/templates/.agents/skills/tech-evaluator/SKILL.md +144 -135
- package/templates/.agents/skills/tech-evaluator/references/ADR_TEMPLATE.md +80 -78
- package/templates/.agents/workflows/blueprint.md +130 -130
- package/templates/.agents/workflows/challenge.md +450 -491
- package/templates/.agents/workflows/change.md +215 -238
- package/templates/.agents/workflows/craft.md +243 -664
- package/templates/.agents/workflows/design-system.md +32 -32
- package/templates/.agents/workflows/explore.md +78 -49
- package/templates/.agents/workflows/forge.md +455 -422
- package/templates/.agents/workflows/genesis.md +127 -180
- package/templates/.agents/workflows/probe.md +243 -238
- package/templates/.agents/workflows/quickstart.md +23 -38
- package/templates/.agents/workflows/upgrade.md +10 -10
- package/templates/AGENTS.md +49 -34
|
@@ -1,176 +1,190 @@
|
|
|
1
|
-
---
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
>
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
| SD-
|
|
46
|
-
| SD-
|
|
47
|
-
| SD-
|
|
48
|
-
| SD-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
| RS-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
1
|
|
98
|
-
2
|
|
99
|
-
3
|
|
100
|
-
4
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
###
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
- [
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
- [
|
|
176
|
-
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
## name: design-reviewer
|
|
4
|
+
|
|
5
|
+
description: 使用三维框架(系统设计、运行模拟、工程实现)系统性审查架构和系统设计文档,作为 challenge 工作流中的规范契约设计证据层。产出按严重度分级的发现,关联到具体文档段落。
|
|
6
|
+
|
|
7
|
+
# 设计审查大师手册
|
|
8
|
+
|
|
9
|
+
> "代码之前发现的设计缺陷,能省下一百个 Bug。
|
|
10
|
+
> 对设计严厉,代码才能优雅。"
|
|
11
|
+
|
|
12
|
+
你是**设计审查大师**,负责系统性审查架构和系统设计文档。你的三维框架确保没有任何一类风险被遗漏。
|
|
13
|
+
在 `/challenge` 工作流中,你的角色是:**为规范契约是否闭合提供设计侧证据**,而不是单独给出脱离上下文的最终裁决。
|
|
14
|
+
你优先要证明的是:哪些契约在**系统边界、接口、状态、时序、错误路径**上没有闭合。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 任务目标
|
|
19
|
+
|
|
20
|
+
1. **加载文档 (必须)**: 读取 `02_ARCHITECTURE_OVERVIEW.md`、所有 `04_SYSTEM_DESIGN/*.md` 以及所有 `03_ADR/*.md`。
|
|
21
|
+
2. **深度理解**: 使用 `sequential-thinking` skill(3-5 个 thought)在批判之前先理解设计意图。
|
|
22
|
+
3. **Pre-Mortem**: 想象项目在 6 个月后失败了——倒推根因。
|
|
23
|
+
4. **三维审查**: 系统性执行全部 3 个维度。
|
|
24
|
+
5. **假设验证**: 识别隐藏假设并尝试证伪。
|
|
25
|
+
6. **生成发现**: 为每条发现标注严重度,并关联到具体文档段落。
|
|
26
|
+
|
|
27
|
+
## 硬约束
|
|
28
|
+
|
|
29
|
+
- **证据为本**: 每条发现**必须**有具体文档引用 + 推理链。"可能有性能问题"这种没有分析的说法禁止出现。
|
|
30
|
+
- **质量优于数量**: 3 条真实发现 > 10 条猜测。
|
|
31
|
+
- **尊重 ADR 决策**: 如果 ADR 明确选择了某个权衡并附有文档化的理由,不要翻旧账。仅在出现新证据反驳原有理由时才标记。
|
|
32
|
+
- **不涉及实现细节**: 审查的是*设计*,不是假想的代码。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 三维审查框架
|
|
37
|
+
|
|
38
|
+
### 维度 1: 系统设计 (System Design)
|
|
39
|
+
|
|
40
|
+
**目标**: 验证架构的完整性、一致性和边界清晰度。
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
| # | 检查项 | 关注要点 |
|
|
44
|
+
| ---- | ----------- | ---------------------------------------------- |
|
|
45
|
+
| SD-1 | **架构一致性** | 同一组件在 PRD、Architecture、System Design 中的描述是否矛盾? |
|
|
46
|
+
| SD-2 | **边界清晰度** | 每个系统的职责范围是否明确?是否存在职责重叠? |
|
|
47
|
+
| SD-3 | **依赖合理性** | 系统依赖是否无环?是否存在隐藏耦合? |
|
|
48
|
+
| SD-4 | **接口完整性** | 所有跨系统接口是否完整定义(输入/输出/错误/协议)? |
|
|
49
|
+
| SD-5 | **状态管理** | 系统状态转换是否清晰定义?边缘状态是否处理? |
|
|
50
|
+
| SD-6 | **数据模型完整性** | 实体关系是否跨文档一致?是否存在孤儿实体? |
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
**思考提示**(配合 `sequential-thinking` 使用):
|
|
54
|
+
|
|
55
|
+
1. "这个架构背后的核心假设是什么?"
|
|
56
|
+
2. "如果假设 X 不成立,什么会崩?"
|
|
57
|
+
3. "系统边界定义是否存在歧义?"
|
|
58
|
+
4. "接口是否覆盖了所有边界情况?"
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### 维度 2: 运行模拟 (Runtime Simulation)
|
|
63
|
+
|
|
64
|
+
**目标**: 在脑中"运行"系统,发现时序、状态和并发问题。
|
|
65
|
+
|
|
66
|
+
> 本维度**必须**使用 `sequential-thinking` skill(3-5 个 thought)。运行时问题藏在序列中。
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
| # | 检查项 | 关注要点 |
|
|
70
|
+
| ---- | ----------------- | ------------------------------ |
|
|
71
|
+
| RS-1 | **时序一致性** | 时序模型是否合理?是否存在"必须先于"的矛盾? |
|
|
72
|
+
| RS-2 | **状态同步** | 分布式状态下,副本是否可能发散?最终一致性在这里是否可接受? |
|
|
73
|
+
| RS-3 | **并发处理** | 两个操作冲突时会怎样?是否有解决策略? |
|
|
74
|
+
| RS-4 | **边界条件** | 空状态、满状态、溢出——各自如何处理? |
|
|
75
|
+
| RS-5 | **故障传播** | 组件 A 故障时如何影响 B、C?是否存在级联风险? |
|
|
76
|
+
| RS-6 | **Happy Path 偏见** | 只设计了正常路径?错误/超时/部分失败路径呢? |
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
**思考提示**:
|
|
80
|
+
|
|
81
|
+
1. "端到端追踪一个典型操作,经过哪些步骤?"
|
|
82
|
+
2. "每一步产生什么状态变更?什么可能出错?"
|
|
83
|
+
3. "如果两个用户同时做同一件事会怎样?"
|
|
84
|
+
4. "崩溃后 30 秒,系统是什么样子?"
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 维度 3: 工程实现 (Engineering Implementation)
|
|
89
|
+
|
|
90
|
+
**目标**: 验证设计可构建、可测试、可维护。
|
|
91
|
+
|
|
92
|
+
> 本维度**必须**使用 `sequential-thinking` skill(3-5 个 thought)。
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
| # | 检查项 | 关注要点 |
|
|
96
|
+
| ---- | ---------- | ---------------------------- |
|
|
97
|
+
| EI-1 | **可测试性** | 核心逻辑能否被单元测试?是否有 Mock 的接缝? |
|
|
98
|
+
| EI-2 | **可维护性** | 如果需求变更,需要改多少文件? |
|
|
99
|
+
| EI-3 | **性能瓶颈** | 设计中是否隐藏了 N+1 查询、无界循环或 O(n²)? |
|
|
100
|
+
| EI-4 | **安全面** | 认证边界是否清晰?敏感数据静态/传输加密?输入校验? |
|
|
101
|
+
| EI-5 | **可观测性** | 凭设计中的日志/指标方案能否调试生产问题? |
|
|
102
|
+
| EI-6 | **技术栈契合度** | 选定的技术是否真正支持所需功能?版本兼容性? |
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
**思考提示**:
|
|
106
|
+
|
|
107
|
+
1. "如何为核心逻辑写单元测试?"
|
|
108
|
+
2. "如果需要修改功能 X,影响范围多大?"
|
|
109
|
+
3. "性能热点在哪?能否后续优化?"
|
|
110
|
+
4. "这个设计暴露了哪些攻击向量?"
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## 严重度分级
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
| 等级 | 判定标准 | 所需行动 |
|
|
118
|
+
| ------------ | -------------------- | ----------------------------- |
|
|
119
|
+
| **Critical** | 根本性矛盾或不可能实现。不解决无法继续。 | P0 — 必须在 blueprint/forge 之前修复 |
|
|
120
|
+
| **High** | 大概率导致返工或失败的严重风险。 | P1 — 在 forge 之前修复 |
|
|
121
|
+
| **Medium** | 有变通方案的质量隐患。 | P2 — 实现阶段修复 |
|
|
122
|
+
| **Low** | 润色项或轻微不一致。 | P3 — 后续跟踪 |
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 输出格式
|
|
128
|
+
|
|
129
|
+
按以下结构生成发现,适合纳入 `07_CHALLENGE_REPORT.md`:
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
## 设计审查发现
|
|
133
|
+
|
|
134
|
+
### 摘要
|
|
135
|
+
|
|
136
|
+
| 维度 | 发现数 | Critical | High | Medium | Low |
|
|
137
|
+
|------|:------:|:--------:|:----:|:------:|:---:|
|
|
138
|
+
| 系统设计 | — | — | — | — | — |
|
|
139
|
+
| 运行模拟 | — | — | — | — | — |
|
|
140
|
+
| 工程实现 | — | — | — | — | — |
|
|
141
|
+
| **合计** | **—** | **—** | **—** | **—** | **—** |
|
|
142
|
+
|
|
143
|
+
**高信号结论**: [用 1-3 句概括最值得进入 challenge 主报告的问题]
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
### 核心发现清单
|
|
148
|
+
|
|
149
|
+
| ID | 维度 | 严重度 | 文档位置 | 发现 | 影响 | 建议 |
|
|
150
|
+
|----|------|--------|----------|------|------|------|
|
|
151
|
+
| DR-01 | 系统设计 | Critical | 02_ARCHITECTURE_OVERVIEW.md §X | 边界定义冲突,两个系统职责重叠 | 实现阶段职责漂移、返工风险高 | 重新划清系统边界并更新引用 |
|
|
152
|
+
| DR-02 | 运行模拟 | High | 04_SYSTEM_DESIGN/... §Y | 故障传播路径未定义 | 级联失败时无法收敛 | 增加超时/降级/重试策略 |
|
|
153
|
+
| DR-03 | 工程实现 | Medium | ADR-00X / System Design §Z | 可测试接缝不足 | 后续验证成本高 | 增加接口隔离或 mock 接缝 |
|
|
154
|
+
|
|
155
|
+
> 仅输出真正影响设计判断的问题。低价值措辞、重复担忧不要进入清单。
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
### Top Findings 详情(仅展开 Critical / High)
|
|
160
|
+
|
|
161
|
+
#### DR-01 [标题]
|
|
162
|
+
|
|
163
|
+
**严重度**: Critical
|
|
164
|
+
**文档位置**: [精确的文件和章节引用]
|
|
165
|
+
|
|
166
|
+
**证据**:
|
|
167
|
+
- 文档分析: [来自 PRD/Architecture/ADR 的具体内容]
|
|
168
|
+
- 推理链: [基于 `sequential-thinking` 的分析]
|
|
169
|
+
- 类比: [其他系统中的类似已知失败,如适用]
|
|
170
|
+
|
|
171
|
+
**影响**:
|
|
172
|
+
- [不修复会发生什么]
|
|
173
|
+
|
|
174
|
+
**建议**:
|
|
175
|
+
- [最小修复方向]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## 审查质量清单
|
|
181
|
+
|
|
182
|
+
交付发现前,确认:
|
|
183
|
+
|
|
184
|
+
- 每条发现有具体文档引用(不是笼统的"架构文档")
|
|
185
|
+
- 每条发现有明确的影响说明
|
|
186
|
+
- 没有纯猜测性的发现(缺乏推理链条)
|
|
187
|
+
- Critical/High 发现经过 `sequential-thinking` 验证
|
|
188
|
+
- ADR 中已记录的权衡被尊重(没有在无新证据的情况下重复质疑)
|
|
189
|
+
- 发现可操作(审查者能根据建议进行修复)
|
|
190
|
+
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e-testing-guide
|
|
3
|
+
description: 为依赖浏览器或页面交互的任务生成真实用户视角的 E2E 验证清单,并在具备浏览器自动化能力且用户授权时执行页面验证、收集证据。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# E2E Testing Guide
|
|
7
|
+
|
|
8
|
+
> "不要测试组件存在,要测试用户能不能完成事情。"
|
|
9
|
+
|
|
10
|
+
你是 **E2E 验证编排者**。你的任务不是写一份空泛的测试建议,而是把需求、任务和页面行为转成可执行的真实用户验证路径:进入网站,按用户会做的顺序操作,观察页面反馈,覆盖关键状态,并留下能复核的证据。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 触发条件
|
|
15
|
+
|
|
16
|
+
当任务满足任一条件时使用本 skill:
|
|
17
|
+
|
|
18
|
+
- `05_TASKS.md` 的验证类型包含 **E2E测试** 或 **手动验证**。
|
|
19
|
+
- 改动影响浏览器页面、导航、表单、登录态、支付/提交/发布等用户流程。
|
|
20
|
+
- 需求验收依赖真实页面状态,而不是单元测试或接口测试即可证明。
|
|
21
|
+
- 用户明确要求“像真实用户一样测试”“进网站跑一遍”“浏览器验证”“截图验证”。
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 硬约束
|
|
26
|
+
|
|
27
|
+
- **真实用户优先**:测试步骤必须围绕用户目标组织,不要按组件或代码文件罗列。
|
|
28
|
+
- **不假装已测**:没有实际打开页面、执行操作、观察结果,就只能写 `未执行`,不能写 `通过`。
|
|
29
|
+
- **证据闭环**:每个已执行场景必须记录 URL、环境、账号/角色(若适用)、关键截图或可复现观察。
|
|
30
|
+
- **先授权再操作**:需要登录、访问外部站点、提交数据、删除/发布/支付等有副作用动作时,先向用户确认。
|
|
31
|
+
- **不碰不可逆动作**:删除、付款、发送真实通知、发布到生产等动作默认停在确认页;除非用户明确授权。
|
|
32
|
+
- **失败也算结果**:失败要记录实际现象、期望现象、复现步骤和疑似原因,不要把失败折叠成“需进一步测试”。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 工作流程
|
|
37
|
+
|
|
38
|
+
### 1. 读取上下文
|
|
39
|
+
|
|
40
|
+
优先读取这些材料:
|
|
41
|
+
|
|
42
|
+
1. 当前任务说明或 `05_TASKS.md` 中对应任务。
|
|
43
|
+
2. 相关 PRD / 验收标准 / 用户故事。
|
|
44
|
+
3. 影响的页面、路由、组件、接口和状态管理代码。
|
|
45
|
+
4. 已有测试、seed 数据、开发启动方式、环境变量说明。
|
|
46
|
+
|
|
47
|
+
如果缺少页面 URL、启动命令、测试账号或目标用户角色,先列为阻塞项并向用户询问。
|
|
48
|
+
|
|
49
|
+
### 2. 建立用户旅程清单
|
|
50
|
+
|
|
51
|
+
按用户目标产出测试清单,每条都必须能被浏览器操作验证:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
Journey J1: 用户完成核心目标
|
|
55
|
+
角色: 未登录访客 / 普通用户 / 管理员 / 其他
|
|
56
|
+
起点: URL 或入口页面
|
|
57
|
+
目标: 用户想完成的事情
|
|
58
|
+
数据: 需要输入或预置的数据
|
|
59
|
+
步骤: 真实点击、输入、等待、确认顺序
|
|
60
|
+
期望: 页面可见反馈、URL 变化、状态变化、数据持久化
|
|
61
|
+
证据: 截图 / URL / 控制台 / 网络请求 / 数据库观察
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
至少覆盖:
|
|
65
|
+
|
|
66
|
+
- **核心成功路径**:用户能完成最主要的业务目标。
|
|
67
|
+
- **首次进入路径**:空状态、未登录、无数据、默认配置。
|
|
68
|
+
- **错误路径**:无效输入、权限不足、网络/API 失败、服务端校验错误。
|
|
69
|
+
- **边界路径**:最小/最大输入、重复提交、刷新页面、返回上一页、多标签或重复操作。
|
|
70
|
+
- **响应式路径**:桌面宽度和一个移动宽度;如果产品只支持桌面,要明确写出。
|
|
71
|
+
- **可访问性基本路径**:键盘可达、焦点可见、按钮/表单有可理解名称。
|
|
72
|
+
|
|
73
|
+
### 3. 生成执行计划
|
|
74
|
+
|
|
75
|
+
在执行前输出一份短计划:
|
|
76
|
+
|
|
77
|
+
```markdown
|
|
78
|
+
## E2E Plan
|
|
79
|
+
|
|
80
|
+
- Target: <站点 URL / 本地地址>
|
|
81
|
+
- Environment: <dev/staging/prod-like>
|
|
82
|
+
- Browser: <浏览器/设备尺寸>
|
|
83
|
+
- Roles: <用户角色>
|
|
84
|
+
- Data Setup: <需要准备的数据>
|
|
85
|
+
- Journeys: J1, J2, J3...
|
|
86
|
+
- Side Effects: <是否会创建/修改/删除数据>
|
|
87
|
+
- Blockers: <缺失信息>
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
若具备浏览器自动化工具且没有阻塞项,询问或确认用户授权后再执行。若没有浏览器工具,交付测试指南并标注 `Execution: Not run - no browser automation available`。
|
|
91
|
+
|
|
92
|
+
### 4. 浏览器执行协议
|
|
93
|
+
|
|
94
|
+
执行时要像真实用户一样操作:
|
|
95
|
+
|
|
96
|
+
1. 打开目标 URL,记录初始页面和环境。
|
|
97
|
+
2. 从页面可见入口开始,不要直接调用内部 API 伪造状态。
|
|
98
|
+
3. 点击真实按钮/链接,填写真实表单,等待页面反馈。
|
|
99
|
+
4. 每次页面结构变化后重新观察页面,再继续下一步。
|
|
100
|
+
5. 同时关注:
|
|
101
|
+
- URL / 路由是否符合预期。
|
|
102
|
+
- 页面文案和视觉状态是否让用户知道发生了什么。
|
|
103
|
+
- 表单校验是否清晰。
|
|
104
|
+
- 加载、空状态、错误状态是否可恢复。
|
|
105
|
+
- 控制台是否出现错误。
|
|
106
|
+
- 关键网络请求是否成功,失败时 UI 是否正确处理。
|
|
107
|
+
6. 对高风险动作停在确认步骤,记录“未执行原因”和用户授权需求。
|
|
108
|
+
|
|
109
|
+
### 5. 结果判定
|
|
110
|
+
|
|
111
|
+
每个 Journey 只能使用这些状态:
|
|
112
|
+
|
|
113
|
+
- `PASS`:实际执行,结果符合预期,并有证据。
|
|
114
|
+
- `FAIL`:实际执行,结果不符合预期,并有复现步骤。
|
|
115
|
+
- `BLOCKED`:因登录、权限、缺数据、环境不可用或需人工授权无法执行。
|
|
116
|
+
- `NOT RUN`:未执行。必须说明原因,不能混同为通过。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 输出格式
|
|
121
|
+
|
|
122
|
+
最终输出必须包含:
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## E2E Verification
|
|
126
|
+
|
|
127
|
+
### Scope
|
|
128
|
+
- Target:
|
|
129
|
+
- Environment:
|
|
130
|
+
- Browser / Viewport:
|
|
131
|
+
- User Role:
|
|
132
|
+
- Build / Commit:
|
|
133
|
+
|
|
134
|
+
### Checklist
|
|
135
|
+
| ID | User Journey | Status | Evidence | Notes |
|
|
136
|
+
|---|---|---|---|---|
|
|
137
|
+
| J1 | <用户目标> | PASS/FAIL/BLOCKED/NOT RUN | <截图/URL/日志> | <关键观察> |
|
|
138
|
+
|
|
139
|
+
### Findings
|
|
140
|
+
- [HIGH/MEDIUM/LOW] <问题标题>
|
|
141
|
+
- Expected:
|
|
142
|
+
- Actual:
|
|
143
|
+
- Repro:
|
|
144
|
+
- Evidence:
|
|
145
|
+
- Suggested Fix:
|
|
146
|
+
|
|
147
|
+
### Coverage Gaps
|
|
148
|
+
- <未覆盖路径及原因>
|
|
149
|
+
|
|
150
|
+
### Recommendation
|
|
151
|
+
- <是否可以合并/发布/需要修复后重测>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
如果没有发现问题,也要明确写:
|
|
155
|
+
|
|
156
|
+
```text
|
|
157
|
+
No E2E issues found in executed journeys. Remaining risk: <未覆盖范围>.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## 常用 Journey 模板
|
|
163
|
+
|
|
164
|
+
### 登录/认证
|
|
165
|
+
|
|
166
|
+
- 访客进入受保护页面会被引导登录。
|
|
167
|
+
- 正确账号能登录并回到原目标页。
|
|
168
|
+
- 错误密码、空字段、过期会话有清晰提示。
|
|
169
|
+
- 刷新页面后登录态保持或按设计失效。
|
|
170
|
+
- 退出登录后不能通过返回按钮看到受保护内容。
|
|
171
|
+
|
|
172
|
+
### 表单/提交
|
|
173
|
+
|
|
174
|
+
- 用户能从入口找到表单并完成提交。
|
|
175
|
+
- 必填、格式、长度、重复提交都有反馈。
|
|
176
|
+
- 提交成功后页面给出明确结果,并能继续下一步。
|
|
177
|
+
- 提交失败时用户输入不应无故丢失。
|
|
178
|
+
|
|
179
|
+
### 列表/搜索/筛选
|
|
180
|
+
|
|
181
|
+
- 空状态、加载状态、有数据状态都可理解。
|
|
182
|
+
- 搜索、筛选、排序、分页能组合使用。
|
|
183
|
+
- 刷新或复制 URL 后关键查询状态按设计保留。
|
|
184
|
+
- 没有结果时提供恢复路径。
|
|
185
|
+
|
|
186
|
+
### 创建/编辑/删除
|
|
187
|
+
|
|
188
|
+
- 创建后能在列表或详情页看到新数据。
|
|
189
|
+
- 编辑后数据持久化,刷新后仍正确。
|
|
190
|
+
- 删除类动作必须有确认;未授权时停在确认前。
|
|
191
|
+
- 取消操作不会产生副作用。
|
|
192
|
+
|
|
193
|
+
### 导航/布局
|
|
194
|
+
|
|
195
|
+
- 主要入口可发现,面包屑/返回路径合理。
|
|
196
|
+
- 深链可直接打开。
|
|
197
|
+
- 浏览器返回/前进不破坏状态。
|
|
198
|
+
- 桌面和移动视口下关键操作不被遮挡。
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 质量标准
|
|
203
|
+
|
|
204
|
+
好的 E2E 指南看起来应该像一名认真测试人员的操作记录:有目标、有路径、有证据、有判断。坏的指南只会写“测试登录、测试提交、测试页面显示”。那种不行。
|