news 2026/7/21 18:37:09

一个测试项目改成 AI 流程后,最难的部分完全变了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个测试项目改成 AI 流程后,最难的部分完全变了

聊《一个测试项目改成 AI 流程后,最难的部分完全变了》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。

摘要

先把这篇文章的目标说清楚:看完之后,你应该能判断这件事值不值得做,以及从哪里动手。

摘要:很多人以为测试转大模型是换个工具链,其实是在换一种思维。当应用从“能跑”走向“可用”,真正的考验不是 Prompt 怎么写,而是权限隔离怎么落,以及全链路日志怎么追踪。本文结合真实项目复盘,拆解 AI 测试工程师在工程化阶段的真实能力跃迁路径。

---

目录

1. 测试岗位的隐性重构:从找 Bug 到管风险
2. AI 辅助测试:别迷信“自动生成”,要看“可解释性”
3. 自动化用例生成:Prompt 工程背后的逻辑陷阱
4. Agent 测试框架:权限与状态管理的深水区
5. 质量评估:当黑盒变成灰盒,我们测什么?
6. 总结:给测试同学的三条转型建议

---

1. 测试岗位的隐性重构:从找 Bug 到管风险

去年这个时候,大家还在讨论怎么用 Selenium 或者 Playwright 做 UI 自动化。今年再看,情况变了。很多团队开始尝试把 AI Agent 接入到测试流程中,甚至让 LLM 直接参与生成测试用例、执行回归测试。

但我观察到一个很反直觉的现象:工具越智能,测试人员的焦虑感反而越强。

为什么?因为传统的测试关注的是“确定性”——输入 A,期望得到 B。而大模型本质上是概率性的,同样的 Prompt,可能这次输出正确,下次输出偏差,甚至出现幻觉。对于测试工程师来说,这意味着你需要从单纯的“验证功能”转变为“管理风险”。

在最近的一个金融类 AI 应用项目中,我们遇到了一个典型场景:LLM 生成的报告内容完全符合业务逻辑,但在涉及敏感数据时,它竟然把内部客户 ID 拼接到输出中。这不是传统的 Bug,这是权限越界。

这时候,测试的价值不在于发现这个 Case,而在于在设计测试策略时,是否预判到了这种“权限黑洞”。如果你只会点点点,或者只会写自动化脚本,那你在 AI 时代确实容易被替代。但如果你懂得如何设计“权限隔离测试”和“可观测性监控”,那你就是团队不可或缺的质量守门员。

2. AI 辅助测试:别迷信“自动生成”,要看“可解释性”

很多同行一听到“AI 辅助测试”,脑子里第一个画面就是:写个 Prompt,让 AI 给我生成 1000 条测试用例,然后我负责审核。

这种做法效率确实高,但隐患极大。我在实操中发现,AI 生成的用例往往集中在“Happy Path”(正常流程)和常见的边界值,而对于复杂的业务组合逻辑,AI 的表现并不理想。

更重要的是,AI 生成的用例缺乏“可解释性”。当测试失败时,你很难判断是 AI 的逻辑错了,还是代码本身的 Bug。

我的建议是:

1. 利用 AI 做“补充”而非“主导”:让 AI 生成基础的功能测试用例,但核心的业务逻辑测试,必须由人来设计。
2. 关注“负面用例”的生成:试着让 AI 思考“什么情况下这个功能会出错?”比如注入攻击、并发冲突等。AI 在这些方面的发散性思维有时比人更强。
3. 建立“用例有效性”评估机制:不要盲目信任 AI 生成的用例。抽样执行,人工Review,逐步建立对 AI 生成质量的信心阈值。

3. 自动化用例生成:Prompt 工程背后的逻辑陷阱

说到自动化用例生成,不得不提 Prompt Engineering。很多人觉得,只要 Prompt 写得足够详细,AI 就能生成完美的测试代码。

事实并非如此。我在测试一个电商推荐算法时,尝试用 AI 生成对应的单元测试。起初,Prompt 是这样的:

# 错误的 Prompt 示例 "请为这个推荐函数生成单元测试,要覆盖所有情况。"

