当前位置: 首页 > 知识库问答 >
问题:

BDD的增值是什么?

王旺
2023-03-14

我现在正在做一个项目,在这个项目中我们使用cucumber-jvm来驱动验收测试。

共有1个答案

杜弘光
2023-03-14

我看到的是BDD为测试添加了另一层间接和语义糖分,但我没有看到增值,尤其是如果非技术人员可以使用内部DSL。

额外的层是普通语言.feature文件,在创建时,它与测试无关,而是使用称为规范的技术通过示例创建定义良好的故事来创建系统的需求。当用业务语言正确地编写时,示例规范在创建共享理解方面非常强大。仅此一项练习既可以减少返工量,又可以在开发开始前发现缺陷。这种练习也被称为刻意发现。

一旦您对规范有了共同的理解和一致意见,您就进入开发并使这些规范可执行。以下是您将使用ATDD的地方。所以BDD和ATDD没有可比性,它们是免费的。作为ATDD的一部分,您使用故事中通过示例定义的行为来驱动系统的开发。作为一名开发人员,您所拥有的好东西是一个正式的格式,其中包含可以自动化的前提条件、事件和后置条件。

    null
    null
    null
    null
  • 输出=为下一个深思熟虑的发现会话提供新的想法和反馈

所以BDD确实可以帮助您解决大多数交付系统中缺少的部分,即规范部分。这是典型的无纪律和自由形式,留给少数人一起坚持。这就是为什么BDD是一种敏捷方法,而不仅仅是一种测试技术。

考虑到这一点,让我来回答你的一些其他问题。

我是不是漏掉了什么?就像ATDD和BDD之间微妙的哲学差异?前者是否意味着命令性测试,而后者是否意味着声明性测试?这些审美差异是否具有内在价值?

如上所述,ATDD和BDD是免费的,没有可比性。在命令式/声明式方面,作为一种技术,通过示例进行规范是非常具体的。当你在进行深思熟虑的发现阶段时,你总是问“你能给我一个例子吗”。在该示例中,您将使用精确的值。如果有两个值可用于前置条件(给定)或事件(何时)步骤,并且它们具有不同的结果(然后步骤),这意味着您有两个不同的场景。如果有相同的结果,这可能是相同的情况。因此,作为BDD实践的一部分,这些步骤需要是声明性的,以便获得经过深思熟虑的发现的好处。

因此,我只能问,为了证明驱动测试的实际代码可读性的恶化是合理的,增加了什么值。这种BDD的东西真的值得这么痛苦吗?价值的增加不仅仅是审美吗?

我在这里还回答了一个关于BDD的问题,您可能会感兴趣,这个问题更侧重于开发:

TDD和BDD是否应该同时使用?

 类似资料:
  • BDD是一个评估软件需要如何运行的过程,然后编写代码所依据的验收测试。您可以使用TDD方法编写代码,为方法编写单元测试,并围绕单元测试(代码、测试、重构)构建类。当代码编写完成时,您将对其进行测试,以查看是否满足原始的验收测试。 有经验的人可以对我的解释进行评论,并用这些敏捷原则来演示一个简单的应用程序吗?我看到在不同的出版物中有大量关于BDD和TDD的文本,但我正在研究这两个过程在现实世界的开发

  • 问题内容: Jeff在谈论使用JQuery编写stackoverflow时提到了“渐进增强”的概念。 快速浏览Google之后,我发现了一些有关它的高层讨论。 任何人都可以推荐一个适合作为程序员开始的好地方。 具体来说,我一直在用PHP编写Web应用程序,并且希望使用YUI来改进我正在编写的页面,但是其中很多似乎都是基于JavaScript的,而大多数驴工作都是使用JavaScript完成的。对我

  • Jasmine遵循行为驱动开发(BDD)框架。 在学习Jasmine的工作原理之前,让我们知道什么是BDD框架。 以下流程图描述了BDD框架的不同阶段。 Step 1 − Start 在这个阶段,我们将为Jasmine应用程序准备好环境。 Step 2 − Write a failing test 在这一步中,我们将编写我们的第一个测试用例。 很明显,这个测试会失败,因为没有这样的文件或函数需要测

  • 问题内容: 我想在特定时间获取CPU周期。我当时使用此功能: (编者注:是错的x86-64,捡起 _任何_RDX或RAX仅在32位模式下将它挑EDX:你想EAX输出中看到的。 问题是它总是返回一个 递增的 数字(每次运行)。好像是在指绝对时间。 我使用的功能不正确吗? 问题答案: 只要您的线程停留在相同的CPU内核上,RDTSC指令就会一直返回递增的数字,直到它回绕为止。对于2GHz CPU,这种

  • BDD

    1.Overview BDD(Behavior Driven Development)的最大好处是,可以让Product Owner(需求人员),功能测试设计人员 和 功能测试实现人员,在同一个地方工作,不需要从需求到测试计划到测试代码的映射。 BDD正宗的做法是Cucumber(黄瓜)的JVM版 和 JBehave,个人喜欢JBehave多一点,因为不需要写正则表达式。 但如果要在项目里推行,S

  • 本文向大家介绍什么是JavaScript中的增量(++)运算符?,包括了什么是JavaScript中的增量(++)运算符?的使用技巧和注意事项,需要的朋友参考一下 增量运算符将整数值加1。这是一个示例,其中使用递增运算符两次将a的值递增两次 示例