学习目标
一张状态表,以及可以逐项点击验证的保存流程。
适用场景
虚构资料夹支持保存链接。正常网络下按钮看起来没问题,但断网时显示“已保存”,重复点击又生成两条记录。本篇讨论状态契约,不规定某个框架或数据库。
准备条件
- 选定一个有状态变化的真实操作,例如保存、上传或提交。
- 能在测试环境模拟失败,不在生产数据上做故障练习。
操作步骤
先明确成功究竟意味着什么
区分浏览器收到点击、本地暂存、服务端确认持久化。三者的文案不能混用;如果产品刻意支持离线草稿,就显示“待同步”而不是“已保存”。把不确定的业务语义先写成待决定,别交给前端猜。
逐格补齐状态与下一步
六种状态是练习清单,不是必须套用的框架枚举。对不适用的一项说明原因。重点是每种状态用户看见什么、可以做什么、数据是否已变化。
保存操作状态表初始:显示“保存”,数据未写入。 加载:显示“保存中”,防止重复提交,保留必要的取消/返回。 成功:服务端确认后显示“已保存”,刷新后仍存在。 空数据:说明如何添加第一条;不展示失效的分页按钮。 失败:说明未保存,保留输入,提供可安全重复的重试。 无权限:解释需要登录或申请权限;后端同时拒绝请求。 超时但结果未知:先查询结果再决定重试,避免直接重复写入。用不依赖颜色的反馈实现交互
错误要有文字且与相关输入关联。加载状态应向辅助技术暴露,键盘仍能到达必要操作;成功提示也不能只闪一下绿色。服务器错误内容要转换成面向用户的描述,不直接展示内部堆栈或密钥。
按故障路径实际点击一次
在测试环境延迟响应、返回失败、切换测试身份,并检查刷新后的数据。并发或超时重试是否生成重复记录属于后端契约,要一起验证。记录预期、实际和证据;不会模拟的路径写未验证。
可重复的验收步骤1. 输入一条测试链接,模拟请求失败后点击保存。 2. 预期:没有“已保存”,输入保留,可重试。 3. 恢复响应重试;预期:最终只有一条记录。 4. 刷新;预期:状态与服务端实际数据一致。 5. 换无权限测试身份直接请求接口;预期:被拒绝且无写入。 实际:未运行,填写版本、环境与结果。
常见误区
- 只把按钮置灰,当作防重复的完整方案。
- 按钮状态只是体验;并发、超时和直接接口请求还需要服务端契约。
- 所有错误统一显示“出错了”。
- 至少说明影响、已保留的输入与下一步,同时避免暴露敏感内部信息。
验收清单
- 成功文案与数据持久化语义一致。
- 失败输入没有丢失,重试不会盲目重复写入。
- 键盘与读屏能识别状态变化。
- 六类状态按适用性检查,不适用项有说明。
资料与版本
本文为原创方法整理,示例与提示词需按项目调整;不代表真实用户研究或账号执行结果。