AI测试新范式:Agent Skills与Vibe Testing构建人机协作闭环 1. 从“单点测试”到“人机协作”测试范式的悄然转变最近和几个测试团队的朋友聊天发现一个挺有意思的现象大家嘴上都在聊AI、聊自动化但实际工作中很多核心的测试环节尤其是那些需要“感觉”和“判断”的地方依然严重依赖测试工程师的个人经验。比如一个页面的交互流程是否顺畅一个动画效果是否自然甚至一个文案的语气是否得体这些“非功能性”或“体验性”的质量维度自动化脚本往往束手无策最终还是要靠人眼去看、人手去点、人脑去感受。这让我开始思考我们追求的“自动化测试”是不是从一开始就有点跑偏了我们花了大量精力去编写和维护那些断言“按钮A是否存在”、“接口B返回状态码是否为200”的脚本却把最体现产品价值、也最影响用户口碑的“体验质量”完全交给了人工而且是一种重复、枯燥、极易疲劳和出错的“点点点”式人工。这种割裂本质上还是把机器和人放在了两个对立面上机器负责“确定性的验证”人负责“不确定性的探索”。但“Agent Skills Vibe Testing”这个组合给我提供了一个全新的视角。它不再试图用机器完全取代人或者把人当作机器的补充。相反它试图构建一个人机协作的闭环让具备特定技能的智能体Agent去高效、不知疲倦地执行那些可结构化、可重复的“技能性”测试任务同时将人的核心价值——直觉、审美、场景化理解和共情能力——提炼并融入到测试流程中形成一种可被感知、甚至可被部分量化的“氛围测试”Vibe Testing。这个闭环的目标不是100%的自动化覆盖率而是100%的质量关注度覆盖让机器和人各司其职共同为最终的用户体验负责。2. 拆解核心概念Agent Skills 与 Vibe Testing 究竟是什么在深入探讨如何构建闭环之前我们必须先厘清这两个概念在当前语境下的具体含义。它们并非凭空造词而是对现有测试实践中一些趋势的提炼和升华。2.1 Agent Skills从“脚本”到“技能”的认知升级传统自动化测试中我们编写的是“脚本”Script。一个脚本通常对应一个非常具体的测试用例比如“登录功能测试脚本”。它的逻辑是线性的、预设的环境是固定的断言是精确的。一旦业务逻辑或UI稍有变动脚本就可能“断裂”维护成本高昂。而Agent Skills智能体技能则是一种更高阶的抽象。我们可以把一个Skill理解为智能体一个具备一定自主决策能力的程序所掌握的一种“能力”。这个能力不是为了完成某一个特定用例而是为了应对某一类测试场景。举个例子传统脚本“在登录页向用户名输入框‘#username’输入‘testexample.com’向密码输入框‘#password’输入‘123456’点击‘#login-btn’断言页面跳转至‘/dashboard’。”Agent Skill“用户登录技能”。具备此技能的智能体需要理解“登录”这个业务概念。当被要求测试登录功能时它能自主地理解上下文识别当前应用哪些页面可能是登录页通过分析URL、页面标题、常见的登录表单元素如“用户名”、“密码”等。自主探索尝试多种输入组合有效账号、无效账号、空密码、超长用户名等。智能断言不仅检查是否跳转还会检查登录后的用户状态如本地存储的Token、页面关键元素如用户昵称显示是否正确、以及登录失败时的错误提示是否友好。环境适应即使UI元素的选择器变了比如从‘#username’变成了‘.username-input’只要智能体能通过其他方式如元素文本、占位符、表单类型识别出登录表单它依然能执行测试。一个测试智能体可以具备多种Skills例如“表单填写与验证技能”、“多步骤业务流程导航技能”、“API序列调用与数据验证技能”、“跨浏览器/设备渲染基础校验技能”。这些技能通过自然语言指令或更高级的意图识别来触发让测试从“录制回放”或“硬编码”进化到“目标驱动”。2.2 Vibe Testing将“只可意会”的体验转化为“可以言传”的检查点“Vibe”这个词很妙它指的是氛围、感觉、气质。Vibe Testing氛围测试的核心就是尝试去测试那些传统上认为“无法自动化”的、关乎用户体验和产品气质的质量属性。它关注的是视觉与交互的和谐度颜色搭配是否舒适动画曲线是否自然页面布局在多种屏幕尺寸下是否依然平衡、美观元素之间的间距是否遵循了设计系统还是显得杂乱流程与反馈的流畅度用户完成一个任务的路径是否直观页面跳转是否有生硬的“闪白”加载状态的提示是否优雅是精致的骨架屏还是一个突兀的旋转图标错误提示是生硬的技术语句还是贴心、有指导性的用户语言文案与语气的得体性按钮文案是生硬的“提交”还是更具行动力的“立即开启”错误提示是冷漠的“操作失败”还是带有共情的“哎呀好像出了点小问题请稍后再试”整个产品的文案语调是专业严谨的还是活泼亲切的这种语调在不同模块间是否保持一致性能感知不仅仅是“首屏加载时间小于3秒”这种硬指标更是用户主观感受到的“快”或“慢”。例如一个页面虽然数据加载慢但通过巧妙的骨架屏和分步加载让用户感觉响应迅速这就是好的“性能氛围”。Vibe Testing 不是要取代设计师或产品经理的评审而是将他们的专业判断和用户的普遍感受沉淀为一系列更具体、可被观察甚至可被部分量化的“检查清单”或“启发式规则”并将其纳入到常规的测试流程中尤其是由具备视觉、交互理解能力的AI智能体来辅助执行。3. 构建闭环如何让Agent与Vibe协同工作理解了这两个概念我们就可以设计它们如何协同形成一个不断自我增强的测试闭环。这个闭环不是线性的“先A后B”而是一个螺旋上升的循环。3.1 闭环的起点基于Vibe原则的测试场景与任务定义测试的源头不应该是需求文档里冷冰冰的功能点而应该是从用户体验目标出发的“场景”。我们可以利用Vibe Testing的思维来定义这些场景。操作示例为一个“电商商品详情页”定义测试任务分解Vibe维度视觉和谐核心图片是否清晰、突出价格、促销信息等关键数据是否一目了然颜色是否与品牌一致交互流畅轮播图滑动是否跟手选择商品规格如颜色、尺寸时反馈是否即时、清晰“加入购物车”按钮的点击动效是否令人满意文案得体商品标题是否吸引人且无歧义促销文案如“限时折扣”、“仅剩3件”是否营造了紧迫感但不令人反感按钮文案“立即购买”、“加入购物车”是否具有行动号召力性能感知页面核心内容图片、价格、标题是否优先加载并快速呈现滚动浏览长描述时是否流畅转化为Agent可执行的任务对“视觉和谐”维度可以生成任务“检查页面核心视觉区域坐标X-Y到X1-Y1的布局评估关键信息价格、主图、标题的视觉层级是否合理截图并标注疑似问题如元素重叠、间距明显不一致。”对“交互流畅”维度生成任务“模拟用户交互序列1. 滑动商品轮播图3次2. 依次点击所有可选的商品规格3. 点击‘加入购物车’按钮。录制交互过程分析动画帧率、响应延迟并检查每次交互后的UI状态变化是否符合预期。”对“文案得体”维度生成任务“提取页面所有用户可见文案进行一致性分析如‘购物车’是否在全站统一称呼并进行情感倾向和可读性评估标记出可能生硬、歧义或与产品基调不符的语句。”这些任务不再是简单的“断言文本等于XX”而是带有探索性和评估性的指令。它们由测试工程师、产品设计师、UX研究员共同基于“我们希望给用户营造何种Vibe”来制定。3.2 闭环的核心具备多模态能力的Agent执行与感知接收上述任务的不是一个传统的UI自动化框架而是一个具备多模态感知能力的测试智能体Agent。这个智能体需要集成多种能力计算机视觉CV能“看懂”屏幕识别UI元素、布局、颜色检测视觉缺陷如图片撕裂、元素错位。自然语言处理NLP能“读懂”页面上的文案理解其语义和情感。浏览器自动化与控制能像真人一样操作浏览器点击、输入、滚动。性能度量能采集渲染性能、网络请求等指标。一定的推理与决策能力能根据任务目标自主规划执行步骤并在遇到意外情况如弹窗、网络错误时尝试恢复或记录问题。这个智能体利用它的Skills去执行任务。例如它调用“视觉分析技能”来完成视觉和谐度检查调用“交互录制与性能分析技能”来完成流畅度测试调用“文本分析技能”来评估文案。关键点在于Agent在执行过程中不仅产出“通过/失败”的二元结果更会生成丰富的、结构化的上下文数据截图、高亮标注、性能曲线图、交互热力图、文案分析报告等。这些数据是Vibe的“证据化”呈现。3.3 闭环的反馈人的判断与规则的迭代Agent执行完毕生成了一份包含大量数据和“疑似问题”标记的报告。现在轮到人介入了。测试工程师、设计师、产品经理共同Review这份报告。人的价值在这里凸显判断与裁决Agent标记的“疑似文案生硬”设计师来判断是否真的不符合产品调性Agent检测到的“元素间距轻微不一致”测试工程师和设计师要共同判断这是否在可接受的设计公差范围内还是一个必须修复的Bug。发现“未知的未知”人在Review报告时可能会发现一些Agent任务定义之外但确实影响体验的问题。比如虽然Agent检查了加载性能但人在看录屏时发现某个次要图片加载失败导致的“裂图”图标非常丑陋影响了整体氛围。规则提炼与反馈基于人的判断我们可以做两件事修正本次结果将误报剔除将漏报的真实问题记录为Bug。迭代Agent的规则和任务定义如果某个Vibe问题例如“错误提示弹窗的阴影太深显得压抑”被多次提出并确认为问题我们就可以将其沉淀为一个新的、更具体的检查规则加入到后续的“视觉和谐度”测试任务中。比如规则可以细化为“检查所有弹窗组件的CSSbox-shadow属性其rgba()的alpha值不应低于0.2”。这个过程就是用人的专业判断和感性认知去训练和优化Agent的“Vibe感知”能力。闭环就此形成Vibe原则指导任务定义 - Agent执行并收集证据 - 人进行判断和裁决 - 提炼新规则反哺任务定义。4. 技术选型与落地路径当前能做什么构建这样一个理想的闭环需要强大的AI能力支撑。虽然完全自主的、通用的人工智能测试体尚属前沿但我们完全可以利用现有工具和框架以渐进的方式落地核心思想。4.1 Agent Skills 的技术实现雏形我们可以将现有的测试框架与AI服务结合构建“技能化”的测试模块。基础层可靠的浏览器自动化与控制Playwright是目前的首选。它支持多浏览器、多语言提供了强大的自动等待、网络拦截、设备模拟等功能并且录制生成代码的功能可以作为构建Skill的起点。其locatorAPI比传统的基于选择器的定位方式更健壮。Selenium依然稳定生态庞大但在处理现代Web应用的复杂交互和等待机制上需要更多配置。技能封装层Page Object Model的进化版传统的Page Object ModelPOM封装的是页面元素和基础操作。我们可以将其进化为“Task Object Model”或“Skill Object Model”。# 传统POM封装元素和基础操作 class LoginPage: def __init__(self, page): self.page page self.username_input page.locator(#username) self.password_input page.locator(#password) self.login_button page.locator(#login-btn) def login(self, username, password): self.username_input.fill(username) self.password_input.fill(password) self.login_button.click() # 进化版Skill封装业务意图和智能行为 class UserAuthenticationSkill: def __init__(self, context): # context 包含 page, config, AI_client 等 self.context context def perform_login(self, credential_hintNone): 执行登录技能。 :param credential_hint: 可选提示如‘使用测试账号’智能体可据此从配置或内存中获取凭证。 # 1. 智能定位登录入口 login_links self.context.page.get_by_text(登录, Sign in, exactFalse) if login_links.count() 0: login_links.first.click() else: # 尝试其他方式如分析URL或直接导航到已知登录页 self.context.page.goto(/login) # 2. 智能识别表单不依赖固定选择器 # 可以结合简单的CV或基于DOM结构的启发式规则 input_fields self.context.page.locator(input[typetext], input[typeemail], input[typepassword]) # ... 逻辑判断哪个是用户名框哪个是密码框 # 3. 智能填充可从环境变量、数据库或通过hint获取 username, password self._get_credentials(credential_hint) # ... 填充逻辑 # 4. 智能提交与验证 submit_buttons self.context.page.get_by_role(button, name登录) # ... 点击并验证登录结果检查URL变化、Cookie、页面元素等 def _get_credentials(self, hint): # 根据hint获取凭证的逻辑 pass这个UserAuthenticationSkill不再绑定于某个特定页面的特定元素它具备了“寻找登录入口”、“识别登录表单”、“完成认证”的意图和能力。“大脑”层集成AI服务进行决策与感知视觉分析可以集成OpenAI的GPT-4VVision、Google的Gemini Pro Vision或开源的LLaVA等具备视觉理解能力的模型。将页面截图传给模型提问“请分析这张截图中核心行动按钮如购买、注册在视觉上是否足够突出并给出理由。” 模型的回答可以作为Vibe Testing的依据。文本分析直接调用上述大语言模型的文本接口对抓取的页面文案进行分析“请判断以下产品文案的语气是专业、亲切还是活泼它是否与‘面向年轻群体的时尚科技产品’这一定位相符”任务规划对于复杂的探索性测试可以用LLM来将高级指令如“探索一下结账流程的边界情况”分解为一系列具体的Agent Skill调用序列。4.2 Vibe Testing 的落地从启发式清单到自动化检查初期Vibe Testing可以以“人工检查清单”的形式存在但我们可以逐步将其自动化。建立Vibe检查清单库团队共同维护一个Confluence或Notion页面列出所有关注的Vibe维度及其具体表现。例如维度视觉一致性[ ] 全站主要按钮主按钮、次按钮、危险按钮的圆角、阴影、字体大小是否一致[ ] 相同层级的标题H1, H2, H3字体、颜色、间距是否一致[ ] 错误状态输入框错误、操作失败提示的红色色调是否统一开发自动化检查脚本CSS审计写脚本扫描项目的CSS变量或样式文件检查核心设计Token如颜色、间距、字体的使用是否一致。这可以直接用静态分析工具完成。截图对比与差异检测使用pixelmatch、Applitools或Percy等工具在UI迭代时进行视觉回归测试。但这只是基础更进阶的是让AI分析截图差异判断是“合理的设计更新”还是“意外的视觉破坏”。交互性能监控利用Playwright或Chrome DevTools Protocol在自动化脚本中注入代码测量关键用户交互如点击、输入的响应延迟和动画帧率设定阈值。集成AI进行主观评估对于最难量化的“美感”、“得体性”定期如每轮测试或针对关键页面让AI智能体运行一遍并生成包含截图和AI评语的报告供人工复核。虽然AI的审美不一定完全准确但它能提供一个相对客观的、可重复的“外部视角”帮助发现团队内部可能因习惯而忽略的问题。4.3 一个简化的实践案例新闻文章页面的Vibe检查假设我们要为一个新闻客户端测试其文章详情页。步骤1定义Vibe任务任务1阅读氛围评估页面的排版是否利于长时间阅读字体、行高、对比度、段落宽度。任务2交互干扰检查页面非核心交互元素如浮动广告、推荐栏是否在阅读时造成过多干扰。任务3性能感知测量文章主体文字内容的渲染速度是否出现明显的“文字重排”或“布局抖动”。步骤2Agent执行使用Playwright打开文章页滚动到底部再回到顶部模拟阅读行为。执行任务1截取文章主体区域调用GPT-4V API提问“请从字体易读性、行间距舒适度、背景与文字对比度、单行理想字符数四个方面评价此截图的排版是否适合长时间阅读。以1-5分打分并给出简短理由。”执行任务2录制滚动过程的视频或分析页面布局识别出固定定位fixed或粘性定位sticky的非内容元素计算其占据的屏幕面积比例。执行任务3使用Playwright的page.evaluate()注入PerformanceObserver精确测量“文章主体容器”内文本布局稳定的时间点。步骤3人的反馈与迭代查看报告AI给排版打了4分理由是行高稍紧。人复核后同意这是一个可优化的点。发现新问题人在看AI截的图时注意到文章中的超链接颜色和下划线样式与正文对比不明显不易识别。这是一个AI任务定义时没涵盖的Vibe问题。迭代将“检查正文内链接的视觉突出性颜色、下划线”作为一个新的检查点加入到后续的“阅读氛围”任务中。同时可以考虑写一个简单的CSS分析脚本自动检查链接颜色与正文颜色的对比度是否达到WCAG可访问性标准。5. 面临的挑战与应对策略理想很丰满但落地之路必然充满挑战。提前认清这些挑战能帮助我们设定合理的期望和分阶段的目标。挑战1AI判断的准确性与可靠性AI特别是大模型存在“幻觉”胡言乱语、判断不稳定、以及审美/价值观可能与目标用户有偏差的问题。应对策略明确边界不追求AI做最终裁决而是定位为“高灵敏度的异常检测器”和“不知疲倦的初级评审员”。它的工作是“标记疑似问题”人的工作是“最终裁定”。提供上下文在向AI提问时提供尽可能详细的上下文和评判标准。例如不是问“这个设计好看吗”而是问“根据我们公司的设计规范附上规范链接或描述这个按钮的圆角大小、阴影强度和品牌主色的使用是否符合规范”集成专业工具对于能量化的部分如颜色对比度、性能指标优先使用专业的、确定性的工具如axe-core做可访问性检查Lighthouse做性能审计AI作为补充。挑战2初期投入成本与学习曲线搭建这样一个融合了传统自动化和AI能力的测试体系需要团队在工具链、脚本编写模式、甚至团队协作流程上进行变革。应对策略从小处着手不要试图一次性覆盖所有功能和Vibe维度。选择一个用户旅程中最关键、或最体现产品特色的核心场景例如电商的购物车结算页SaaS产品的仪表盘进行试点。复用现有资产将现有的、稳定的E2E自动化测试用例逐步重构为更模块化、意图驱动的Skill而不是推倒重来。培养复合型人才鼓励测试工程师学习基础的AI应用和Prompt工程同时让设计师和产品经理更多地参与到测试任务的定义和评审中打破角色壁垒。挑战3维护与演化成本业务在变UI在变AI模型也在变。如何保证这套体系不随着变化而迅速腐化应对策略任务定义与实现解耦任务定义要测试什么Vibe应尽可能用自然语言或领域特定语言DSL描述存储在独立的配置文件或知识库中。具体的Skill实现可以随技术栈迭代而更换。建立反馈闭环的流程必须将“人的评审与规则迭代”作为一个强制性的、轻量化的流程固化下来。例如每次AI测试报告生成后必须由至少一名测试和一名设计在24小时内完成复核并记录反馈。定期校准每隔一段时间如一个季度回顾所有AI标记的问题和人的裁定结果计算误报率和漏报率用以调整AI提问的Prompt或判断阈值。构建“Agent Skills Vibe Testing”的人机协作闭环其终极目标并非实现测试的完全自动化而是实现质量保障的全面智能化与人性化融合。它承认并尊重人类在审美、共情和复杂判断上的不可替代性同时将人类从重复、机械的验证劳动中解放出来让我们能更专注于设计测试策略、探索未知风险、以及理解用户更深层的体验需求。这条路很长但每一步都让我们离打造出真正令用户感到愉悦、顺畅、甚至拥有“灵魂”的产品更近一步。从我个人的实践来看哪怕只是开始将“Vibe”这个词引入测试讨论会都能显著提升团队对体验质量的共同关注度这本身就是一个巨大的价值起点。