行为驱动开发

2025年3月17日 | 阅读 3 分钟

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

BDD 包括基于软件功能的行为进行测试用例开发。所有测试用例都以简单英语语句的形式编写在 feature 文件中,该文件由人工生成。 验收测试用例语句完全侧重于用户操作。

Behavior Driven Development

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

让我们通过一个例子来了解如何基于特定功能的行为开发测试用例

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

示例

为了确保登录功能的工作正常,我们正在基于 BDD 开发验收测试用例。

Behavior Driven Development

Feature: Login Function
To enter in the System  
User must be able to 
Access software when login is successful 
Scenario: Login
Given User has its Email  
And Password  
When User enters the correct Email and Password  
Then It should be logged in
Scenario: Unsuccessful Login
When User enters either wrong Email or Password  
Then It should be reverse back on the login page with an error message

需要选择 BDD 的原因

除非业务所有者熟悉单元测试的使用,否则 TDD 运行良好。 此外,他们的技术技能应该足够强大,但这并非总是可能。

在这种情况下,BDD 具有优势,因为测试用例以通用的英语编写,所有利益相关者都可以轻松理解。

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

BDD 的特点

强大的协作

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

高可见性

由于简单的英语,每个人都可以清楚地了解项目的进度。

软件设计遵循业务价值

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

通用语言

如前所述,测试用例以通用语言编写,团队的所有成员都可以理解,无论他们是否来自技术领域。 这有助于减少成员之间与概念相关的误解和误解。 通用语言使新成员更容易加入工作。

软件开发满足用户需求。

BDD 侧重于业务需求,以便用户能够满意,当然,满意的用户意味着业务不断增长。 使用 BDD,测试人员关注行为,而不是实现。

开发人员方面更有信心

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

降低成本

通过提高代码的质量,BDD 基本上降低了维护成本并最大限度地降低了项目的风险。


下一个主题Feature 文件