大家好,欢迎来到IT知识分享网。
每日分享最新,最流行的软件开发知识与最新行业趋势,希望大家能够一键三连,多多支持,跪求关注,点赞,留言。
在本文中,我们将了解什么是 BDD,为什么要使用 BDD 框架,如何实现 BDD,BDD 的优势,以及 TDD 与 BDD 的区别。
行为驱动开发,简称 BDD,是测试驱动开发概述的价值的子集。我们在使用测试驱动开发时正确地创建了对象。相反,行为驱动的开发确保我们创建正确的对象。本质上,TDD 是通过行为驱动的开发来扩展的。
在 BDD 测试框架中使用 Cucumber 和 SpecFlow 使非技术产品所有者能够将应用程序行为指定为人类可读的文本。
为什么使用 BDD 框架?
在 BDD 框架进入行业之前,公司一直在使用 TDD。只要利益相关者有足够的技术知识并且对框架感到满意,TDD 在软件开发中是有效的。
BDD 是一种弥合技术团队和非技术团队之间差距的方法,因为测试用例是用每个人都能理解的纯文本编写的,即英语。BDD 的主要优点是其简单、低污垢的风格,更易于理解。
如何实施 BDD 方法?
以清晰易懂的英语书写,测试场景应包括对测试的一般解释,包括有关如何测试应用程序和应用程序行为的说明。
在本课中,我们将学习如何使用其语言 Gherkin 实际开发 Cucumber,这是一个 BDD 的软件测试工具。
Cucumber – BDD 框架工具
行为驱动开发 (BDD)框架使用软件测试工具 Cucumber 创建测试用例。
给定-何时-然后接近
- 给定:先决条件。
- 时间:行动。
- 然后:结果。
Feature:使用 Cucumber 实现 BDD
场景:使用 Cucumber 插件登录 Facebook
给定 用户将访问任何电子商务网站的登录页面。
输入凭据时 ,用户输入“email”作为用户名,输入“password123”作为密码。
然后用户成功登录到他们的亚马逊账户。
示例步骤定义文件
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class Sample {
[Given(@” User is navigating to Any Ecommerce Website Login Page “)]
public void GivenUserIsNavigatingToAnyEcommerceWebsiteLoginPage()
{
//write code here
}
[When(@” User enter credential Username as “”([^””]*)”” and password as “”([^””]*)”””)]
public void WhenUserEnterCredentialUsernameAsAndPasswordAs(string username, string password)
{
//write code here
}
[Then(@” User successfully Login to Amazon Account”)]
public void ThenUserSuccessfullyLoginToAmazonAccount()
{
//write code her
}
}
BDD 框架的优点
在下面找到 BDD 框架的优势:
1)用户故事覆盖: 具有行为驱动开发的混合框架旨在与各种功能集成。技术资源的利益相关者能够利用用户故事在 Gherkin 中构建场景,因为特征文件以特征文本的形式简单的外行英语。纯文本的一致性使得获得最大的测试覆盖率成为可能。
2) 场景的清晰性: Gherkin 语言使用简单的日常文本,专注于使用 BDD 测试产品的结果。
它只是使非技术人员更容易将自动化测试理解为与测试人员不同步骤定义文件中的技术描述分开的功能文件。
由于 Gherkin 的可读性能力,它的每个消费者都会收到明确的情况,这也有助于创建理想的产品。
3) 测试场景自动化:在 BDD 框架中使用Cucumber使自动化测试人员能够从正确的角度快速启动脚本过程。由于黄瓜场景的简单语言,他们能够更好地理解功能。
Java、Python 和其他计算机语言都与 Cucumber 兼容,这是一个独立于语言的插件。
4) 框架中的代码重用: Given – When – Then 技术允许测试人员在功能文件中自由地重用相同的步骤,就像用户希望的那样频繁,最终帮助自动化测试人员节省时间。
例子:
场景一:
Given User is navigated to google.com
When the User searched “webdriver” in the search engine
Then Clicked on the Search Button
And User can see search results related to webdriver
场景二:
Given User is navigated to google.com
When the User searched “Remote webdriver” in the search engine
Then Clicked on the Search Button
And User can see search results related to Remote webdriver
在上述两个场景中,我们可以使用第二个场景中可重用的“Given”、“When”和“Then”步骤。
5) 特征文件中的参数化:为了实现特征文件的可重用性,BDD 用户应该在小黄瓜阶段采用参数化的概念。
例如,假设一个人在使用银行应用程序时重复登录。在这种情况下,可以使用不同的数据集对这些阶段进行参数化,从而节省测试人员的时间。
创建所有测试场景时,功能步骤文件的定义方式必须便于在单个位置访问共享功能。
6)易于集成持续集成: Cucumber 还支持使用 Jenkins。Jenkins 允许我们执行黄瓜测试并在 Jenkins 从属计算机上实现它们。借助黄瓜报告插件,用户可以完整地观察跟踪测试用例。
TDD与BDD之间的区别
结论
敏捷方法论的 BDD 概念非常可爱。使用它为您提供了一个使用多种技术自由操作的平台,行为驱动开发始终用于开始您的开发或测试。
在软件项目中使用 BDD 技术的最佳工具之一是黄瓜。这使我们能够使用多种技术进行操作,包括 Python 和 Java。
许多企业和独立承包商都在使用 Cucumber,它还提供了大量群组,人们可以在其中分享他们的问题并轻松找到解决方案。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/86092.html