3.7 KiB
3.7 KiB
小程序按钮与弹窗用例补全设计
日期:2026-07-18
状态:已确认(用户选组织方式 C + 源码静态盘点方案 1)
范围:miniprogramH5/小程序四模块 + 壳层
1. 背景与问题
现有 miniprogram-e2e/cases/00–04 用例偏重页面与字段,按钮与弹窗内按钮未做门禁式穷尽覆盖。
人类测试工程师要求:每个界面可点控件都有用例;点击后若出现弹窗 / ActionSheet / Sheet,则层内每个按钮也要有独立用例。
2. 目标
- 建立总清单门禁:
BUTTON-DIALOG-INVENTORY.md,无TODO才算「按钮用例写完整」。 - 详细步骤写在各模块用例文件(
00-shell…04-pl),总清单用用例 ID 回链。 - 仍遵守「一次只测一个界面」的执行节奏(第二步执行时)。
3. 非目标
- 本阶段不执行自动化点测、不改业务代码。
- 不覆盖灰卡背后的未实现业务页内部按钮(灰卡仅测 Toast「本期暂未开放」)。
4. 方法(方案 1)
- 静态扫描
pages/**/*.vue+components/mp-approver-picker。 - 识别:页头/底栏/卡片按钮、链接、
uni.showModal、uni.showActionSheet、自定义弹窗、Sheet。 - 写入总清单;弹层内每个按钮单独成行。
- 为每行分配/回填用例 ID;缺则
TODO。 - 按界面把
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 一致
- 不扩大到真机执行本阶段范围