SuperAPI AI 工具集

testing-end-to-end

测试与质量

查看项目

更新于 10-15 09:48

技能介绍

Testing End To End 是一个用于验证运行时行为的端到端测试技能,其核心规则是“证据优先于信心”。类型检查和 lint 只能验证代码正确性,不能验证功能正确性:它们可以通过,但页面仍可能在运行时抛错、查询未部署、表单从未写回,或开发命令启动在错误端口上。因此,当变更触及运行时行为时,必须在宣布完成前端到端地实际执行该行为。

一、什么算运行时表面

运行时表面包括:浏览器路由、页面、组件、共享 UI、表单、导航、鉴权门控流程、加载/空/错误状态、API、CLI 命令、worker、第三方提供商集成、生成产物、开发服务器、构建系统变更、运行时升级、本地代理、端口路由、进程生命周期以及编排脚本。

对于可在浏览器中测试的工作流,单元测试、静态截图、类型检查、lint 和 API 调用不能替代运行时证明,它们只能作为补充。

二、端到端标准

在报告成功之前,必须在真实表面中证明被改动的路径,具体包括以下步骤:

  1. 定义证明目标。确定代表该变更的路由、命令、端点、工作流、集成、生成产物或本地开发命令。完成标准是:你知道评审者或用户必须看到什么状态才会相信该变更有效。

  2. 启动真实表面。使用项目文档化的本地、预览或开发栈命令。当项目有规范运行器时,不要手工拼凑替代方案。

  3. 使用代表性状态。优先使用用户或评审者关心的同一账号、权限、数据形态、路由、环境和工作流。如果被改动的状态缺失,应播种或创建它,而不是验证错误的状态。

  4. 执行被改动路径。驱动实际工作流,而不是夹具或孤立组件。包含可能失败的交互:提交、保存、变更、导航、切换、编辑依赖字段、上传、批准、撤销,或执行已改动的加载/空/错误状态。

  5. 检查运行时错误。在交互后检查浏览器控制台输出、服务器日志、网络失败、命令退出码和后端错误。当工具可以读取时,不要仅凭肉眼判断。

  6. 捕获证据。保存截图、片段、日志、命令输出、追踪或生成产物,以展示预期状态。如果变更太小、隐藏或模糊,应裁剪、缩放、滚动、播种数据或交互,直到证据清晰可读。

三、浏览器可测变更

如果用户可以在浏览器中触达被改动的行为,就运行应用并在真实浏览器中驱动它。至少应覆盖:

  • 当表面写入数据时,至少一次表单提交、变更或写回操作。“页面已加载”和“静态文本已渲染”只是冒烟测试,不是端到端通过。
  • 当表面有状态时,至少一次响应式状态变化:切换选择、更改日期、切换标签页、编辑依赖字段、过滤、排序,或以其他方式证明依赖 UI 会更新。
  • 交互后至少一次控制台/运行时错误检查。
  • 当变更属于视觉或可通过 UI 证据评审时,至少一张展示已验证状态的截图或片段。

捕获内容必须可见地包含正在验证的 UI 变更或交互状态,并且必须来自相关路由、账号、数据和状态下的实际挂载产品 UI。伪造、未挂载、未鉴权、夹具渲染、模拟、参考、Storybook 或仅组件截图不满足产品证据要求,除非任务明确针对该孤立表面。

对于现有 UI,在可行时应捕获可比较的前后证据。对于新 UI,捕获新状态。对于动效、过渡、拖放、乐观更新或序列化状态,捕获短片段。

四、后端、API、CLI 与集成变更

对于后端/API/CLI 工作,调用真实端点或命令路径来执行该变更。对于写操作,在写入后通过读取进行交叉验证。对于权限或运行时边界,当被改动行为涉及边界时,应同时执行允许和拒绝路径。

如果浏览器消费被改动的后端形态,应运行后端/API 检查以及一个有代表性的浏览器流程。为后端代码新增单元测试并不能证明浏览器路径在真实交互下仍然有效。

五、开发工具与运行时编排

开发工具、构建系统、包管理器、运行时、本地代理、端口路由和进程生命周期变更也需要端到端冒烟测试。启动被改动的命令,等待就绪或捕获确切阻塞点,如果启动成功则执行主要本地端点,有意终止,并在适用时验证没有残留的所属进程或监听器。

六、在宣布受阻前先恢复

浏览器导航失败、鉴权跳转、服务器拒绝、缺少种子数据、提供商配置缺口、后端绑定过期或本地端口问题,都是需要诊断的症状,而不是已完成的阻塞。

在宣布验证受阻之前,尝试项目文档化的恢复路径:恢复应用/服务器,确认所选 URL 和端口,在存在安全凭据或文档化流程时恢复鉴权,刷新提供商/后端状态,播种所需数据,并尝试允许的备用浏览器/工具路径。只有当阻塞确实超出智能体控制范围时才停止。

七、报告

最后报告所执行的路由/命令/API、所执行的操作、证据所在位置、控制台/日志/错误结果,以及未能完成的部分。如果只运行了测试、类型检查、lint 或静态渲染,不要声称端到端验证已通过。