如果以最轻的形式思考BDD可能会有所帮助; 就是讨论特定情景。
你拥有你的用例。你拥有你的需求。现在你想验证自己对它们有一个真正好的理解。那么有人-也许是开发人员,也许是测试人员-说,“好吧。为了验证我是否理解...假设我们从<这个>开始,当用户执行<这个>时,<这个>应该发生。是这样吗?"
测试人员会说:“是的,没错。”
然后UX或分析师说:“嗯,除非存在<这个其他上下文>”。
通过就场景进行讨论,确保每个人都有共同的理解所花费的时间大大缩短了。我们通常忽略明显的情况,并关注边缘情况;新领域术语、部门之间不同的概念,与遗留系统的困难交互。
开发人员并不是真正依靠测试用例工作的。他们以需求和验收标准为基础,以与以往完全相同的方式工作。测试用例只是成为他们可能期望的事情类型的示例;用户从中受益或传递系统价值的场景。自动化这些测试用例可能很有用,因为测试的工作量大致与代码库的大小成比例增加。
BDD最适合在需求或领域存在高度不确定性,人们的理解差异很大的项目中使用。如果您的项目已经运作良好,请继续使用它。也许您可以看看想法和实施之间最大差距所在的位置,如果BDD在这个空间中对您有帮助,请使用它;否则选择其他东西。无论如何,您正在做的事情听起来与BDD过程非常相似。
我刚看到这个问题,觉得很有趣,想发表一下自己的看法。
只有当整个团队都认为方法不可行,并且最终结果是项目失败时,该方法才会失效。
如果现有系统运作良好,那么你需要问自己:“即使我更喜欢BDD/TDD,我能否像这样工作?” 如果你的答案是否定的,并且你觉得在任何其他系统下工作都会感到不满意,那么也许这表明你的职业需要转向其他领域。如果是肯定的,那就接受这个系统。
实际上,如果是我,我会尝试接受一个新的系统。首先,这给了你一个机会去熟悉它,然后你可以更全面地评估其优缺点,并在以后提出可能的改进建议。
归根结底,一个方法论的好坏取决于它的最终结果:可工作的软件和所有利益相关者的满意度。
:-)