Files
story/docs/safari-compatibility-evidence.md
T

65 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Safari兼容性一致性证据说明
## 1. 目标与验证强度
`cmd/safari-conformance`用于把同一发布候选在macOS真实Safari上的关键流程结果形成`safari-compatibility-conformance-report-v1`。本项目采用最小充分矩阵:发布依据中的`CURRENT`和`PREVIOUS`两个Safari版本,各验证桌面`1440×1000`与平板响应式`1024×900`两种视口,以及六条关键业务流程,共24项结果。不在每个版本重复所有低风险按钮组合,也不以覆盖率或截图数量替代功能结论。
Playwright WebKit、Chrome、Edge、Windows上的浏览器或人工构造数据只能输出`NON_SAFARI_TOOLCHAIN/external_validation_required=true`。只有macOS真实Safari证据完整时,报告才为`REAL_SAFARI/external_validation_required=false`。
## 2. 六条关键流程
| 标识 | 验证范围 |
|---|---|
| `AUTH_SESSION` | OIDC登录、回调恢复、会话失效提示和重新登录 |
| `FAMILY_WORKSPACE` | 家庭成员、长者授权、设备、固件、通话、故事记忆、分享和隐私八个页签可进入并正确渲染 |
| `OPERATIONS_WORKSPACES` | 运行配置、费用额度、告警处置和联调诊断工作台可进入、刷新和恢复 |
| `REALTIME_NAVIGATION` | SSE已连接,工作台URL刷新、前进、后退和深链恢复正确 |
| `MEDIA_FILE_CONTROLS` | 音频控件可播放;上传/下载确认区、Web Crypto摘要和私有对象访问无浏览器阻断 |
| `CONTROLLED_ACTIONS` | 代表性页面内受控表单能打开、校验、取消,目标冻结且不依赖浏览器弹窗 |
每项结果必须为`PASS`,并要求控制台错误、非预期失败请求和横向溢出均为0。预期的401恢复、被取消SSE或有意阻断请求应在执行记录中说明,不能笼统计为0来隐藏异常。
## 3. 采集结构
输入使用`safari-compatibility-capture-v1`:
- 顶层绑定`candidate_version`、`build_digest`、`environment`、版本发布依据、变更工单、执行人、独立复核人和采集时间;
- `runs`恰好覆盖`CURRENT`与`PREVIOUS`,两者`browser_version`必须不同;
- 真实证据中`browser_name`固定为`Safari`,同时记录macOS版本、脱敏机器引用以及`SAFARIDRIVER`或`MANUAL_OBSERVED`执行方式;
- 每个运行包含六流程与两视口的12项`results`,每项保存截图、视频、日志或人工记录引用;
- 不保存登录令牌、Cookie、录音正文、字幕正文、匿名分享口令或个人敏感信息。
“最近两个版本”不硬编码到校验器。QA应在每次候选冻结时依据Apple公开发布信息或组织批准的浏览器基线登记`release_reference_ref`,把当时的版本映射为`CURRENT/PREVIOUS`,避免升级后仍把旧版本误报为最新。
## 4. 一致性检查与证据包门禁
报告执行11项检查:采集模式、来源、候选身份、候选绑定、环境身份、Safari版本覆盖、视口覆盖、流程覆盖、功能结果、证据引用和时间线。
`SAFARI_COMPATIBILITY`不可豁免。索引标记`VERIFIED`时,第一个文件必须是同候选的`PASS/REAL_SAFARI`报告,并完整包含24项结果。证据包清单中的`safari_compatibility_validation`汇总两个版本、运行数、结果数和缺口。非Safari报告或缺任一版本时必须保持`PENDING`。
## 5. 现场执行步骤
1. 固定候选版本、镜像摘要、目标环境和Safari发布依据。
2. 分别在两个真实Safari版本上执行两种视口;每个视口只跑六条关键流程。
3. 保存脱敏截图/视频、控制台与网络失败摘要,并填写采集JSON。
4. 由不同于执行人的QA复核版本、候选、错误计数和证据引用。
5. 生成报告:
```powershell
go run ./cmd/safari-conformance `
-capture E:\evidence\safari-capture.json `
-candidate-version 0.63.0-rc.1 `
-build-digest sha256:<64位摘要> `
-output E:\evidence\safari-report.json
```
6. 将报告作为`SAFARI_COMPATIBILITY`首个文件并重建候选证据包,确认`coverage_complete=true`。
本地仅验证采集与报告工具链:
```powershell
.\scripts\smoke-safari-conformance-toolchain.ps1
```
该脚本不启动Safari、不声称页面兼容,也不会把外部门禁改为通过。