FunTester 让 AI 更懂你的需求——表达清晰篇

FunTester · 2025年11月19日 · 68 次阅读

上一篇文章中,我们讨论了确保需求本身质量的三个关键特质:文档化、正确性、完整性。这些特质确保了需求是"合格"的——它们被正确记录、内容正确、信息完整。

但仅仅有"合格"的需求还不够。在人工智能代码生成的时代,需求还必须能够被正确理解。本文重点讨论无歧义性和一致性,这两个特质确保需求表达清晰、易于理解,避免误解和混淆。

无歧义性

当我们阅读需求时,我们都能理解相同的内容。含糊不清的需求可能导致误解、长时间的讨论和澄清会议。它们还可能导致返工和错误。在最坏的情况下,需求可能被不同地解释,我们可能会开发出与预期不同的东西。在人工智能助手的情况下,这也看起来特别危险。

1. 模式和规则

人工智能模型根据它们学到的模式和规则处理输入文本。它们本质上并不"理解"底层的业务目标,也不像人类那样具备常识。如果一个需求可以有多种解释方式,人工智能可能会根据其训练数据任意选择一种解释。这可能不是利益相关者所期望的解释。就像你让 AI"把文件放到文件夹里",它可能理解为复制,也可能理解为移动,你必须明确说清楚。

2. 不可预测的结果

歧义直接导致生成代码的不可预测性。你可能会将相同的含糊需求通过人工智能运行(或略微不同的版本),并得到截然不同的代码实现。每次运行代码时,人工智能助手可能会以不同的方式处理歧义。这就像抽奖一样,每次结果都可能不一样,这对软件开发来说是很危险的。

一致性

需求的一致性意味着对相同概念使用相同的术语。这意味着陈述之间不相互矛盾,并且在相关需求之间保持逻辑流程。对于人类团队来说,轻微的不一致性通常可以通过讨论或推断的上下文来解决。在最坏的情况下,不一致性也可能导致错误和返工。

然而,对于人工智能代码生成器来说,一致性至关重要,原因如下:

1. 模式识别

人工智能助手将尝试提取需求的模式。由于大语言模型缺乏系统的内部语义模型,它们不会推断出"客户"和"用户"指的是同一实体,除非这种联系被明确地建立。这可能导致生成单独的、可能冗余的代码结构、数据字段或逻辑路径,或者无法正确链接相关功能。就像你跟 AI 说"客户",又说"用户",AI 会认为这是两个不同的东西,然后生成两套代码。

2. 无法解决矛盾

人工智能模型在处理逻辑矛盾时存在困难。如果一个需求声明"数据必须在 30 天后删除",而另一个相关需求声明"用户数据必须无限期存档",人工智能可能不会要求澄清或确定正确的业务规则。它可能会只实现一个规则(通常是它最后处理的那个),尝试实现两个规则(导致错误),或者不可预测地失败。AI 不会像人一样说"这两个需求矛盾了,我们讨论一下",它只会照做,结果就是代码出问题。

3. 对代码质量的影响

需求的一致性通常转化为生成代码的一致性。如果需求一致地使用特定的命名约定来描述功能或数据元素,人工智能在生成代码时(变量、函数、类)更有可能遵循这些约定。不一致的需求可能导致结构和命名不一致的代码。这使得代码更难理解和维护。统一的命名就像统一的语言,AI 更容易理解。

4. 逻辑流程

描述流程或工作流需要一致的逻辑顺序。需求中的混乱或矛盾步骤可能会使人工智能对操作的预期顺序感到困惑。就像做菜,如果步骤顺序乱了,AI 可能会先放盐再放菜,顺序就错了。

总结

无歧义性和一致性是确保需求能被正确理解的两个关键特质:

  • 无歧义性确保需求只有一种解释方式,避免 AI 做出错误的假设
  • 一致性确保需求使用统一的术语和逻辑,避免矛盾和混淆

当需求本身质量合格(文档化、正确、完整),并且表达清晰(无歧义、一致)时,我们就为下一步做好了准备:确保需求能被正确实现和验证。在下一篇文章中,我们将讨论可测试性、可追溯性和可行性,这些特质确保需求不仅能被理解,还能被实际执行和验证。


FunTester 原创精华
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册