结果生成的代码不仅覆盖率低,而且逻辑混乱。后来我调整了策略,采用结构化 Prompt,并引入了Few-Shot Learning(少样本学习):

# 改进后的 Prompt 结构 """ 角色:资深测试工程师 任务:为以下 Python 函数生成 pytest 单元测试 函数代码: {function_code} 要求: 1. 覆盖正常输入、边界输入、异常输入 2. 每个测试用例需包含断言和预期结果说明 3. 特别关注空列表、None 值、超大数值等边界情况 4. 输出格式为标准的 pytest 代码块 """

此外,我还引入了Self-Correction机制:让 AI 先运行生成的测试代码,如果报错,将错误信息反馈给 AI,让它自行修复。这个过程虽然慢了一点,但显著提高了生成代码的可运行性和覆盖率。

关键点: 不要指望一次性成功。要把 AI 生成用例当作一个迭代过程,通过反馈循环来提升质量。

4. Agent 测试框架:权限与状态管理的深水区

这是本次复盘的重头戏,也是大多数团队在从 Demo 转向生产环境时最容易踩坑的地方。

现在的 AI 应用大多基于 Agent 架构,比如使用 LangChain 或 AutoGen。Agent 的特性是自主性和工具调用。这就带来了两个巨大的测试难题:

4.1 权限隔离(Permission Isolation)

Agent 通常拥有访问数据库、调用 API 等权限。如果权限控制不当,Agent 可能会执行未授权的操作。例如,在一个客服 Agent 中,普通用户只能查询订单状态,但如果 Prompt 注入攻击成功,Agent 可能会执行“删除订单”的操作。

测试策略:

  • 最小权限原则测试:严格限制 Agent 可访问的工具和数据范围。在测试环境中,模拟不同角色的 Agent,验证其是否只能执行被授权的命令。
  • Prompt 注入防御测试:构造恶意的 Prompt 输入,测试 Agent 是否能识别并拒绝执行危险操作。

4.2 状态管理与一致性

Agent 在执行多步任务时,需要维护上下文状态。如果状态管理不当,可能会导致任务执行错误或资源泄露。

测试策略:

  • 状态回溯测试:在 Agent 执行过程中,定期保存状态快照。当任务失败时,能够快速回滚到上一个稳定状态。
  • 并发冲突测试:模拟多个 Agent 同时访问同一资源的情况,验证是否存在竞态条件或数据不一致问题。

5. 质量评估:当黑盒变成灰盒,我们测什么?

传统的软件测试,输入和输出都是明确的,属于“白盒”或“黑盒”测试。但 AI 应用的输入是自然语言,输出也是自然语言或复杂决策,这是一个“灰盒”过程。

我们无法直接断言“输出是否正确”,因为同一个问题可能有多个合理答案。因此,质量评估的重点从“功能正确性”转向了“结果合理性”和“过程可观测性”。

5.1 结果合理性评估

  • 人工评估(Human Eval):这是金标准。组织领域专家对 AI 的输出进行打分,评估其准确性、完整性和安全性。
  • LLM-as-a-Judge:利用另一个强大的 LLM 来评估当前 Agent 的输出质量。这种方法效率高,但需要注意评估者 LLM 的偏见问题。

5.2 过程可观测性(Observability)

这是 2026 年 AI 应用测试中最被低估的一环。由于 LLM 的非确定性,我们需要记录每一次推理的详细过程,包括:

  • Trace ID:唯一标识每次请求。
  • Token 消耗:记录每次请求的 Token 数量,用于成本分析和性能监控。
  • 中间步骤日志:记录 Agent 在思考过程中调用的工具、获取的信息、做出的决策等。
# 简单的 OpenTelemetry 集成示例 from opentelemetry import trace tracer = trace.get_tracer(__name__) def process_user_request(user_input): with tracer.start_as_current_span("agent_process") as span: span.set_attribute("user_id", user_input.get("id")) # 模拟 Agent 推理过程 thought_process = llm_chain.run(user_input) span.add_event("thought_process", {"content": thought_process}) result = execute_tool(thought_process) return result

