测试同学学AI|从“氛围编程”到专业编程

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


以下为作者观点:

氛围编程(Vibe Coding)是当下最热门的潮流,本文结合个人实践经验,介绍在AI编码领域获得的见解和技术。

在从事 AI 编程工作时,我深受 LINE Yahoo! 价值观“精益求精的团队”的启发。我自己的 AI 编程策略围绕着一个小型开发团队与 AI 代理紧密合作,以缩短开发时间并保持质量。凭借我强大的技术能力,我致力于设计和实施高度可靠的 AI 流程。

然而,“氛围编码”的诱惑力十足,只需几行提示就能快速搭建并运行原型,却常常导致技术债务和错误。

本文将介绍我从自身实践中总结出的八种避免“快而乱”的做法。通过AI友好的任务细分、上下文管理和超短测试循环,你可以将AI提升为一位纪律严明的队友,而不是任性的实习生,从而打造出快速、干净、持久的软件。

什么是Vibe编码?

想象一下,你是一位名叫 Tine 的开发者,被要求开发一款项目管理应用。你在 ChatGPT(或你最喜欢的 AI)中输入“用 React 编写一个项目管理应用”,不到一小时,你就完成了一个原型。就好像 AI 会自动执行所有操作一样。这就是“氛围编码”,一种快速开发、跟随灵感、无需仔细审查 AI 生成的代码的开发风格。

氛围编码

然而,事情并不总是一帆风顺。Simon Willison 将“氛围编码”定义为使用 LLM 构建软件,却未对结果进行全面检验。这会导致代码库结构混乱,并倾向于临时实现。当客户请求添加额外功能时,他们往往难以响应,因为他们不知道从何入手。

氛围编码并非坏事。它可以帮助你在短时间内创建原型,并且比传统编码效率高得多。正如 Steve Yegge 在《初级开发者的复仇》一书中指出的那样,氛围编码的效率可以“比传统编程高出五倍”(他声称)。随着编码代理和其他技术的出现,氛围编码可能会变得更加普及。[1] 然而,它也存在风险。根据CSET 2024 年 11 月的一份报告,大约一半的人工智能生成的代码包含错误或漏洞。过分强调速度而缺乏足够的基础知识可能会导致安全问题。Addy Osmani 在其著作《负责任的人工智能辅助开发实地指南》中强调,“没有质量,速度就毫无意义”,氛围编码不应成为质量低下的借口。[2]

那么,如何才能在保证质量的同时保持速度呢?答案是“利用人工智能进行专业开发”。

人工智能驱动的专业发展

接下来是一位名叫 Thanh 的开发者。和 Thanh 一样,他不急于求成,而是像 Scrum Master 一样规划和设计架构,并划分冲刺阶段。结果,两周后,他就完成了一款易于扩展和维护的稳健产品。他相信,任何有价值的东西都应该随着时间的推移而构建,即使一开始感觉需要时间。

基于人工智能的专业发展与“氛围编码”有何不同?重要的不仅仅是使用人工智能,更重要的是正确地控制和利用它。我总结了两种需要牢记的基本思维模式:

  • 信任流程:当人工智能嵌入清晰的流程中时,其效率最高。与其让人工智能为所欲为,不如为它提供一张可遵循的路线图。
  • AI 作为队友:AI 不是你的替代品,而是你的同事。就像队友一样,你们应该评估、调整输出,并共同努力。

Anthropic 首席产品官 Mike Krieger 也支持这一观点。他指出,未来开发人员将从编写代码转变为充当“AI 协调者”,协调 AI、设计系统并确保质量。在 Anthropic,项目经理与 AI 研究人员配对可将效率提高 10 倍,这体现了人类与 AI 协同工作的重要性 [3]。

下图展示了 AI 如何成为朋友:

AI团队结构图

在这个图中,你(产品负责人)提供方向,而AI负责定义需求、调研、编码等等。重要的是,这其中有一个反馈循环,你和AI共同评估和调整。这才是真正体现“AI作为队友”精神的。

8种做法

了解了思维模式之后,我们将介绍从“氛围编码”向AI专业开发的八种实践,分为软件开发中常用的四个阶段:准备、规划、开发和故障排除。

准备

准备就像盖房子的地基。如果地基不牢,整个房子就会倒塌。让我们先从两个做法开始。

实践1:多种AI工具的协同

不要依赖单一的 AI,而要构建一个管道,每个 AI 都有其特定的角色。例如:

  • 推理人工智能:创建需求、设计和实施指南
  • 互联网搜索人工智能:查找最新的框架更新和社区见解
  • Coding AI Agent:专注于编写代码

一个人工智能的输出会被用作下一个人工智能的输入,以确保一致性和质量。团队合作比个人实力更重要。Steve Yegge 也支持这一观点,他预测了“代理集群”和“代理舰队”的出现 [1]。

实践2:详细需求准备

需求是人工智能的路线图。如果路线图不清晰,人工智能的实施将面临诸多问题。与人工智能进行头脑风暴,像同事一样与其沟通,以发现初始需求中的差距和观点。我们将在未来的博客文章中更详细地解释这个详细的需求创建过程。Addy Osmani 也强调了清晰定义需求的重要性,并强调人工智能应该协助实施,而人类应该决定基本架构 [2]。

此阶段的思维模式是“准备是成功的基础”。不要着急,组建一个团队,明确你想要创造什么。

制备阶段图

规划

计划阶段是明确“做什么”的时间。在 Scrum 中,这相当于迭代计划。我们将介绍以下两种实践。

实践3:AI的任务划分

