针对 AI 说几句心里话 -- 拥抱 AI,世界不以个人的意志为转移

前言

今日休假,不加班。家里也没有什么事,算是难得的给自己放空大脑的机会。过去的1年多是AI爆炸的风口,我们本身就在AI领域人的人应该可以体会到这是多么疯狂的一个时期。所有人都在马不停蹄的奔跑,大家怕抢不到这个风口,怕被淘汰,甚至害怕自己的职位被AI取代掉。在我星球的小伙伴们, 可以从我更新的速度感受到现在的态势。

这里也宣传一下我得星球,知识星球里搜索: 测试开发之路。 更多AI测试教程会持续更新, 也会定期直播。

我对AI的态度

在几年前的时候,我虽然在AI领域中工作,但在当时我是反对AI应用在测试领域中的先锋了,早年间我还写过一个帖子开喷。

之所以开喷,是因为当时的AI真的不行。即便几年后GPT火了起来,也还是不行。直到去年年初,我开始重新调研cursor,用30分钟就写出了以前需要几天才能开发完的工具,那时我开始确定,AI要颠覆整个行业了。

cursor,codebuddy,codex,claude code, 这一年多以来我体验了业内半数的AI代码辅助工具。如今我已经把90%的工作交给了AI,完成了以前需要4,5个我才能完成的工作量。当然,指挥AI也是个不小的工作量。现在行业内疯狂的卷harness,也是为了能把指挥AI的成本降低。

老实说,我一开始内心里也有很大的抵触,毕竟自己练了很多年的东西说让AI给替代了,我心里不服,也不愿意接受。但世界总是不以个人的意志为转移。不接受现实的人,终将是走不远的。

大厂的人都在做什么

在我还没有进入大厂之前,我有个习惯,当我迷茫不知道要怎么发展的时候,就去找大厂的朋友聊天。我把大厂当风向标,摸着大厂的技术栈过河。他们卷什么,我就卷什么,因为我发现大厂总是比普通公司布局的更早,很多时候我们兴高采烈的去分享一些新的发现的事后,会发现这些是大厂内部已经布局了一年甚至几年的东西了。

当年测试行业还在争论技术无用论的的时候,大厂早就把集团员工测试岗位的招聘标准,焊死在技术工种这个标准上了。即便是在当年,你说你代码写的不好?那这辈子就别想跨进大厂的门槛了。

所以,AI编程大火是在今年开始的,但其实去年我们就已经大范围铺开AI辅助了,中心内部各种AI的实践分享就已经开展了起来。几乎所有人的看法都非常一致,这一波AI变革,会改变很多个工种的工作方式和人员去留。

在几个月的年前,公司就已经定下了 特种兵+AI 的发展路线,也就是我一直在说的,未来混得好的技术人员,是专家+Agent的工作模式。专家的行业经验,加上AI提升的工作效率,将进一步拉开普通人和专家的差距。我一直在讲,AI是需要人来指导的,AI是可以把人的能力数倍的放大的,但如果人的能力是零,那AI再怎么放大,还是零。这也是为什么现在好些人仍然觉得AI是扯淡的,是某些领导的KPI工程的原因。因为受限于工作内容的简单单一和个人能力的限制,这部分人是感受不到AI带来的变革的。甚至说,多年前坚持技术无用论的,可能也是这一波人。所以不要说AI了,这些同学甚至感受不到技术力带来的变革。

所以还在观望AI的同学,可以看看大厂的人都在做什么,尤其大厂的人用AI做了什么。

我现在的工作模式,已经变成了遇事不管决不决,都先去找AI的习惯。AI的提效,已经把以前我们想做但没有时间和成本去做的事情,变成了可实现的路径。 比如我们都希望有UI自动化,因为只有端到端的测试,才是最保险的,最贴近用户的。但我们都知道维护UI自动化的成本有多高,手工去写代码和xpath的成本,产品需求变化的成本,前端元素变动的成本。这些都让实践UI自动化变成了一件很难的事。 但现在呢?我给大家看一下我的的工作内容:

Clipboard_Screenshot_1778669699

我只需要像上图一样,把执行步骤输送给AI。AI就会帮我写UI自动化测试的代码,定位控件,启动浏览器测试,纠错等工作。而我们担心的前端控件会变化的事情,也最大程度上被避免了, 因为现在的控件定位,都是用AI来定位的。 如下:

// 在模型搜索框中输入
await agent.aiInput(
  "模型搜索弹窗中的搜索输入框",
  { value: modelName }
);

程序运行的时候,会动态截图,并传送给大模型,大模型接收到就会找到用户用自然语言描述的那个控件在哪个位置。这样,我不用像以前一样去费尽的写xpath,也不用担心前端程序重构后,xpath会变。 因为现在控件定位就不依赖xpath。而AI写出来的程序,是张这个样子的:

