V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
iorilu
V2EX  ›  程序员

现在有人用 TDD 测试驱动来配合 AI 开发吗

  •  
  •   iorilu · 1 天前 · 616 次点击

    现在想起来

    测试驱动开发很符合 AI 开发流程阿

    AI 开发问题就是无法确保能完成设定目标

    只能自己一遍遍跑了, 有问题让 AI 改

    如果自己先写好测试用例, 然后让 AI 开发项目, 并跑测试用例 有错,直接自己改, 知道全部跑通为止

    5 条回复    2025-03-21 14:39:10 +08:00
    aqtata
        1
    aqtata  
       1 天前
    看语言吧,像 C 这样的特性简单的语言应该可行,测函数很好,没状态,输入输出是确定的。

    但是 OOP 语言中的对象有内部状态,更复杂,写好测试也有挑战,大概代码量比业务代码还多。那还不如自己写,让 AI 生成测试。

    我现在就是让 AI 生成测试。
    Honwhy
        2
    Honwhy  
       1 天前
    私以为这就没有必要了吧。 本来就是相信 ai 写得更好的,既然它能写好我就没有必要花时间去写测试了吧
    kivmi
        3
    kivmi  
       1 天前
    首先你得定位你的 AI 指的啥? LLM 还是 Agent ,如果是 LLM ,有必要搞 TDD ? LLM 是可以无限喂养,自我学习,答案都没有唯一的吧,搞 TDD 能行?如果是 Agent ,TDD 仅限于业务上下文的支撑,最终解释权还是 LLM 。我随口说说,莫要取笑!
    shellus
        4
    shellus  
       16 小时 51 分钟前   ❤️ 1
    我在做的是`文档驱动开发` 其中文档也是 AI 写的。
    反驳一下楼上认为没必要的理由:
    1. AI 健忘,所以必须有固定不会遗忘的参考点,例如文档或单元测试。
    2. AI 会的太多,它不知道自己应该在编码员,还是主程还是架构师层面来帮你完成你的想法,所以你需要明确它应该怎么做,如果你让它完成这些测试用例的开发,那么它就是编码员,如果你用需求文档作为参考点,它就工作在架构师层面,如果你用 API 文档,它可能工作在主程层面。

    对于复杂的功能点,我也选择用测试用例去固化接口行为,然后优化修改实现代码。虽然不太符合楼主说的 TDD ,但实践证明,测试用例在 AI 编程中具有现实意义。
    (温馨提示:1AI 会在无法跑通用例时修改用例,2AI 有事会偷懒用 Mock 实现来跑通用例,所以监督开发在当前阶段还是必须项,这也是我们大部分程序员暂时还没失业的原因,偷着笑吧)

    使用 AI 一定是有方法有策略的,绝不是一些人说的怎么用都一样,全靠大模型能力。

    参考: https://zhuanlan.zhihu.com/p/29042557398

    一句话总结: TDD 用于 AI 编程是有利无害的技巧。
    livin2
        5
    livin2  
       11 小时 40 分钟前
    我也在摸索一种测试方案来让 AI 开发的行为“可预期”。https://www.v2ex.com/t/1119929
    但直接 TDD 套过来,至少大型项目还是挺痛苦的,毕竟 TDD 对架构理解的要求其实挺高的,与此同时很多设计模式的抽象说白了是给人看的,对 LLM 来说其实没啥意义。
    个人认为还是需要模式某种 TDG(Test-Driven Generate), 更贴近定义和管理需求,而不是约束实现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1135 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:19 · PVG 02:19 · LAX 11:19 · JFK 14:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.