ai编程的验收前置问题

2026-04-11 10:551阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

大家有没有思考过在 AI Coding 的过程中的验收前置的问题?

问题来源:

1:我在自己 vibe coding 和辅助编程的过程中发现,如果能在需求确定好后就直接开始测试设计,能极大地提高开发效率,而且很大程度缓解 AI Coding 的屎山代码问题。

2:作为一名测试开发工程师,实际上我一直在疑惑,在传统软件开发过程中,为什么不将测试设计,在需求确定的阶段就确定好。这样可以保证软件设计不会偏离需求。后来我想到,可能是因为人力和效率的问题,开发没有办法完全兼顾这些。测试,也没有办法直接插手具体的业务代码开发。

3:我看一些大厂,好像 A 社也有,他们的一些公开文章里面也提到了这个问题,就是在 AI Coding 过程中,尽量地让测试和验收的行为在开发代码的过程中就执行,甚至更靠前。

网友解答:
--【壹】--:

对的,我觉得补充测试步骤,不如直接在开发阶段就把测试步骤做好


--【贰】--:

这就是TDD了


--【叁】--:

然而,实际的使用下来,并不是所有的地方都适合写单测,测试也是代码,是需要维护的,如果哪天,修改一行代码,需要改动一堆测试,很难不怀疑测试的价值,TDD 是一个好的理念,但是并不是所有情况都适用,在实际的工作场景中,把活做小比把活做大更重要。
总而言之,不建议全部上TDD,最后很容易变成测试和代码都不看的情况。
比较推荐的是,稳定的 DAO 层,一些固化的逻辑,跟第三方接洽的模块上单测;在接口侧,直接用 API 进行全链路测试更快。


--【肆】--:

肯定会,测试本来就是为了保证开发往需求收敛的,测试如果偏了,那大家一起g。


--【伍】--:

我刚刚查了一下 TDD 的定义和例子,但感觉并不是那种将验收前置的,更倾向于验收前置的好像是 BDD,在需求落地的同时,就要开始测试设计。


--【陆】--:

claude的这组skill我安装了。这个东西用得很多,但是我发现大家没有就是在搭建框架的时候有意识地去做这些东西。如果你这个东西完全交给这些 skill 来做的话,会不会偏离需求?就是有时候会有一些问题,它有时候真的可能会突然发电一下,对吧。


--【柒】--:

如果测试写的有问题,会不会把开发都带偏


--【捌】--:

对,业务代码的开发和测试同步进行


--【玖】--:

我都不知道,成原始人了,艹。


--【拾】--:

SDD 的话在规范阶段,能否直接考虑 Test 呢?S 完以后一般是直接开发了,虽然会补充测试,但是好像没有一个明确的考虑步骤?


--【拾壹】--:

对于比较复杂的需求,一般还有个plan阶段,会先把需求拆分成一个一个可以独立开发的点,然后再用TDD去做实际开发。这样可以非常有效的避免两个问题:

  1. 避免跑的时间太长,Agent逐渐忘了自己做了啥,没做啥的问题,从而间接导致交付不全;
  2. 功能没有彻底完成,它为了快速答复完成,会撒谎,TDD可以有效避免这个,因为测试不过,就是功能没做好。

--【拾贰】--:

TDD早就有了吧?只不过让AI遵循TDD理念去做vibe coding的工程化出来了衍生出了 openspec、superpowers.. 不过有了ai,各种工具、框架起来的太快了,只要学得慢,就不用学…


--【拾叁】--:

这不就是现在很流行的tdd vibe模式吗。

试一下superpowers。

问题描述:

大家有没有思考过在 AI Coding 的过程中的验收前置的问题?

问题来源:

1:我在自己 vibe coding 和辅助编程的过程中发现,如果能在需求确定好后就直接开始测试设计,能极大地提高开发效率,而且很大程度缓解 AI Coding 的屎山代码问题。

2:作为一名测试开发工程师,实际上我一直在疑惑,在传统软件开发过程中,为什么不将测试设计,在需求确定的阶段就确定好。这样可以保证软件设计不会偏离需求。后来我想到,可能是因为人力和效率的问题,开发没有办法完全兼顾这些。测试,也没有办法直接插手具体的业务代码开发。

3:我看一些大厂,好像 A 社也有,他们的一些公开文章里面也提到了这个问题,就是在 AI Coding 过程中,尽量地让测试和验收的行为在开发代码的过程中就执行,甚至更靠前。

网友解答:
--【壹】--:

对的,我觉得补充测试步骤,不如直接在开发阶段就把测试步骤做好


--【贰】--:

这就是TDD了


--【叁】--:

然而,实际的使用下来,并不是所有的地方都适合写单测,测试也是代码,是需要维护的,如果哪天,修改一行代码,需要改动一堆测试,很难不怀疑测试的价值,TDD 是一个好的理念,但是并不是所有情况都适用,在实际的工作场景中,把活做小比把活做大更重要。
总而言之,不建议全部上TDD,最后很容易变成测试和代码都不看的情况。
比较推荐的是,稳定的 DAO 层,一些固化的逻辑,跟第三方接洽的模块上单测;在接口侧,直接用 API 进行全链路测试更快。


--【肆】--:

肯定会,测试本来就是为了保证开发往需求收敛的,测试如果偏了,那大家一起g。


--【伍】--:

我刚刚查了一下 TDD 的定义和例子,但感觉并不是那种将验收前置的,更倾向于验收前置的好像是 BDD,在需求落地的同时,就要开始测试设计。


--【陆】--:

claude的这组skill我安装了。这个东西用得很多,但是我发现大家没有就是在搭建框架的时候有意识地去做这些东西。如果你这个东西完全交给这些 skill 来做的话,会不会偏离需求?就是有时候会有一些问题,它有时候真的可能会突然发电一下,对吧。


--【柒】--:

如果测试写的有问题,会不会把开发都带偏


--【捌】--:

对,业务代码的开发和测试同步进行


--【玖】--:

我都不知道,成原始人了,艹。


--【拾】--:

SDD 的话在规范阶段,能否直接考虑 Test 呢?S 完以后一般是直接开发了,虽然会补充测试,但是好像没有一个明确的考虑步骤?


--【拾壹】--:

对于比较复杂的需求,一般还有个plan阶段,会先把需求拆分成一个一个可以独立开发的点,然后再用TDD去做实际开发。这样可以非常有效的避免两个问题:

  1. 避免跑的时间太长,Agent逐渐忘了自己做了啥,没做啥的问题,从而间接导致交付不全;
  2. 功能没有彻底完成,它为了快速答复完成,会撒谎,TDD可以有效避免这个,因为测试不过,就是功能没做好。

--【拾贰】--:

TDD早就有了吧?只不过让AI遵循TDD理念去做vibe coding的工程化出来了衍生出了 openspec、superpowers.. 不过有了ai,各种工具、框架起来的太快了,只要学得慢,就不用学…


--【拾叁】--:

这不就是现在很流行的tdd vibe模式吗。

试一下superpowers。