describe("模型广场 - 自定义 OpenAI 模型 (P0)", () => {
  const ctx = usePlaywrightWithAuth();

  test(
    "添加自定义 OpenAI 模型并在查看弹框中验证",
    { tags: ["private"], timeout: 180_000 },
    async () => {
      const svc = new ModelMarketService(ctx.page);

      // 生成唯一的模型名称(遵循命名规范:含 _qta 后缀,≤15 字符)
      const suffix = String(Date.now()).slice(-6);
      const modelName = `m_${suffix}_qta`; // 12 字符
      console.log("[Test] 模型名称:", modelName);

      // 从环境变量读取配置,避免硬编码敏感信息
      const modelId = process.env.MODEL_MARKET_MODEL_ID!;
      const apiUrl = process.env.MODEL_MARKET_API_URL!;
      const apiKey = process.env.MODEL_MARKET_API_KEY!;

      // Step 1-2: 导航到模型广场
      await svc.navigateToModelMarket();

      // Step 3-12: 点击 OpenAI Compatible 添加按钮,填写表单并提交
      await svc.addCustomOpenAIModel({
        modelName,
        modelId,
        apiUrl,
        apiKey,
        contextLength: 32,
        inputLengthLimit: 16,
        tag: "全模态",
      });

      console.log("[Test] 模型已添加,准备验证");

      // Step 14-16: 点击查看按钮,验证模型信息
      await svc.viewOpenAIModels();

      // 验证模型名称显示在查看弹窗中
      const exists = await svc.verifyModelExists(modelName);
      expect(
        exists,
        `模型"${modelName}"应该在查看弹框中显示`
      ).toBe(true);

      console.log("[Test] 模型验证成功 ✓");
    }
  );
});

可以看到,svc.addCustomOpenAIModel这个方法是一系列的控件操作的组合。我的手工case里并没有告诉他要抽象一个公共方法,但AI认为这个表单是可以封装成公共的方法的,所以它就这么做了。尽量避免了我们后续case多了,变成屎山代码的可能。 当然要让AI做到完全只需要一个手工测试用例步骤,就生成这样的UI自动化代码, 这需要编写一个很专业的skill来指导AI。 这也是我在上一篇文章讲的:万字长文:如何用 harness 的理念设计一个 AI 驱动的 UI 自动化工程 。

AI把编写和维护UI自动化测试的成本,磨到了一个十分低的程度,这让一切都变的有更大的可能。

而如果我想做性能测试,我只需要对调教好的Agent说明需要测试的场景, 它就会自动编写造数脚本和locust压测脚本,执行后给我一个汇总报告:

Clipboard_Screenshot_1778644515

Clipboard_Screenshot_1778644533

而如果我想做高可用测试(容灾测试),我仍然只需要跟我调教好的Agent表达这个意思,它就会:

Clipboard_Screenshot_1778644557

确定执行后,它会帮我到每个机器上安装故障注入工具:
Clipboard_Screenshot_1778644577

注入工具后,它会运行业务脚本(也是AI生成的)并检查测试情况:
Clipboard_Screenshot_1778644595

所以这就是我的工作状态, 每天不是在调教AI(写skill),就是在指挥AI干活。或者在去探索使用AI的更多的可能性。所以为什么我刚才说,现在我干的活是以前4,5个我才能干的。因为真正干活的是AI,而不是我。如果没有AI的能力, 就我们现在这个迭代速度和已经交付了上百个TO B 私有化客户的规模,就是累死我,我也测不完。

调整心态

早年的我,在一段时间里也有一个毛病 -- 世人皆醉我独醒。 但现在想想,我当时是挺可笑的。这些国内的顶级公司,在这个行业占据龙头位置十数年,有无数高学历,高认知的人才为之效力。我竟然会觉得我一个人的思考会比他们更强?这是何等狂妄的心态。而这种心态,往往会让我拒绝去接受那些在未来对我十分有帮助的知识。说白了,这就是一种认真缺陷。大厂们探索,实践并总结出有效的经验,我却弃之如敝履。

这种世人皆醉我独醒的心态,曾经让我走过不少弯路。而在AI浪潮刚开始的时候,我也仍然有这个心态。就像我上面说的,最开始的时候我不服,我不接受AI能强到那种程度。他们一定是骗人的,他们做这些事是为了忽悠领导,搞KPI工程,出来卖课割韭菜。

然后我就想起了我的这个毛病,我就在想,我凭什么认为那么多优秀的人都认为有价值的东西,是假的?尤其是在我还没有认真去调研的情况下,就下了这个定论?所以,去年的时候我去找到同事,开始请教,开始在群里找有经验的人,开始在B占看教程。仅仅几天时间,AI的强大就让我后悔 -- 我为什么没有更早的开始使用AI完成工作。

有些时候就是这样的,以前如大山一般的偏见,往往在极短的时间内就被轰碎。

我总说人一旦开窍了,进步就一日千里。而开窍的契机,往往先从心态的改变开始。正如我这篇文章的标题:世界不以个人的意志为转移。 不论我们再怎么否定一件事,这个世界不会因为我们不乐意,就改变它的运作法则。就如同当今的行业,不论我们有多不甘心,多不认可。特种兵 + AI 的模式,就会是未来的主流趋势。

所以调整心态,不要再跟大势对抗。我说的直白点,大家出来工作为了什么?不就是赚钱么。古人都说:学成文武艺,卖与帝王家。那整个测试行业,以前要卷的是技术,现在要卷的是AI。标准答案就在这摆着,难道大家就要这么白白错过这个上车的机会?俗话说的好,跟什么作对也别跟钱作对。即便内心可能是不认可AI的,但咱先进去把钱挣了好不好?我们是要顺应大势,进入主流公司拿高薪。还是坚持自己那可能不是很正确的真理吃土?我选择前者。 我没有那么多的理想主义,我出来工作,只为了挣钱。

结尾

我们的行业就是这样,逆水行舟,不进则退。不论已经积累了多少年, 永远都有新的技术栈在等着我们。不去拥抱最新的技术和潮流,就会被后浪拍死在沙滩上。现在的后浪技术一个比一个猛,底子一个比一个好,想法一个比一个大胆。今天想写这个文章,也是看到最近还有很多同学不认可AI,所以有感而发。就说道这里吧。 最后再宣传一下我的知识星球,更多的AI测试实践都会发表在星球里。

知识星球里搜索: 测试开发之路

posted @ 2026-05-13 11:57  高飞101  阅读(17)  评论(0)    收藏  举报