Files
novalon-website/docs/visual-testing-standards.md
张翔 636bc4ecde docs(test): 添加设计文档、测试规范与 E2E 测试套件
- 新增 ADR 架构决策记录 (Design DNA 集成与深化)
- 新增 CMS 系统设计文档
- 新增实施计划文档 (Phase1-3)
- 新增 Bain 品牌升级设计规格
- 新增 E2E 分层测试套件 (P1-P4)
- 新增视觉回归测试配置
- 新增光效分析、视觉验证等辅助脚本
- 更新验收测试报告
2026-07-07 06:54:25 +08:00

201 lines
6.5 KiB
Markdown
Raw Permalink 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.
# 视觉测试标准与验收准则
## 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)
- 项目品牌设计规范