BDD 和 TDD 甚至有一个非常不吉利的名字,因为它实际上并没有涵盖它们的用途。
- 您不想在开发周期中为每个可能的极端情况编写测试,这是测试人员应该接受的。
- 你不想要回归,你想要确保你正在编写你需要清除这个迭代的代码,所以你想要一个可重复的结果
- 您不必在开始时进行详细设计,而是记下您希望这次完成的一些要求。
如果您在有一些代码描述您将要编写的代码位之前不编写一行代码,那么 BDD/TDD 中的任何一个都可以。这样做你会进入一个区域。
虽然没有证据表明 BDD/TDD 会提高您的开发速度(很可能不会),但它会大大减少您在发布已被证明的软件后返回的问题数量。
BDD 是 TDD 的演变,其中 TDD 施加压力以测试所有内容 BDD 放松了这一点,并表示您应该只测试类的公共行为,因为内部可能会发生变化。
BDD 既关乎设计,也关乎分析,但我认为这不是你的问题,是吗?您想知道如何将故事转化为流程图和架构图吗?
因为我从你的问题中得到的是,你预先做了一个大的设计,然后试着把它编码出来。这不适用于 BDD,因为在满足您应该以零碎的方式编写的故事的同时,您会自动获得您的代码和架构。它被称为紧急设计,因此没有庞大的规划阶段。
在 SCRUM 或类似的系统中,这非常有效,因为业务优先考虑您的故事。您从顶部开始并为其编写规范/示例,然后尝试满足示例重复此操作,直到您完成此积压项目,然后拿起下一个并重新开始。
我希望这能回答你的问题。如果不是,你需要澄清一点,因为这是一个粗略的话题。简而言之,BDD 纯粹是一种开发工具,不适用于架构师、BA ...... 测试人员可能会使用 BDD 工具,但我希望这不是他们用来测试应用程序的唯一工具。