88 lines
3.7 KiB
Markdown
88 lines
3.7 KiB
Markdown
# 小程序按钮与弹窗用例补全设计
|
||
|
||
> 日期:2026-07-18
|
||
> 状态:已确认(用户选组织方式 C + 源码静态盘点方案 1)
|
||
> 范围:`miniprogram` H5/小程序四模块 + 壳层
|
||
|
||
## 1. 背景与问题
|
||
|
||
现有 `miniprogram-e2e/cases/00–04` 用例偏重页面与字段,**按钮与弹窗内按钮未做门禁式穷尽覆盖**。
|
||
人类测试工程师要求:每个界面可点控件都有用例;点击后若出现弹窗 / ActionSheet / Sheet,则**层内每个按钮**也要有独立用例。
|
||
|
||
## 2. 目标
|
||
|
||
1. 建立总清单门禁:`BUTTON-DIALOG-INVENTORY.md`,无 `TODO` 才算「按钮用例写完整」。
|
||
2. 详细步骤写在各模块用例文件(`00-shell`…`04-pl`),总清单用用例 ID 回链。
|
||
3. 仍遵守「一次只测一个界面」的执行节奏(第二步执行时)。
|
||
|
||
## 3. 非目标
|
||
|
||
- 本阶段不执行自动化点测、不改业务代码。
|
||
- 不覆盖灰卡背后的未实现业务页内部按钮(灰卡仅测 Toast「本期暂未开放」)。
|
||
|
||
## 4. 方法(方案 1)
|
||
|
||
1. 静态扫描 `pages/**/*.vue` + `components/mp-approver-picker`。
|
||
2. 识别:页头/底栏/卡片按钮、链接、`uni.showModal`、`uni.showActionSheet`、自定义弹窗、Sheet。
|
||
3. 写入总清单;弹层内每个按钮单独成行。
|
||
4. 为每行分配/回填用例 ID;缺则 `TODO`。
|
||
5. 按界面把 `TODO` 补进模块用例文件后,更新清单状态。
|
||
|
||
## 5. 总清单字段
|
||
|
||
| 字段 | 说明 |
|
||
|------|------|
|
||
| INV-ID | 清单行号,如 `INV-LGN-01` |
|
||
| 模块 / 界面 / 路径 | 定位 |
|
||
| 触发控件 | 准确文案 |
|
||
| 控件类型 | 页头/底栏/卡片/导航/勾选/快捷卡/上传… |
|
||
| 弹出层类型 | 无 / showModal / ActionSheet / 自定义弹窗 / Sheet |
|
||
| 弹层标题 | 原文 |
|
||
| 层内按钮 | 本行关注的那一个按钮文案 |
|
||
| 显示条件 | 状态/Tab 等 |
|
||
| 用例 ID | 已写则填;否则 `TODO` |
|
||
| 最小集 | 见 §6 |
|
||
|
||
## 6. 有弹层时的最小用例集(门禁)
|
||
|
||
对每个「触发控件 → 弹层」组合,至少包含:
|
||
|
||
| # | 用例意图 |
|
||
|---|----------|
|
||
| 1 | 点击触发 → 弹层出现(标题/关键文案正确) |
|
||
| 2 | 点取消/否 → 关闭且业务不变 |
|
||
| 3 | 点确认/是/通过等 → 成功路径(或校验失败提示) |
|
||
| 4 | 若遮罩可关 → 点遮罩等同取消(一条) |
|
||
| 5 | ActionSheet → **每个 item** 至少一条 |
|
||
| 6 | Sheet → 取消、确定、未选确定校验 各至少一条 |
|
||
|
||
无弹层的按钮:至少「点击 → 预期导航/提交/Toast」一条;写操作另补失败/连点等按模块文件既有标准。
|
||
|
||
## 7. 交付物
|
||
|
||
| 路径 | 说明 |
|
||
|------|------|
|
||
| `docs/superpowers/specs/2026-07-18-mp-button-dialog-cases-design.md` | 本文 |
|
||
| `miniprogram-e2e/cases/BUTTON-DIALOG-INVENTORY.md` | 总清单门禁 |
|
||
| `miniprogram-e2e/cases/00–04*.md` | 补齐详细用例(清单驱动,分批) |
|
||
| `miniprogram-e2e/cases/README.md` / `PROGRESS.md` | 索引更新 |
|
||
|
||
## 8. 完成定义(DoD)
|
||
|
||
- [ ] 总清单覆盖启用业务页 + 壳层全部可点主操作与全部弹层按钮行
|
||
- [ ] 清单中无 `TODO`(均已回链用例 ID)
|
||
- [ ] 模块文件中存在对应该 ID 的可执行步骤(预置/步骤/预期)
|
||
- [ ] 评审确认后,才进入第二步「按界面执行」
|
||
|
||
## 9. 风险
|
||
|
||
- 条件按钮(如仅 draft 显示)需造数才能执行,用例仍须先写全。
|
||
- `showModal` 确认键系统默认为「确定」,用例文案以真机/H5 实际为准。
|
||
- 费用项目 ActionSheet 的 item 动态来自接口,清单记「动态 item」,用例要求「至少选一项 + 无数据 Toast」。
|
||
|
||
## 10. 自检
|
||
|
||
- 无 TBD/占位未解释
|
||
- 与用户已选 C + 方案 1 一致
|
||
- 不扩大到真机执行本阶段范围
|