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

4.1 KiB
Raw Permalink Blame History

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. 生成报告:
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
  1. 将报告作为SAFARI_COMPATIBILITY首个文件并重建候选证据包,确认coverage_complete=true。

本地仅验证采集与报告工具链:

.\scripts\smoke-safari-conformance-toolchain.ps1

该脚本不启动Safari、不声称页面兼容,也不会把外部门禁改为通过。