1. UI 测试的"测试金字塔"定位,单元测试(组件逻辑)→ 集成测试(交互)→ E2E(用户流程)→ 视觉测试(外观)的分层策略?
请说明 UI 测试在"测试金字塔"中的定位,并阐述单元测试(组件逻辑)、集成测试(交互)、E2E(用户流程)、视觉测试(外观)的分层策略?
- 测试金字塔各层的定位与职责
- 各层测试的比例与成本
- 分层策略的平衡与取舍
UI 测试遵循"测试金字塔"的分层思想:底座是单元测试,覆盖组件内部逻辑(状态、props、计算、渲染正确性),成本低、速度快、定位精确,是数量最多的层;中间是集成测试,覆盖组件之间的交互与协调(如表单提交触发回调、父子组件联动),验证"交互正确性";再往上是 E2E 测试,覆盖真实用户流程(从入口到完成的关键路径),验证跨组件、跨路由、跨系统的端到端行为,成本高、速度慢、稳定性差,数量最少;视觉测试则作为"外观层",验证渲染出的界面是否符合预期,可与上述各层并行。分层策略的关键是"按比例分配成本":单元测试应占大头(覆盖组件逻辑细节),集成测试与 E2E 聚焦关键路径,视觉测试覆盖每个 UI 状态。UI 测试金字塔的核心原则是"底层快而多、顶层慢而少",避免用大量昂贵的 E2E 覆盖组件逻辑,也避免用视觉测试替代逻辑断言。同时,"从右向左测试左移"——把能在单元层验证的逻辑尽量下沉,减少对昂贵的 E2E 与视觉测试的依赖。视觉测试在金字塔中通常是"横向的补充层",不替代任何一层,而是补充"外观正确性"这一维度。
答题核心是理解各层职责与成本差异,强调"底层多、顶层少"的比例原则与"左移下沉"策略。突出视觉测试作为横向补充层的定位。