这一层是四类判断里「人看」的那一类:最贵,也是唯一能发现渲染层问题的。接口测试绿了而这一层红,说明问题出在把数据渲染成页面的那一步。
用另一个范围的账号打开同一条地址,页面上有没有出现不属于他的标题?
出现即失败,不用再看后面的项。这一条在合并前做一次,并把「谁在什么时候做」写进合并请求,不留给下一个接手的人。
前置条件:服务按说明启动起来,两个范围各有账号、各有一条标题不同的记录,无依据的那句原句已经写在验收文档里。下面六条是最小集合,每条记下页面实际出现的原句——原句可变,判据不变。
| 路径 | 期望 | 失败的样子 |
|---|---|---|
| 未登录打开列表地址 | 到登录页,或出现「请先登录」 | 直接看到数据 |
| 本范围的列表 | 只有本范围的标题 | 出现另一个范围的标题 |
| 改地址去访问别人的那一条 | 出现与「记录不存在」相同的一句,不出现对方的标题 | 出现对方标题,或出现「无权访问」这种能区分存在与否的句子 |
| 检索一个材料里没有的问题 | 出现验收文档里那句无依据的原句,不出现材料外的讲解 | 说完无依据之后仍继续生成一段讲解 |
| 必填项留空直接提交 | 按钮旁出现字段级的提示,页面不整页刷新报错 | 整页 500,或只有控制台报错、页面毫无提示 |
| 提交一条后刷新 | 新记录仍在列表里 | 刷新后消失(只存在于前端状态) |
第 3 条与接口测试里的越权用例是同一件事的两个入口:接口那一层证明服务端返回了两段相同的正文,这一条证明页面没有把它渲染成两句不同的话。两者不能互相代替。
一条走查记录是「账号 + 操作 + 页面原句」三样。原句可变,判据不变;只有截图证明不了会话范围。
账号 B(他范围) → 打开 /items/1001(属于账号 A) 页面原句:「记录不存在」 期望原句:「记录不存在」 → 通过
要认的是这个形状:证据是页面出现的原句,不是人的印象。写「看了一眼没问题」或只贴一张截图,都不构成证据。
账号 B(他范围) → 打开 /items/1001(属于账号 A) 页面原句:「无权访问此记录」 与「不存在」那句不同 记录里写:符合预期 ✓ 写的是印象,不是原句
认它的办法:记录里必须抄页面原句。写「符合预期」或只贴一张截图,下一个人无法判断越权那句与不存在那句是不是同一句——而这两句不同,正是服务端那条逐字节相同的断言没被执行到的证据。
场景:助手改的是列表页的渲染,服务端没动。接口测试全绿,看起来不需要人再看一遍。
判据落在证据上。「截图对比过了」不算证据,它证明不了会话范围。
| 项 | 证据 | 不通过的样子 |
|---|---|---|
| 关键路径 6 条 | 每条一行记录:账号 + 操作 + 页面原句 | 只有截图,没有原句 |
| 三个宽度 | 三份记录,文件名含宽度与路径 | 只看了桌面宽度 |
| 可访问性几项 | 查询的返回值,或逐项勾选记录 | 写「看了一眼没问题」 |
| 越权 | 用另一个账号打开对方地址后的页面原句 | 只登录了自己的账号 |
| 记录 | 写进验收文档,署名与时间在文末 | 合并请求里写「已测」三个字 |
没做的项写「未查」。本次没改文案,就写「页面:未查(本次没有改文案)」——这句比一个假的「已通过」有用得多,它告诉下一个人该补什么。原句与页面不一致时,先改文档或改页面让两者相同,再标通过。
三个宽度(375 / 768 / 1280)各看一次,文件名带宽度与路径;截图只用来证明布局,不用来证明会话范围——后者只能靠账号与原句。可访问性只看几条能一行查出来的下限:输入框有标签、图标按钮有名字、图片有替代文本、键盘能走完全部交互、错误提示不只靠颜色;这是下限,不是合规检查。记录写进验收文档并署名,本次没做的项写「未查」——它比一个假的「已通过」有用得多。