2027 届测试校招项目:给浏览器 Agent 做一份能复现失败的评测集
本文给 2027 届应届生一个可本地复现的浏览器 Agent 测试项目。使用 ServiceNow AI Research 的 BrowserGym 作为公开任务环境,围绕网页任务、工具动作、终态检查和失败归因建立最小评测闭环。项目不依赖虚构线上数据,简历只写真实运行结果。
项目目标与范围
你要证明的不是“模型能点按钮”,而是能定义成功条件,并在页面变化、工具失败和权限限制时提供可信证据。BrowserGym 是 ServiceNow AI Research 开源的网页任务环境,可连接不同 web-agent benchmark。项目选择公开的基础任务,例如点击、打开对话框或检索页面元素;具体 benchmark 与依赖版本写进 README,避免环境升级导致无法复现。
第一版只支持只读页面和模拟数据,不登录真实账户、不操作付款、不向生产网站提交表单。项目结构可以是:tasks/ 放任务定义;agent/ 放被测策略;runner/ 负责执行;assertions/ 检查终态;traces/ 存脱敏轨迹;reports/ 汇总结果。
任务规则和验收条件
定义三类任务:找到指定条目并打开;在模拟表单中填写允许的字段但不提交;面对缺失字段时暂停并请求澄清。每个任务需要初始页面状态、目标状态、禁止副作用和超时条件。不要把自然语言“看起来完成了”作为唯一判定。
| 场景 | 输入条件 | 成功断言 | 失败断言 |
|---|---|---|---|
| 找到条目 | 页面有唯一匹配记录 | URL/记录ID对应目标 | 打开近似名称记录 |
| 填写草稿 | 模拟表单含允许字段 | 字段值正确,未提交 | 触发提交或改动未授权字段 |
| 信息缺失 | 必填值缺失 | Agent 请求澄清 | 凭猜测补值并继续 |
| 页面变化 | 按钮标签改动 | Agent重新定位或安全停止 | 对错误元素执行动作 |
| 工具异常 | 点击操作超时 | 查询状态后安全决定是否重试 | 盲目重复造成副作用 |
实现与 Trace
每次运行生成唯一 run_id,记录任务版本、环境版本、模型/Agent 配置、页面 URL(去除敏感参数)、动作类型、目标元素引用、工具结果、耗时、页面变化摘要和最终断言。不要保存用户密码、Cookie 或完整个人信息。若使用截图,保存在本地测试目录,注明是模拟环境。
断言分为两类。确定性断言检查页面结构、URL、表单状态和记录 ID;语义判定只用于判断 Agent 是否清楚解释失败原因,并抽样由人复核。严禁让模型自己报告“成功”后就把该文本当真值。最终状态要由页面或测试服务独立查询。
错误、修复与回归
先故意做出一个错误版本:用按钮文字定位,页面按钮改名后点击失败。记录原始失败,不要直接删除失败样本。修复后改用可访问性语义或稳定属性定位,并补充“相似按钮同时存在”的歧义场景。另一个错误版本让 Agent 在缺少必填字段时猜值;修复后增加停止和澄清策略,再加入不同字段缺失的参数化回归。
报告至少包含任务数、完成数、失败数、失败类别、重试次数、无副作用校验和环境信息。小样本结果只描述这次运行,不宣称模型普遍能力。若改变模型、提示词、浏览器版本或任务集,必须在报告中标记版本差异。
面试展示和简历写法
演示顺序:解释业务目标;展示一条正常 Trace;展示一次失败;说明根因;展示修复前后差异;说明仍未覆盖的边界。被追问时,能说出为什么工具返回成功仍不能证明页面状态正确,如何避免重试造成重复副作用,评测集怎样防止只围绕一个页面过拟合。
简历模板: “基于 BrowserGym 搭建浏览器 Agent 测试 Demo,定义任务状态、工具轨迹和页面终态断言;覆盖信息缺失、页面变化及工具超时场景,并通过脱敏 Trace 实现失败复现与回归。”把“覆盖”改成你真正实现的场景;没有统计就不要加成功率或效率数字。
让项目可以从空目录复现
README 写清 Python 版本、安装命令、浏览器依赖、数据初始化、运行命令和预期输出。模型密钥放在环境变量示例,不提交真实密钥;默认提供 mock agent,保证没有外部 API 的同学也能执行断言层。
项目应提供一份示例 Trace 和失败报告,解释日志字段。新增任务时遵循固定 schema;CI 至少跑格式检查、任务定义校验和确定性断言。网络或动态页面造成的失败需标成环境问题,不要误算成模型退化。
演示时打开失败结果,追踪到任务输入和页面快照,再指出失败在哪条断言。BrowserGym 提供可重复任务环境,但不能直接代表真实业务;实际系统还有权限、数据、网络和组织规则。清楚说明边界本身就是测试能力。
错误记录不要只写“元素找不到”。注明复现步骤、起始页面、期望元素、实际定位结果、Agent动作和终态。修复记录说明新定位方式为何更稳、假设是什么、哪些页面变化仍可能失败。若任务环境升级,先跑基准样本并记录兼容差异;判断失败属于页面变动、benchmark版本更新还是Agent行为回归。分开提交环境适配和策略修复,才能说清结果来自哪类改动。
把覆盖范围控制在可解释的任务集。与其放几十个未经复核的网页操作,不如选少量代表任务,解释正例、反例和环境限制。展示报告时指出每条结论对应的Trace字段,让评审者可以从指标回到一次具体运行。
最后,在演示前用另一台干净环境按 README 重跑一次,确保没有依赖本机缓存。
本文部分内容参考了霍格沃兹测试开发学社整理的相关技术资料,主要涉及软件测试、自动化测试、测试开发及 AI 测试等内容,侧重测试实践、工具应用与工程经验整理。
- 点赞
- 收藏
- 关注作者
评论(0)