Behavior Driven Development


Behavior Driven Development

BDD(Behavior Driven Development)是从测试驱动开发(TDD)发展而来的一种软件开发方法。

BDD 包括基于软件功能行为的测试用例开发。所有的测试用例都以简单的英文语句的形式写在一个人工生成的特征文件中。验收测试用例语句完全专注于用户操作。

行为驱动开发

BDD 是用简单的英语语句编写的,而不是用典型的编程语言编写的。BDD 改善了技术和非技术团队以及利益相关者之间的沟通。

让我们通过一个例子来理解,我们如何根据特定函数的行为来开发测试用例。

在以下示例中,我们将采用Web 应用程序的登录功能

例子:

为了保证 Login Functionality 的正常工作,我们正在开发基于 BDD 的验收测试用例。

行为驱动开发

Feature:登录功能
进入系统  
用户必须能够
在登录成功时访问软件
Scenario:登录
Given 定用户有自己的电子邮件  
And 密码  
When 用户输入正确的电子邮件和密码  
Then 它应该登录
Scenario:用户登录失败
When 输入错误的电子邮件或密码  
Then 它应该返回到登录页面并显示错误消息

需要选择BDD

除非业务所有者熟悉单元测试的使用,否则 TDD 的工作令人满意。此外,他们的技术技能应该足够强大,这并不总是可能的。

在这些情况下,BDD 是有利的,因为测试用例是用通用英语编写的,所有利益相关者都很容易理解。

熟悉、易于理解的语言是使用 BDD 的最显着优势,因为它在技术和非技术团队之间的合作中发挥着至关重要的作用,以更高效地执行任务。

BDD的特点

强合作

BDD 在相关方之间提供了强有力的协作。这只是因为用英语编写的简单测试用例。在Cucumber测试中,股东在建设性讨论中起着至关重要的作用,因为只有他们知道对软件的期望。

由于简单的英语语言,每个人都对项目的进展有很强的可见性。

软件设计遵循商业价值

BDD 非常重视业务价值和需求。通过与客户一起设置优先级,根据他们提供的价值,开发人员能够给出更好的结果,因为他们对客户的想法有深刻的理解。

无处不在的语言

正如前面提到的,测试用例是用无处不在的语言编写的,这对于团队的所有成员来说都是可以理解的,无论他们是否来自技术领域。这有助于减少与概念相关的成员之间的误解和误解。无处不在的语言使新成员可以轻松加入工作。

软件开发满足用户需求。

BDD关注业务的需求,让用户满意,当然,用户满意就意味着业务的增长。使用 BDD,测试人员专注于比实现具有更大影响的行为。

**开发商方面更有信心

使用 BDD 的团队通常更有信心,因为他们不会破坏代码,而且当涉及到他们的工作时,会做出更好的预测。

降低成本

通过提高代码质量,BDD 基本上降低了维护成本,将项目风险降到最低。