用 AI 测试的一些笔记。
AI 探索、Playwright 与确定性 CI 如何拼在一起,以及 Hover 背后的设计取舍。
- ·vibe-codingai-testingregression-testingopinion
你的编码 agent 不知道自己弄坏了什么
AI 编码 agent 只对着眼前那句 prompt 优化。它并不持有你应用不变量的长期记忆——所以它抓不住自己造成的回归。换个更大的模型救不了;一份外部契约才行。
阅读 → - ·vibe-codingregression-testingai-testingcihow-to
vibe coding 的应用,上线前该怎么测
Vibe coding 让你飞快得到一个能跑的 demo,也同样飞快地埋下悄无声息的回归。这里给一套具体的五步做法:上线前把真正要紧的行为锁死,让下一次 AI 改动没法悄悄弄坏它。
阅读 → - ·multi-type-testingvisual-regressionaccessibilityapi-testingplaywrightai-testing
四种测试,没有一种在运行时用 AI
多类型测试——E2E、视觉、API、无障碍装进一套套件——是个好主意。但让模型在测试运行时参与,不是。Hover 把四种都结晶成纯 Playwright:像素比对、规则引擎、录制的流程,在 CI 里确定性通过,运行期零 AI。
阅读 → - ·claude-codeagent-loopai-testingregression-testingverify
你的编码 agent 不知道自己有没有把应用改坏。Hover 知道。
Claude Code 的循环就是猜一下、验一下、再猜。成败全在验这一步。改后端逻辑,agent 有 npm test;改用户会点的流程,它什么都没有,只能闭着眼睛改。Hover 就是应用行为的 verify 那一步:一条录好的流程,回放时不带任何模型。
阅读 → - ·claude-codehooksai-testingregression-testingmcpci
五个让回归保持绿色的 Claude Code hook
MCP 是 agent 主动调用的;hook 是围绕循环自动触发的。五个 Claude Code hook——SessionStart 定位、Stop 硬闸(spec 不绿不许收工)、结晶后重放、guard-first 助推、push 前拦漂移——让 agent 开局有全局、收工即绿。hover-hook install 帮你接上前几个。
阅读 → - ·ai-testingllm-as-judgeciself-healingregression-testingplaywright
确定性判定 + LLM 裁判:Hover Cloud 如何评估一次测试运行
一次红色 CI 运行需要的是一个判定,而不只是一个红叉。Hover Cloud 分两层评估:确定性断言层(状态、记录、覆盖、确定性)+ 一个 LLM 裁判,专门处理没有标准答案的判断。两层合起来,把你的套件变成一张守护存量系统的回归网,也变成一个让你定义业务、而不是写代码的闭环。
阅读 → - ·playwrightvs-codeextensionai-testingmcpself-healing
Hover VS Code 插件:本地优先的 Playwright 驾驶舱
VS Code 里的 Playwright 测试驾驶舱:Overview(运行矩阵)、Heal(CI 漂移队列)、Env(目标与测试账号)、Map(覆盖)。本地优先、登录可选、没有 chat。编写在你自己的编码 agent 里通过 Hover MCP 完成。
阅读 → - ·playwrightmcpmodel-context-protocolclaude-codecursorai-testing
Hover MCP:给你编码 agent 的 Playwright MCP server
把 Hover MCP 加到 Claude Code 或 Cursor,一句 /mcp__hover__test_app 就能让编码 agent 变身 Playwright 测试作者。接地工具带来 record == replay,spec 结晶成普通的 @playwright/test,CI 里没有模型。
阅读 → - ·playwrightcidashboardflakinessself-healinggithub-actions
Hover Cloud:内置 Heal Queue 的 Playwright CI 看板
接入 GitHub repo,Hover Cloud 就盯住每次 CI 运行:通过率、flakiness 打分、把 drift 和 bug 分类的 Heal Queue、业务图,还有回归告警。它本身不跑浏览器,执行始终留在你自己的 CI。
阅读 → - ·playwrightauthenticationstorageState
登录一次,让每个 Playwright 测试复用同一个会话
偷懒的套件会在每个 spec 开头都重新登录一遍,把账号密码抄进十个文件。Hover 把登录提取成一个 auth setup project,接好 storageState,把密码留在环境变量里。
阅读 → - ·playwrightapi-testingcdp
用应用本就在产生的流量来生成 API 测试
你点点点走流程的时候,应用会发出真实请求。Hover 通过 CDP 直接从浏览器把它们读出来,不用代理、也不用 MITM,再把你选中的调用结晶成一份纯 Playwright API spec,其中的会话 token 会被剥掉。
阅读 → - ·playwrightpage-object-modelrefactoring
从你已经录好的 Playwright spec 里自动抽取 Page Object
五个 spec 开头都走同一段导航。Hover 找出这段共享前缀,生成一个 Page Object 和 fixture,再把这些 spec 折叠成去调用它。全程不用模型,还会绕开你的登录。
阅读 → - ·playwrightself-healmaintenance
自愈的 Playwright 测试,CI 里不跑任何模型
改个按钮名字,六个 spec 就红了。与其手动改 selector 打补丁、或者从头重录,不如回放录好的步骤,找出走偏的那一步,只重新 ground 它。
阅读 → - ·vibe-codingvibe-testingaiplaywrighttesting
vibe coding 与 vibe testing:区别在哪,为什么重要
vibe coding 几分钟就能发布一个功能。Veracode 的一项研究发现,AI 生成的代码有 45% 会带着安全缺陷。vibe testing 就是那个答案——只是这个词本身还没定型。下面说清两者各指什么,又会走向哪里。
阅读 → - ·vibe-codingtestingplaywrightai
你把功能 vibe coding 出来了,可它真的测过吗?
vibe coding 让发布功能变简单,却让验证功能变难。手动点点点撑不住规模,而没自己手写的代码,你也懒得给它手写 spec。那就 vibe test 一下:把流程描述出来,换回一个真正的 Playwright spec。
阅读 → - ·vibe-codingsecurityidorapi-testing
vibe coding 出来的应用,默认就自带安全漏洞
只想着「能跑就行」的 AI 只会写 happy path,不会写授权校验。IDOR 和越权访问,恰恰是你的点击式测试永远够不到的漏洞。让你的 agent 接上 Hover,它就能从你的开发浏览器里把这些漏洞揪出来。
阅读 → - ·vibe-codingmaintenanceplaywrightregression
你的 vibe coding 应用总是坏,你却查不出原因
vibe coding 堆出一堆你从没读过的代码,下一条 prompt 就悄悄弄坏了三步之外的另一个页面。一套普通的 Playwright spec 就是你的回归防线,而 Hover 会从你真实的操作流程里帮你写好、维护好它们。
阅读 → - ·pricingbyokaiopen-source
别再为你早已付费的模型二次租用访问权
大多数 AI 工具按月向你转售你本可以直接购买的模型访问权。Hover 不持有任何 key,也不转售任何 token:它运行你已经装好的 Claude 或 Codex CLI,用的是你自己的订阅。自带你的 key,工具归你所有。
阅读 → - ·environmentscredentialsciplaywright
我不再硬编码测试登录了:用 @account 管理多环境账号
每个 E2E 套件都从登录开始,而登录正是账号密码泄进仓库的地方。我让 agent 替我在 local、staging 和 prod 上登录,没有任何密码会落进提交上去的 spec 里。
阅读 → - ·securityplaywrightsecretsregression
你录制的测试,可能正在把 session cookie 提交进代码库
录下一个真实请求存成测试,cookie、bearer token、甚至身份证号就一起被写进了 git。Hover 会在生成 spec 之前先把凭据从请求里剥掉,并告诉你删了什么。
阅读 → - ·engineeringcode-reviewaisecurity
我们给自己用 AI 写出来的代码做了一次审计
Hover 大部分代码都是有 agent 全程参与、飞快写出来的。于是我们停下来,把整个代码库一次性审了一遍:死代码、潜伏的 bug,全都查。查出了大约四十个真问题,而有意思的那几个,都不在你以为的地方。
阅读 → - ·playwrightflaky-testspromise-all
用 Promise.all 修好 Playwright 里 flaky 的下载、弹窗和上传测试
在 Playwright 里,事件监听器要是在点击之后才注册,下载、OAuth 弹窗和文件上传就会变 flaky。用 Promise.all 把它们配成一对,而且让 Hover 替你把这个配对写好。
阅读 → - ·playwrightai-testingci
AI 写的 Playwright 测试,CI 里却没有 AI
大多数 AI 测试工具让模型在运行时全程参与,于是每次 CI 都要为 LLM 调用买单。换个思路:让 AI 只写一次测试,交付出来的是确定性运行的纯 Playwright。
阅读 → - ·playwrightcodegencomparison
Playwright codegen 对比 AI 探索:各自何时更合适
Playwright 自带的录制器免费、本地运行、写出的代码也干净,但它只是把点击照抄下来。什么场景该用 codegen,而从意图出发编写又是怎么改变这份活儿的。
阅读 → - ·architecturebyo-clipricing
自带 CLI:无需 API key、不转售 token 的 AI 测试
Hover 不捆绑任何 AI 运行时。它是一个 MCP 服务器,搭在你已经在用的编码 agent(claude、codex……)上,复用的就是你本来就在付费的订阅。这套架构为什么重要?
阅读 → - ·playwrightmaintenanceselectors
如何让 AI 编写的 Playwright 测试在 UI 改动时不崩
Selector 腐烂会拖垮端到端套件。这里有一套不靠模型的办法:语义化 locator、有意识地重新录制,以及把真正的流程断裂当成它该抓的 bug 来对待。
阅读 → - ·cdpchromearchitecture
为什么 Hover 通过 CDP 驱动你真实的 Chrome,而不是另起一个 headless 上下文
测你应用的 agent,理应看到你看到的东西。说说 Hover 为什么通过 Chrome DevTools Protocol 连上一个已经在跑的调试 Chrome,又为什么绝不碰你的主浏览器 profile。
阅读 →