有了这些日志,当出现质量问题时,我们才能快速定位是 Prompt 的问题、模型的问题,还是工具调用的问题。

6. 总结:给测试同学的三条转型建议

从传统测试转向 AI 测试,并不是要你去学深度学习算法,而是要你掌握工程化的思维和新的质量保障手段。

1. 拥抱不确定性,建立新的评估体系:不要再用传统的“通过/不通过”来衡量 AI 输出。学会设计模糊匹配、语义相似度、人工抽检等多维度的评估指标。
2. 深耕权限与日志,构建安全防线:Demo 跑通不代表能上线。重点研究如何防止 Prompt 注入、如何实施严格的权限隔离、如何构建全链路的可观测性。这是你区别于普通测试人员的核心竞争力。
3. 提升 Code 能力,融入研发流程:AI 测试不再是独立的 QA 环节,而是 DevOps 的一部分。你需要能够阅读和理解 LLM 应用的代码,编写自动化测试脚本,甚至参与 Prompt 的代码化管理(Prompt as Code)。

AI 不会取代测试工程师,但会用 AI 的测试工程师,一定会取代不用 AI 的测试工程师。希望这篇复盘能帮你理清思路,找到适合自己的转型路径。

总结

本文完成了关键概念、工程实践和落地建议的梳理。

资料展示

下面是我整理的AI大模型学习资料和工具包预览,适合收藏后按主题逐步学习。

如果你想看完整资料目录,可以在评论区留言「资料」;也欢迎告诉我你更关注AI大模型里的哪类内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/20 17:01:58

终极教程:如何让老旧Mac免费升级到最新macOS系统

终极教程:如何让老旧Mac免费升级到最新macOS系统 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为心爱的老款Mac无法安装最新系统而烦恼吗&a…

作者头像 李华
网站建设 2026/7/20 16:59:38

MySQL 8.0.35 主从复制搭建笔记(传统位置点主从复制)

基于二进制包最小化安装,传统位置点主从复制 主库:192.168.195.141从库:192.168.195.1421. 环境信息项目主库 (Master)从库 (Slave)IP192.168.195.141192.168.195.142OSKylin Linux Advanced Server V10 (Halberd)Kylin Linux Advanced Serve…

作者头像 李华
网站建设 2026/7/20 16:55:54

继电器工作原理与驱动电路设计实战指南

1. 继电器基础认知与核心价值第一次拆解老式机械继电器时,那个"咔嗒"的吸合声让我记忆犹新。这种用微小电流控制大功率电路的电磁开关,至今仍是工业控制领域的"老将"。继电器本质上是通过电磁铁原理实现的电路隔离控制器——当线圈通…

作者头像 李华
网站建设 2026/7/20 16:54:09

【Linux 系统】进程终止、退出状态与进程等待

父进程创建子进程以后,不只是让子进程完成任务就结束了。父进程还需要知道:子进程是正常完成,还是被信号终止;如果正常结束,结果是否成功;最后还要把内核保留的子进程终止信息回收掉。 这一过程连接了进程终…

作者头像 李华
网站建设 2026/7/20 16:53:57

Drain3训练vs推理模式:构建生产级日志模板匹配系统

Drain3训练vs推理模式:构建生产级日志模板匹配系统 【免费下载链接】Drain3 A robust streaming log template miner based on the Drain algorithm 项目地址: https://gitcode.com/gh_mirrors/dr/Drain3 Drain3是一款基于Drain算法的强大流式日志模板挖掘工…

作者头像 李华
网站建设 2026/7/21 17:20:25

Social-Auto-Upload:跨平台Cookie持久化架构与异步验证机制设计

Social-Auto-Upload:跨平台Cookie持久化架构与异步验证机制设计 【免费下载链接】social-auto-upload 自动化上传视频到社交媒体:抖音、小红书、视频号、tiktok、youtube、bilibili 项目地址: https://gitcode.com/GitHub_Trending/so/social-auto-upl…

作者头像 李华