现在有人用 TDD 测试驱动来配合 AI 开发吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
iorilu
V2EX    程序员

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

  •  
  •   iorilu 204 天前 1628 次点击
    这是一个创建于 204 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在想起来

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

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

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

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

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

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

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

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

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

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

    一句话总结: TDD 用于 AI 编程是有利无害的技巧。
    livin2
        5
    livin2  
       203 天前
    我也在摸索一种测试方案来让 AI 开发的行为“可预期”。t/1119929
    但直接 TDD 套过来,至少大型项目还是挺痛苦的,毕竟 TDD 对架构理解的要求其实挺高的,与此同时很多设计模式的抽象说白了是给人看的,对 LLM 来说其实没啥意义。
    个人认为还是需要模式某种 TDG(Test-Driven Generate), 更贴近定义和管理需求,而不是约束实现。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6094 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 02:21 PVG 10:21 LAX 19:21 JFK 22:21
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86