docs(test): 添加设计文档、测试规范与 E2E 测试套件

- 新增 ADR 架构决策记录 (Design DNA 集成与深化)
- 新增 CMS 系统设计文档
- 新增实施计划文档 (Phase1-3)
- 新增 Bain 品牌升级设计规格
- 新增 E2E 分层测试套件 (P1-P4)
- 新增视觉回归测试配置
- 新增光效分析、视觉验证等辅助脚本
- 更新验收测试报告
This commit is contained in:
张翔
2026-07-07 06:54:25 +08:00
parent 8def296301
commit 636bc4ecde
31 changed files with 9262 additions and 41 deletions
+200
View File
@@ -0,0 +1,200 @@
# 视觉测试标准与验收准则
## 1. 概述
本文档定义了 Novalon 官网项目的视觉测试标准、验收准则和测试流程,确保用户界面在不同设备、浏览器和屏幕尺寸下的视觉一致性和正确性。
## 2. 测试范围
### 2.1 视觉元素覆盖
| 类别 | 测试内容 | 测试方式 |
|------|---------|---------|
| 页面布局 | 网格系统、间距、对齐方式、响应式断点 | 全页截图对比 |
| 色彩显示 | 品牌色、功能色、文本色、背景色 | CSS 变量验证 + 截图对比 |
| 字体样式 | 字体族、字号、字重、行高、字间距 | 计算样式检查 + 截图对比 |
| 图片渲染 | 图片加载、尺寸比例、清晰度、懒加载 | 截图对比 + 元素可见性检查 |
| 交互状态 | hover、focus、active、disabled 状态 | 组件截图对比 |
| 动画效果 | 过渡动画、加载动画、微交互 | 动画禁用后截图对比 |
| 主题切换 | 浅色/深色主题切换 | 主题切换后截图对比 |
| 响应式适配 | 桌面、平板、移动端布局 | 多视口截图对比 |
### 2.2 测试页面(12 个核心页面)
1. 首页 (`/`)
2. 关于我们 (`/about`)
3. 联系我们 (`/contact`)
4. 产品中心 (`/products`)
5. 产品详情 (`/products/erp`)
6. 解决方案列表 (`/solutions`)
7. 解决方案详情 (`/solutions/manufacturing`)
8. 服务列表 (`/services`)
9. 服务详情 (`/services/software`)
10. 新闻列表 (`/news`)
11. 新闻详情 (`/news/company-founded`)
12. 团队介绍 (`/team`)
### 2.3 测试矩阵
| 维度 | 配置 |
|------|------|
| 浏览器 | Chromium (Chrome)、Firefox、WebKit (Safari) |
| 视口尺寸 | 桌面 1280×800、平板 834×1194、移动端 390×844 |
| 主题 | 浅色主题、深色主题 |
| 设备类型 | 桌面端、平板端、移动端(含触摸支持) |
## 3. 测试层级
### L1: 全页面视觉回归测试
**目标**: 检测整页布局的意外变化
**测试方法**:
- 使用 Playwright `toHaveScreenshot` 进行全页截图对比
- 每个核心页面生成基线截图
- 每次代码变更后与基线对比
**验收标准**:
- 像素差异率 ≤ 0.5%
- 最大差异像素数 ≤ 200px
- 允许的差异区域:动态内容(时间、随机数等)、第三方组件
### L2: 组件级视觉状态测试
**目标**: 验证 UI 组件在不同状态下的视觉表现
**测试组件**:
- 按钮:默认、悬停、聚焦、禁用
- 导航菜单:桌面端、移动端展开
- 卡片组件:默认、悬停
- 表单输入:默认、聚焦、错误状态
- 页头页脚:品牌一致性
**验收标准**:
- 状态变化有明确的视觉反馈
- 色彩过渡自然,无突兀跳变
- 聚焦环可见且符合 WCAG 标准
### L3: 排版与色彩验证
**目标**: 确保品牌视觉规范的一致性
**验证内容**:
- H1-H6 标题字体样式
- 正文文本可读性
- 品牌主色调准确性
- 色彩对比度符合 WCAG AA 标准
**验收标准**:
- 品牌色值误差 ≤ 5%
- 标题字号层级清晰
- 文本对比度 ≥ 4.5:1(普通文本)
- 大文本对比度 ≥ 3:1(18pt 或 14pt 加粗)
## 4. 验收准则
### 4.1 通过标准
视觉测试通过需同时满足以下条件:
1. **L1 全页回归**: 100% 页面通过像素对比(差异在允许范围内)
2. **L2 组件状态**: 100% 组件状态测试通过
3. **L3 排版色彩**: 品牌色和字体样式符合规范
4. **跨浏览器**: Chromium、Firefox、WebKit 三大浏览器无布局断裂
5. **响应式**: 桌面、平板、移动三端布局正常,无内容溢出或重叠
### 4.2 严重等级定义
| 等级 | 定义 | 示例 | 修复时限 |
|------|------|------|---------|
| P0 - 阻塞 | 页面无法正常渲染、内容缺失或严重错位 | 首页白屏、导航栏消失 | 立即修复 |
| P1 - 严重 | 核心功能区域视觉异常,影响用户理解或操作 | 表单无法识别、按钮不可见 | 24 小时内 |
| P2 - 中等 | 非核心区域视觉问题,不影响主要功能 | 间距不一致、颜色轻微偏差 | 本周内 |
| P3 - 轻微 | 细节优化,不影响功能和可读性 | 边框圆角差异、字重细微不同 | 下个迭代 |
### 4.3 可接受的差异
以下情况的视觉差异属于可接受范围:
1. **字体渲染差异**: 不同操作系统/浏览器的字体抗锯齿差异
2. **亚像素差异**: 1px 级别的渲染差异(非布局性)
3. **动态内容**: 日期、随机数等动态数据(需在测试中 mask)
4. **图片压缩**: 不同浏览器的图片解码细微差异
5. **滚动条样式**: 操作系统级别的滚动条样式差异
## 5. 测试流程
### 5.1 基线建立流程
1. 确保代码处于稳定状态(主分支最新代码)
2. 运行 `npm run test:visual:update` 生成基线截图
3. 人工审核所有基线截图的视觉正确性
4. 将基线截图提交到版本库
### 5.2 日常测试流程
1. 代码提交前运行 `npm run test:visual` 进行桌面端 Chromium 测试
2. CI/CD 中运行完整的视觉测试套件(所有浏览器和视口)
3. 测试失败时生成差异报告
4. 开发人员确认是 bug 还是预期变更
5. 预期变更则更新基线,bug 则修复代码
### 5.3 人工验证流程
1. 自动化测试通过后,进行关键页面的人工抽查
2. 重点检查:品牌一致性、信息层次、可读性、交互反馈
3. 记录发现的视觉问题并跟踪修复
## 6. 工具与命令
### 6.1 可用命令
```bash
# 桌面端 Chromium 视觉测试(快速验证)
npm run test:visual
# 完整视觉测试(所有浏览器和视口)
npm run test:visual:all
# 更新基线截图
npm run test:visual:update
# 移动端视觉测试
npm run test:visual:mobile
# 平板端视觉测试
npm run test:visual:tablet
# 跨浏览器桌面端测试
npm run test:visual:browsers
```
### 6.2 测试配置
- **测试框架**: Playwright
- **截图目录**: `e2e/visual-snapshots/`
- **测试报告**: `e2e/playwright-report/`
- **像素差异阈值**: 0.5% 或 200px(取较宽松者)
- **动画处理**: 测试时禁用 CSS 动画
## 7. 维护与更新
### 7.1 基线更新时机
- 发布新功能或 UI 重构后
- 品牌视觉规范更新后
- 修复视觉 bug 并验证后
- 依赖库升级导致合理视觉变化后
### 7.2 测试用例维护
- 新增页面时同步添加 L1 全页测试
- 新增组件时添加 L2 组件状态测试
- 品牌色更新时调整 L3 验证标准
- 定期 review 测试覆盖率
## 8. 参考资料
- [Playwright Visual Testing](https://playwright.dev/docs/test-snapshots)
- [WCAG 2.1 对比度指南](https://www.w3.org/WAI/WCAG21/quickref/#contrast-minimum)
- 项目品牌设计规范