AI 最适合处理小型、独立的任务。请按照以下规则将其划分为“AI 友好型任务”:

  • 每个任务应该在 100-200 行内
  • 清除输入/输出
  • 减少对其他任务的依赖
  • 有测试用例可供验证

任务列表和实施计划应与源代码一起存储在一个文件夹中,以便编码代理能够获取上下文。Steve Yegge 警告说,分配大型任务可能会让代理“撞墙”[1]。

实践4:制定实施细则

为人工智能创建一本“内部手册”,即实施规则。定义编码约定、推荐模式和工作流程。清晰的人工智能规则能让你专注于业务逻辑,无需猜测。Addy Osmani 也建议标准化,并指出人工智能生成的代码在集成之前应始终进行格式化和调整 [2]。其理念是“结构赋能创造力”。良好的结构不会限制创造力,反而会鼓励创造力。

规划阶段图

发展

开发是你和AI将想法变成现实的阶段。以下是两个关键实践:

实践5:编辑-测试循环

编辑-测试循环是与AI合作最有效的方法。每个循环需要15-30分钟:

  1. 决定小增量(15-30分钟)
  2. 为该增量编写一个失败测试
  3. 让人工智能实现通过测试的代码
  4. AI自动执行测试
  5. 如果失败,AI就会分析并纠正,如果成功,它会审查并提交。

Addy Osmani 建议对 AI 生成的代码进行彻底测试 [2],Anthropic 的 Mike Krieger 提出了一个案例研究,其中 AI 审查其他 AI 的代码,而人类仅执行验收测试 [3]。

开发阶段图

该图展示了如何在短循环中管理进度。其思维模式是“小规模迭代,持续反馈”。不要让人工智能负担过重,一步一个脚印。

实践6:情境管理

语境是AI的“记忆”。如果语境过长,AI就会变得“困惑”,前后矛盾。如何应对:

  • 通过@reference添加文件
  • 当你有 50-100 条消息时开始新的聊天
  • 经常同步代码库
  • 检查点 Git 提交
  • 会议结束后创建摘要

上下文管理图

故障排除

人工智能并非完美无缺。有时它可能会卡住,无法解决问题。不必惊慌,只需遵循以下两条做法:

实践7:问题报告系统

当AI遇到问题时,让它生成一份问题报告,其中包含状态、错误消息和尝试的解决方案。将其传递给另一个搜索AI,以获得新的视角。Addy Osmani还建议迭代使用,在某些情况下,甚至可以放弃现有的AI,自己编写一个。[2]

实践8:情境重置策略

当事情变得过于混乱时,你应该“重置”。重置是AI误入歧途时的紧急刹车。一个好的经验法则是,当对话超过100条消息、幻觉(AI产生错误输出或错误信息的现象)增加,或者出现无限循环时。有效的重置方法是在问题报告中总结你的进度,并从一个新的、清晰的上下文开始。

故障排除阶段图

思维模式是“系统胜过随机”。不要只是随意行事,要记录、分析、咨询并采取结构化的方法。

信任过程

请参阅“信任流程”图表,了解使用 AI 的整个流程的概述,涵盖从准备到故障排除的所有内容。

信任流程概览图

如图所示,它以流程为中心,而非以人工智能为中心。在一个清晰的框架内,人工智能仅仅是一个执行工具。上下文被保存并重用,以确保人工智能始终能够在充足的信息下工作。Mike Krieger 也在 Anthropic 中指出,尽管人工智能生成了 90-95% 的代码,但瓶颈已经转移到特性决策和合并队列,并主张需要重新设计流程 [3]。

结论

我们已经进入软件开发的新时代,人工智能不再是一个被动的工具,而是编写每一行代码的合作伙伴。让我们回顾一下我们多年来是如何合作的。

在创建开发团队时,我们不会只是召集人员说:“我想让你们做一些有趣的事情。” 相反,我们会将合适的人分配到合适的岗位。UI 是前端,API 是后端,而基础设施是 DevOps。我们明确定义输入和输出,设计师为前端提供模拟,前端为后端提供 API 规范。最重要的是,我们会尽早审查每位成员的成果。没有人可以在没有反馈的情况下“自由创作”,无论是通过代码审查、每日站立会议还是冲刺演示。

与AI合作也是如此。你不能把所有事情都交给AI。你需要仔细地引导它完成整个过程,就像引导新开发人员一样,并调整每个AI的输出,就像审查同事的代码一样。“AI团队”的每个成员都应该有明确的角色和输入/输出,他们的结果应该在进入下一阶段之前经过严格的审查。通过正确的方法,AI可以在其专业领域比人类更快地产生更高质量的输出。而当每个“AI成员”都发挥效力时,整体项目产出将显著提升

为了有效协作,请牢记两种心态:信任流程,并将AI视为队友。信任流程,并投入时间进行规划、测试和持续改进。将AI视为真正的同事,分享目标、提供反馈并共同解决问题。

AI作为队友

人工智能的成功并非取决于你编写最佳代码的能力,而是取决于你的团队和流程管理技能。尝试这八种做法,你会发现你不仅可以更快地编写代码,还能更好地理解问题并更有效地解决问题。正如 Steve Yegge 所说:“人工智能不需要证明它比你更聪明;它需要让你更聪明。” [1] 他还预测,开发人员的角色将转向管理“代理舰队”,而那些无法适应的人将被淘汰。尤其是那些回避人工智能的开发人员,他们可能会被那些迅速拥抱人工智能的人甩在身后(Sourcegraph 博客)。你准备好成为人工智能协调者,来协调整个人工智能生态系统了吗?

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

​​​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值