yum -y install gcc gcc-c++ autoconf automake make
你写清楚“第一步读什么、第二步拆什么、第三步输出什么格式、遇到异常怎么处理”,Agent才知道该怎么干活。今天这篇文章,我从零拆一个测试人最常用的Skill——测试用例生成。看完你就能自己写第一个。 一、为什么测试Agent总是“落不了地”?过去一年,很多团队都在尝试用AI做测试。但真正跑起来的没几个。问题出在哪?不是模型不行,是你给它的东西,根本不是一个“能力单元”。 用大白话说:Skill就是把“资深测试工程师怎么做一件事”的完整经验,封装成一个Agent能随时调用的能力包。它和MCP的区别是什么? MCP给Agent提供手,Skill给Agent提供操作手册。没有Skill,Agent有手也不知道怎么干活。三、技能包如何让测试Agent真正落地? 测试人的经验,值得被封装成Skill。你今天花30分钟写一个“测试用例生成”的Skill,以后每一个项目都能复用。别只写提示词了。写一个SKILL.md,让Agent真正替你干活。
文件发生修改后,根据预设规则触发对应的测试;测试通过,Agent就继续执行后续任务;测试失败,Harness将失败结果重新送回模型,让Agent进入下一轮修复循环(RepairLoop)。 这样才能兼顾验证强度和Agent的执行效率。失败结果的反馈回路测试进入AgentLoop后,并不代表测试跑起来就够了。对于Agent而言,测试结果本身也是上下文输入。 当测试结果开始参与控制Agent的下一步动作时,这些反馈本身是否可靠,也成了Harness需要管理的问题。测试本身的可信度还有一个更棘手的问题,就是Agent可能同时拥有业务代码和测试代码的写权限。 Agent可以为新功能补充测试,但关键的验收测试、回归测试,或是隐藏测试都由独立的Harness和CI管理。 如果Agent修改已有测试文件,则触发额外检查,判断是否删除断言、增加Skip、扩大Mock范围,或者放宽原有测试条件。变异测试也可以用来检查测试本身是否足够有效。
另外,由于 Jenkins Agent Pod 配置的是软亲和,当 CI 节点资源不足时,也可以调度到其他节点。 2. 使用 Kubernetes 提供的动态 Pod 作为 Jenkins Agent 用于构建流水线,具体配置可以参考顶部的文档链接。 2.5 测试用的 Pipeline Demo Demo 采用的是一个 Java 项目,克隆代码、执行单元测试、镜像构建。由于镜像内容都一样,这里就没有推送镜像,同时也减少了外部依赖。 测试策略 为了更好的测试 Jenkins 在 Kubernetes 上执行流水线的性能,在上面的配置中,我提供了足够 400 条流水线并发执行的资源。 在执行测试之前,执行 20 次流水线对节点进行预热。 主要进行五组测试,分别为 50、100、200、400、800 条流水线并发。
在某技术社区的测试专场,一位有十年经验的测试总监分享了他们团队的实践:"我们引入测试智能体后,三个月内测试效率提升了5倍,团队规模从15人缩减到6人。"台下掌声雷动,但散场后我听到两种截然不同的声音。 这个场景折射出当下测试行业的核心困惑:从Prompt工程到Agent编排,再到测试智能体,这些新技术究竟是测试人员的机会,还是威胁?问题的本质不在于技术本身,而在于我们如何理解这场变革的底层逻辑。 某金融公司的测试架构师老王,在使用测试智能体时,工作方式发生了根本改变。 某金融公司的测试总监王总,从一开始就将智能化定位为"组织能力建设"。他推动建立了"测试智能体中台",将团队积累的Prompt模板、Agent编排模式、决策规则全部沉淀到平台。 帮助建立智能化测试知识库,让团队在你的经验基础上持续进化,这是从个人贡献者到能力建设者的跃迁。真正的测试工程师,从来不是"测试用例的编写者",而是"产品质量的守护者"。
测试组编写测试用例并对小程序进行各种边界测试。项目一般的成员构成与工作流程如图2-xx所示。图2-xx 提需求到发布小程序的流程为了便于管理,小程序平台给不同角色定义了7种权限,如表2-xx所示。 或者以用户测试环节,验证体验和设计评估迭代成果,在不断的更新和迭代中打磨小程序体验。以下是关于进行用户体验测试的一些建议:(1)用户体验测试,可以在设计、开发、测试等全部阶段使用。 并在测试时,使用户处于真实的场景和时间下。(5)设计开放性的问题让用户回答。不用带有主观性的询问语言,引导用户回答。(6)在用户测试过程中,需要全程做好记录。 (3)在测试阶段不要打开小程序的调试模式进行测试,因为在调试模式下,微信不会校验域名合法性,容易导致开发者误以为测试通过,导致正式版小程序因为遇到非法域名无法正常工作。 首先,在正式灰度推送新版本基础库前,内部有严格的自动化测试流程,保证已有的测试用例全部能通过,同时还会在带有最新版本库的测试机上运行访问量较高的一些小程序并检测他们是否存在一些白屏等异常现象。
多模态 Agent 如何规划 UI 测试路径 文章封面 UI 自动化的难点,表面看是脚本维护成本高,深层看是测试设计无法持续跟上系统变化。 多模态 Agent 的价值,不是把脚本换一种写法,而是让系统具备持续感知页面、动态规划路径、执行后反馈修正的能力。目标也从“写自动化脚本”升级为“生成可回放、可审阅、可纳管的高质量测试用例”。 因此,真正要解决的是三个问题: 机器能否自己看懂页面当前状态 机器能否自主决定下一步测什么 生成的路径能否直接回放并纳入测试资产 Agent 测试闭环:感知、决策、执行、反馈 多模态 Agent 的核心思路 Agent 没有人类测试者的先验偏见,因此可能执行一些人认为“不会有人这么干”的操作。 第三,概率与确定性必须分层。模型只适合做不可判定的事;凡是可判定的,都应该通过规则、标准和工程机制固化下来。 结语:让自动化从回放工具变成有记忆的探索系统 基于多模态 Agent 的 UI 自动化路径规划,关键不在于让模型替人点页面,而在于重构测试设计方式:人定义目标,系统感知状态,Agent 规划路径,工程约束负责校验
当业务需要新增“信用卡分期”功能测试时,测试工程师不需要从零写脚本,而是: 定义测试场景的DSL描述 Agent自动识别需要哪些能力(创建账户、绑定信用卡、发起分期、验证账单) Agent调用对应的MCP ,Agent自动重新组合测试流程,所有场景无缝适配。 智能化的能力编排 Agent不是简单执行预定义的脚本,而是根据测试意图动态规划执行路径。 例如,测试“用户购买VIP会员”这个场景: Agent理解测试意图:验证购买流程的完整性和支付后的权益生效 Agent查询可用的MCP能力:账户创建、商品浏览、下单、支付、权益验证 Agent生成执行计划 拥抱智能编排尝试用Agent来描述测试意图,而不是手写详细的执行步骤。让机器处理执行细节,人专注于测试策略和质量目标。 4.
前面在kNN算法中,为了评估训练的kNN算法的好坏,我们将数据集划分为训练集合测试集两个部分: 训练集,训练拟合模型; 测试集,评估训练好的模型。 在kNN分类中,我们将在训练集上训练好的模型,在测试集上进行预测,得到的测试结果与测试集中已知的样本标签(监督学习)进行对比,统计样本分类正确的占比作为评估kNN分类算法好坏的指标。 很显然,可以将优化的目标函数作为衡量标准,但是此时需要注意的是,衡量标准时候所用的是测试集上的样本。 ,总而言之,上面的衡量标准和测试集的数量m有关的。 针对上面这个缺点,我们只需要进行简单的改进即可,也就是让我们衡量标准测试样本的数量无关,只需要除以测试集样本数量即可: ?
Count the Sheep Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 686 Accepted Submission(s): 295 Problem Description Altough Skipping the class is happy, the new term still can drive luras anxi
业务链路驱动的 Web UI Agent 测试 文章封面 Web UI 测试的重点可以从“按脚本点完页面”转向“在真实页面状态下完成并验证业务目标”。 从脚本自动化转向业务链路 传统 UI 自动化常沿着测试范围、测试点、环境与数据、脚本编写、调试、执行、缺陷回归、页面变更后的维护逐步推进。 业务链路驱动把更稳定的业务目标和验收条件放在中心,由 Agent 根据页面观察推进执行;人仍负责质量判断与高风险决策。 五层架构与执行闭环 系统按职责分为任务接入、任务调度、Agent 编排、浏览器执行、数据与结果五层。 感知、规划、执行、验证与运行时护栏构成的执行闭环 运行时护栏先于自主恢复 Agent 可以提议操作,但高风险写操作必须经过确认。
有个做了六年自动化测试的同事,最近跟我吐槽了一件事:他给一个AI Agent写了一条一模一样的测试指令,早上跑一遍,下午跑一遍,结果居然不一样。 测试用例的全部意义,就建立在这条公理之上——因为结果是确定的,我们才能写出断言,才能判断"通过"还是"失败"。 但AI Agent打破了这条公理。 四种正在被验证有效的新方法论 第一种,对抗性测试。既然Agent会自主决策,测试的重点就要从"验证正确路径"转向"主动构造刁钻场景,看Agent会不会被带偏"。 当Agent做出一个决策,测试人员需要有能力回溯"它为什么这么选",而不只是看结果对不对。这要求测试工程师学会阅读Agent的思考链路和调用日志,把"黑箱"尽可能变成"灰箱"。 对想要入门的测试工程师,一条相对务实的路径是:先别急着重写整套测试框架,而是挑一个团队里已经在用的AI Agent功能,从"行为一致性评测"入手——设计十组语义相近但表述不同的输入,跑上二三十次,记录每次的决策路径和最终结果
一、Agent评测的本质:为什么它比传统软件测试难10倍?在讨论"怎么做"之前,先搞清楚"为什么难"。Agent评测的难度不是量的增加,而是质的变化。 测试的核心是穷举路径、覆盖分支,追求80%以上的代码覆盖率。但Agent是概率性系统——给定输入A,可能得到B1、B2、B3中的任意一个,且每个都可能是"正确"的。这直接打碎了传统测试的根基。 在传统软件测试的思维下,200条比50条好,1000条比200条好。但在Agent评测中,这个逻辑是错的。4.1为什么20-55条就够了答案藏在Agent的错误模式中。 这种假设冲突在单独测试时看不出来。组件测试的盲区3:错误放大效应。 (契约测试)——你不需要启动整个系统来测试两个服务之间的交互,只需要验证它们的接口是否兼容。
二、建立Agent测试金字塔Agent测试最容易犯的错误是把所有测试都做成端到端测试。这样做成本高、执行慢,而且一旦失败,很难定位问题。 一个成熟的Agent架构应该尽可能把确定性逻辑从模型中拿出来。四、第二层:ToolCalling测试ToolCalling是Agent测试的核心。 久而久之,测试集会成为Agent系统真正的“经验数据库”。十三、回归测试不能只测试新增功能Agent最大的特殊性之一,是修改A可能影响B。 十七、PromptInjection和安全测试必须进入Agent测试体系Agent一旦拥有工具,就不再只是“聊天机器人”。 这是Agent测试从Demo走向生产的关键一步。
Agent实际上在做:感知→决策→行动→观察→再决策。这也是Agent测试和传统接口测试最大的区别。二、为什么传统测试方法不够用了? 进一步可以计算:路径覆盖率节点覆盖率工具覆盖率异常路径覆盖率九、Agent测试最容易忽略的问题:死循环这是传统接口测试和Agent测试之间一个非常明显的区别。 死循环十、Agent测试还需要关注“越权调用”这是企业真正落地Agent后非常重要的一类测试。 :Agent权限与安全测试。 十三、Agent测试和传统自动化测试最大的区别可以简单总结:展开代码语言:TXTAI代码解释传统自动化测试输入↓固定流程↓接口↓断言而:展开代码语言:TXTAI代码解释Agent测试用户目标↓Agent
Agent场景怎么做灰度发布和A/B测试又是一道面试题刨出来的思考前言刷到一道题:Agent场景下如何做灰度发布和A/B测试?和传统软件的灰度有什么区别? Agent场景下,这两个前提其实是不成立的。Agent的"版本",不是改代码才算传统软件发版,改的是代码。Agent呢? Agent呢?它返回200,语气流畅,但是内容是错的。错误率这个传统灰度的核心指标,在Agent场景是失效的。那现在看什么? 大概这几类:任务完成率:任务到底完成没有用户负反馈:点踩、重新生成、中途放弃人工抽检:抽样看输出,灰度初期量小,人还看得过来离线评估:拿固定评估集先跑一遍,LLM-as-judge或者规则打分,当回归测试用成本和延迟 A/B测试的区别在哪传统A/B:切流量,跑两周,看转化率,统计显著就选哪个组。Agent的A/B有几处不一样:目标从"bug少"变成"效果好"。传统灰度是选没异常的版本,Agent是选答得更好的版本。
最近,AIAgent在测试领域越来越受到关注。从生成测试代码,到操作浏览器执行流程,Codex这类AIAgent已经能够参与越来越多测试环节。 很多人开始思考:既然AI已经可以自己写测试、跑流程,是不是回归测试也可以完全交给AI?我的看法是,不建议把回归测试完全交给AIAgent。原因很简单,会操作网页和做好回归测试,并不是一件事。 Agent每次执行的路径可能不一样,它会根据自己的判断临场应变。做探索性测试没问题,但作为回归基线,结果无法复现,你没法说清这次通过到底是产品没问题,还是AI这次运气好。第二,失败归因困难。 Agent跑完就结束了,用例没有积累成可编辑的资产。页面一改版,你无法定位去修,只能让AI重新跑一遍试试,这本质上是在反复重新执行,而不是在维护一份测试资产。第四,断言不明确。 回归测试真正需要的是可维护资产回归测试的核心价值,是把真实操作沉淀成可编辑、可回放、可批量执行的测试用例,而不是依赖一次性的临场发挥。
这意味着移动端测试正在从:人写脚本→脚本操作手机逐渐走向:人描述测试目标→Agent自己规划→操作真机→分析结果。 因为传统UI自动化里面:测试流程是人提前写进代码里的。而Agent测试里面:流程可以在运行前由Agent根据目标动态生成。 它不是:展开代码语言:TXTAI代码解释AI→写代码→人运行而是:展开代码语言:TXTAI代码解释AI↓直接驱动测试设备↓执行测试第四步:生成诊断报告测试完成以后,Agent并不是只告诉你:测试结束。 而是可以继续整理执行过程中的:测试步骤执行结果指标数据截图Logcat异常信息原始数据最终输出结构化测试报告。这意味着:测试计划、测试执行、证据采集和测试报告开始被串进同一个Agent工作流里。 这两个结合起来以后,AIIDE才更像一个真正的移动端测试Agent。
调用接口=getApprovalsByDate’]),再比对Agent实际决策链; 2)上下文保真度测试:注入带噪声的历史对话流(如插入无关闲聊、错别字、中英文混杂),量化关键实体(人名、单号、日期)在 团队引入‘混沌智能体测试框架(CAIT)’: - 在Agent推理链关键节点(如LLM调用、向量检索、工具回调)注入可控延迟/超时/返回错误; - 构建‘策略漂移检测器’:持续比对Agent在相同输入下不同时间窗口的决策输出分布 Model生成带振动模糊/强眩光的合成图像),用于大规模边缘场景压力测试; - 顶层:建立‘决策-动作-结果’全链路追踪:当Agent判定‘焊点气孔超标’->触发抓取指令->机械臂执行->高清复检图像回传 未来半年,我们观察到三大趋势正在成型:(1)‘测试即提示工程’:用高质量测试提示词(Test Prompts)驱动Agent自检;(2)‘可解释性测试优先’:将Attention可视化、推理链溯源作为准入必检项 ;(3)‘测试资产即智能体’:将测试用例本身封装为可调度的验证Agent,参与CI/CD流水线自治巡检。
然而,一个严峻现实是:93%的企业在智能体上线前缺乏系统性测试方案(2024年信通院《AI Agent工程化白皮书》)。 二、智能体测试的四大核心挑战 1. 路径不可穷举性:一个中等复杂度Agent在真实场景中可能产生超10^5种执行路径(含分支、循环、重试、工具切换),远超传统流程图测试覆盖能力; 2. 契约(输入参数约束、输出字段必选/可选、错误码映射表),使用OpenAPI Spec自动生成契约测试用例,并注入网络延迟(500ms±200ms)、空响应、字段乱码等故障,验证Agent是否具备契约容错能力 该层使某政务热线Agent的越狱攻击拦截率从61%提升至99.2%。 结语:测试即智能体的第一份‘行为说明书’ 智能体测试的本质,不是证明它‘能做什么’,而是刻画它‘在什么条件下以何种方式做什么’。 未来半年,我们预计三大趋势将重塑测试实践: ① 测试即代码(Test-as-Code)与Agent开发流水线原生集成; ② 基于强化学习的自演化测试用例生成器(如Google的AgentFuzzer)开始商用