Write, debug, and tune Playwright specs with locator strategy, trace diagnosis, and CI-aware timeouts.
Memory
Testing Strategy
Try itUse when planning or reviewing a frontend testing strategy, selecting the right test layer by risk, mapping coverage across static checks, unit tests, component tests, integration tests, E2E, Storybook/visual regression, a11y, security, performance, or CI gates. Do not use to write individual compon
What it does
按“离代码多近 / 覆盖风险层级”选择测试方法,避免把所有风险都塞进组件测试或 E2E。
The skill document
前端测试策略
Purpose
按“离代码多近 / 覆盖风险层级”选择测试方法,避免把所有风险都塞进组件测试或 E2E。
Procedure
- 识别改动类型:纯逻辑、UI 组件、跨模块流程、浏览器能力、视觉稳定性、专项质量风险或发布门禁。
- 建立测试层级矩阵,至少区分:
- 静态检查:TypeScript、ESLint、格式、依赖安全、构建。
- 单元测试:utils、hooks/composables、状态逻辑、schema、纯函数。
- 组件测试:props/emits、用户交互、loading/error/empty、mock 边界。
- 轻量集成测试:表单 + API mock + 路由/Store/Provider 上下文。
- E2E:真实浏览器、跨页面关键旅程、鉴权、支付、权限、CI artifacts。
- 视觉/交互文档:Storybook interaction、Chromatic、视觉回归基线。
- 专项质量:a11y、安全、性能、兼容性。
- 按风险分配覆盖:高频核心路径优先 E2E,复杂组件状态优先组件测试,纯逻辑优先单元测试,跨 provider 协作用轻量集成测试。
- 用测试金字塔控制维护成本:
- 越靠近纯逻辑,测试越多、越快、越稳定。
- E2E 只覆盖用户关键旅程和真实浏览器风险,不覆盖每个分支。
- 视觉、a11y、安全和性能属于专项质量层,不塞进普通组件测试。
- 检查是否已有命令、测试框架、目录约定和 CI 门禁;沿用项目现状,不为策略文档引入不必要工具。
- 规划失败证据:每个高风险项要说明失败时如何定位,例如断言、截图、trace、coverage、日志或报告。
- 设计测试数据与 mock 策略:共享 fixture 表达业务场景,测试数据 builder 只封装噪声字段,避免每个测试手写随机对象。
- 管理 flaky 风险:把时间、网络、动画、随机数、并发和外部服务标为不稳定来源,并指定隔离、重试和证据产物。
- 输出可执行的最小测试计划:每层覆盖什么、不覆盖什么、优先级、建议命令和责任 skill。
Constraints
- 不把测试策略写成泛泛的“多写测试”;每个建议必须对应具体风险。
- 不要求所有项目都补齐完整测试金字塔;按业务风险和团队维护能力裁剪。
- 不把 E2E 当作单元/组件测试的替代品;不把组件测试当作真实浏览器兼容保证。
- 不为小改动强制引入新框架;优先复用仓库已有工具和脚本。
- 不追求没有风险说明的覆盖率数字;覆盖率只能辅助判断,不能替代场景覆盖。
- 不把随机 fixture、共享全局状态或依赖执行顺序的测试纳入主干门禁。
Expected Output
输出测试分层建议、风险到测试层的映射、优先级、建议命令、需新增或调整的测试文件范围,以及明确分流到哪些专项 skill 或 agent。
Related skills
Find why your productivity system keeps failing, then apply the smallest fix — capacity math, bottleneck routing, durable local notes.
Join a video meeting as an AI bot with voice, avatar, and screenshare across four operating modes.
Generate and edit Draw.io, Mermaid, and Excalidraw diagrams from natural language using a structured JSON spec.
Stores durable facts in a categorized, plain-markdown vault on disk, alongside your agent's built-in memory.
Run Git operations — commits, branches, merges, rebases, conflict resolution, and recovery — with safety rules enforced.
More from bovinphang
Browse all skillsGenerate or edit diagrams, visual assets, and image workflows with reviewable PNG self-checks and bounded self-repair.
Use when creating editable technical diagrams with draw.io / diagrams.net sources, including architecture diagrams, ERD, UML, sequence diagrams, flowcharts, ML model diagrams, official shape lookup, brand symbols, Graphviz auto-layout, codebase structure maps, .drawio validation, or draw.io CLI expo
Use when building, reviewing, or improving frontend UI that needs product-specific design direction, design-system generation, Master/Page overrides, distinctive visual identity, anti-generic interface choices, first-screen hierarchy, UI polish, chart UX, interaction states, responsive behavior, or
Use when creating or reviewing Next.js 14+ App Router projects, file routes, layouts, server/client component boundaries, SSR/SSG/ISR, streaming, metadata, middleware, server actions, or Next-specific data fetching. For generic client React component architecture, apply the project's React conventio
Use when creating, reviewing, or restructuring frontend monorepos with pnpm workspace, Turborepo, Nx, multi-package dependency boundaries, task orchestration, package naming, or package publishing; Chinese triggers include monorepo, workspace, multi-package.
Use when creating or reviewing Nuxt 3 projects, file routes, pages, layouts, SSR/SSG/SPA behavior, Nuxt data fetching, route middleware, plugins, modules, server routes, or Nuxt-specific Vue 3 conventions. For generic Vue component architecture, apply the project's Vue conventions separately; Chines