首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏我的博客

    TDD、BDD和DDD

    1.TDD,测试驱动开发 TDD指的是Test Drive Development,简单地说,TDD 就是在写代码前先写测试,并严格遵守(错误》正确》重构)的流程 2.BDD,行为驱动开发 BDD指的是 Behavior Drive Development,实际上BDD可以看作是对TDD的一种补充,当然你也可以把它看作TDD的一个分支 3.DDD,领域驱动开发 DDD是指Domain Drive Design

    2K120发布于 2018-04-28
  • 来自专栏CoffeeLand

    BDD测试框架Cucumber

    BDD what is BDD? BDD: Behaviour-Driven Development (BDD) 行为驱动开发 一般软件的开发涉及到三个角色 PO(Product owner) : 产品经理 Tester: 测试 Developer Why BDD? 最早的有TDD, 测试驱动开发, 而BDD 是行为驱动开发, 更加关注用户的行为, BDD根据用户的需求来开发, 能够加快开发速度, 降低PO, Tester, Developer之间的耦合 保障开发的功能和 https://cucumber.io/docs/bdd/

    1.4K00发布于 2020-05-16
  • 来自专栏FunTester

    BDD 高效落地实战指南

    BDD 的核心理念 BDD(Behavior-Driven Development)本质上是 TDD 的升级版,但它不只是 写测试,而是用自然语言把需求和功能讲清楚,让技术和业务都能听懂。 更重要的是,BDD 能让技术和业务真正 同频共振 ,减少返工和沟通成本,让项目交付更有保障。 业务视角 BDD 的核心就是 用业务视角定义行为,用自动化测试验证结果 。 BDD 的主要优势 鼓励协作:BDD 测试让业务、开发和测试人员像“组团打副本”一样协作,所有人围绕业务目标同步行动。以前技术和业务沟通障碍重重,现在大家一起写场景,谁都能参与进来。 BDD 工程实践与落地 工具选型与特性文件编写 想要在项目中落地 BDD,首先要选好工具,比如 Cucumber、Behave 或 SpecFlow 等主流框架。 建议大家从小处着手,协作定义单一特性并用 BDD 框架自动化,体验 BDD 带来的开发流程透明和信心提升。

    32310编辑于 2025-10-21
  • 来自专栏FunTester

    行为驱动开发(BDD):不再鸡同鸭讲

    BDD 直接用接近自然语言的方式描述系统行为,让产品经理能看懂,开发能看懂,测试能看懂,连老板都能看懂——这就是 BDD 的杀手锏。 BDD vs TDD:到底谁更厉害? 很多人问:学了 BDD 是不是就不用 TDD 了?这是个误区。 所以正确的姿势是:底层用 TDD 保证代码质量,上层用 BDD 保证业务价值。 手把手教你实践 BDD 下面咱们通过一个电商系统的购物车功能,看看 BDD 是怎么玩的。 ;场景写多了也是个负担,特别是需求频繁变动的项目,维护大量场景描述挺累人的,所以要聚焦核心业务场景,别啥都往 BDD 里塞;底层技术组件和工具类方法用 TDD 写单元测试就够了,没必要上 BDDBDD 写在最后:BDD 的本质价值 BDD 本质上就是让团队用同一种语言交流,这种语言既让业务人员看得懂,又能转换成自动化测试代码;从实践经验来看,BDD 最大的价值不在于技术层面,而是改变了团队协作方式,让产品

    28910编辑于 2025-12-29
  • 来自专栏啄木鸟软件测试

    Cucumber入门 - 啥是BDD

    然而,Cucumber的首页清楚地写着“making BDD fun”,即让行为驱动开发充满欢乐。行为驱动开发(BDD)是什么?Cucumber的开发者为什么又要给它扣上这个帽子呢? 说完了传统流程,再回到BDD。2.1的例子中,BDD整合了用户需求、测试用例、自动化测试用例。针对复杂项目,BDD的解决办法依旧是:整合!整合!整合!如图: ? 我用中文复述下: BDD是一个第二代的敏捷开发方法。 BDD是好东西,一如TDD,一如AATDD。它够快,够直接,够节约,因此,够敏捷。 可BDD并非适用于所有产品、所有团队。开发Cucumber的人们,有着良好的编码技能与质量意识。 因此,我喜欢BDD,但不推荐它、不试图推广。但是,如果抛开BDD,只是把Cucumber当做一个自动化测试工具,在不改变现有流程的情况下,去用,去体会,去思考。

    1.6K10发布于 2019-12-12
  • 来自专栏程序员备忘录

    BDD与单元测试相关问题介绍

    如何实现BDD 市面上比较常用的BDD框架是cucumber 。 先做一个demo尝尝鲜! 1、idea安装cucumber插件。 BDD存在的问题 comuber不能mock,因为所采用的junit不是同一junit。 就到这里吧,冬天来了,注意不要感冒流鼻涕!

    1.3K10编辑于 2022-08-11
  • 来自专栏敏捷测试

    敏捷测试如何应用 BDD(行为驱动开发)?

    一、BDD的核心理念与敏捷测试的契合点1.1 BDD简介BDD起源于敏捷和测试驱动开发(TDD),强调用自然语言的“行为规范”描述需求,通过示例驱动开发和测试。 1.2 BDD与敏捷测试的契合点 沟通桥梁 BDD的行为规范以业务语言描述,促进产品、开发和测试的共同理解,消除“信息孤岛”。 2.4 将BDD集成到持续集成/持续交付(CI/CD)流程将BDD自动化测试纳入CI/CD流水线,实现代码提交即触发行为测试,确保功能持续满足预期。 四、敏捷测试中BDD应用的挑战与对策4.1 挑战:行为规范编写质量参差对策:加强团队BDD培训,明确规范标准,采用Peer Review机制,持续改进行为描述质量。 ,辅助生成BDD场景脚本。

    42610编辑于 2025-07-05
  • 来自专栏测试技术圈

    BDD测试框架之Cucumber使用入门

    1 什么是Cucumber cucumber早在ruby环境下应用广泛,作为BDD框架的先驱,cucumber后来被移植到了多平台,简单来说cucumber是一个测试框架,就像是juint或是rspec 一样,不过cucumber遵循的是BDD的原则。 2 何为BDD? BDD就是行为驱动开发,是一种软件开发流程或者说是软件开发实践,具体学术化的东西这里就不介绍了,归根到底,cucumber具有让你用自然语言编写用例的能力。

    3K40发布于 2019-08-02
  • 来自专栏测试人生

    BDD测试框架之Cucumber使用入门

    什么是Cucumber cucumber早在ruby环境下应用广泛,作为BDD框架的先驱,cucumber后来被移植到了多平台,简单来说cucumber是一个测试框架,就像是juint或是rspec一样 ,不过cucumber遵循的是BDD的原则。 何为BDD? BDD就是行为驱动开发,是一种软件开发流程或者说是软件开发实践,具体学术化的东西这里就不介绍了,归根到底,cucumber具有让你用自然语言编写用例的能力。

    5.6K51发布于 2019-06-20
  • 来自专栏架构狂人

    码农,你真的了解TDD和BDD吗?

    各种探索中,最有影响力的就是 BDD。 行为驱动开发 BDD 的全称是 Behavior Driven Development,也就是 行为驱动开发。 好,了解了 BDD 的由来,接下来,我们就来看看采用 BDD 的方式进行开发,测试会写成什么样子。 现在我们已经有了对 BDD 的初步了解,接下来,我们就来看看在实际的项目中可以怎样使用 BDDBDD 的延伸 最后,我们再来说说 BDD 的一些延伸。从上面的内容我们可以知道,BDD 的用例和普通测试的用例只是在表述方式上有所差异,从结构上看,二者几乎是完全等价的。 BDD 的另外一个延伸方向是对需求进行文档化的表述。

    1.9K10编辑于 2023-09-24
  • 来自专栏ThoughtWorks

    TW洞见|BDD在移动开发中的应用

    行为驱动开发(BDD)风格的测试可以极大地改善这种情况。 为什么使用BDD? BDD风格的测试用例使用纯业务领域的语言进行描述。这种方式提供了一种更好的理解测试用例的途径。 BDD方法有很多工具的支持,这些工具可以把测试案例规范和底层实现细节关联起来。这种风格的测试已经被证明是易于维护的,也易于描述测试用例。 针对移动应用程序,BDD可以在以下方面提供帮助: 1 对底层细节进行抽象并提供高层次的步骤(steps): BDD对底层细节进行抽象,并提供高层次的测试用例步骤,这样就会与平台无关了。

    99650发布于 2018-04-20
  • 来自专栏啄木鸟软件测试

    基于Cucumber的BDD自动化测试

    访问网址https://www.katalon.com , 点击右上角 Sign In 进行注册

    1.3K30发布于 2019-12-12
  • 来自专栏NebulaGraph 技术文章

    基于 BDD 理论的 Nebula 集成测试框架重构(下篇)

    [基于 BDD 理论的 Nebula 集成测试框架重构(下篇)] 在上篇文章中,我们介绍了 Nebula Graph 的集成测试的演进过程。 安装依赖 除却常用的 pytest 和 nebula-python 库之外,目前的测试框架还用到了 pytest-bdd 和 pytest-xdist 等插件。 在实践 pytest-bdd 的过程中,也发现其中一些不完美的地方,比如其跟 pytest-xdist 等插件兼容性的问题(gherkin-reporter),还有 pytest 没有原生提供 global

    1.1K30发布于 2021-06-30
  • 来自专栏NebulaGraph 技术文章

    基于 BDD 理论的 Nebula 集成测试框架重构(上篇)

    基于 BDD 的测试。 [基于 BDD 理论的 Nebula 集成测试框架重构(上篇)] 基于 GTest 的测试 [基于 BDD 理论的 Nebula 集成测试框架重构(上篇)] 基于 pytest 的测试 [基于 BDD 实现 BDD 的测试框架有很多,即便在 python 语言环境下也是一道多选题,比如 pytest-bdd, behave 等。 pytest-bdd 是 pytest 的一个插件,可以很好的支持 BDD 的特性同时又可以直接利用 pytest 的功能,比较契合我们的预期。 何为 BDD 前文提到了很多次的 BDD,我们了解 TDD 和 DDD 比较多,可能对何为 BDD 还持有疑问。

    96200发布于 2021-06-02
  • 来自专栏JackieZheng

    开发人员看测试之TDD和BDD

    再往上,就是BDD(灰盒测试、黑盒测试),主要用于测试代码是否符合客户的需求,这里的BDD更加侧重于代码的功能逻辑。    再说BDD   BDD是一种敏捷软件开发的技术。它对TDD的理念进行了扩展,在TDD中侧重点偏向开发,通过测试用例来规范约束开发者编写出质量更高、bug更少的代码。 而BDD更加侧重设计,其要求在设计测试用例的时候对系统进行定义,倡导使用通用的语言将系统的行为描述出来,将系统设计和测试用例结合起来,从而以此为驱动进行开发工作。    BDD的通用语言是一种近乎自然语言的描述软件的形式。 BDD整个测试流程如图所示: ?

    2.7K60发布于 2018-01-16
  • 来自专栏超级架构师

    【软件设计】BDD由内而外采用策略

    有一个明显但被忽视的采用BDD的策略非常出色。 一个被广泛采用的BDD可以带来不同。这只是分享同一个例子的问题,在软件开发的三个主要角色上有相同的共识。 经典的BDD采用策略 经典的策略是教三个主要角色通过Gherkin 进行协作。业务人员学习编写场景,开发人员将其转换为代码,QA验证它们。 因此,采用失败,并以两种可能性之一告终:BDD停止,或BDD继续处于次优状态,永远无法充分发挥其潜力。 由内而外的BDD采用策略。 这种策略是如此明显,以至于我不知道我们怎么都没有注意到它。 BDD是开发人员的需求,而不是业务,也不是QA。开发人员创建它是为了满足它的需求,然后它传播开来。BDD在开发者手中太强大了,以至于它一直在增长和传播,直到今天。那么,为什么不复制这种策略呢? 由内而外的BDD采用策略是模仿BDD本身的创建,但速度更快。它是由内而外的,因为它从开发人员开始,并通过业务和QA展开。在这个策略中,BDD不是传授的东西,而是希望的东西。

    38610编辑于 2022-06-02
  • 来自专栏JetpackCompose M3

    采用BDD原则在Jetpack Compose进行 UI Test

    引言随着界面复杂度的增加,有效的测试策略真的很重要,BDD是一种软件开发方法论,强调从用户角度定义系统的行为,和现代UI Test的需求高度契合。 BDD风格的UI测试框架首先需要了解基本概念:@Given: 描述Test的前提条件。@When: 表示用户执行的操作。@Then: 验证操作的结果是否符合预期。 使用BDD风格编写测试案例如果要为一个简单的按钮编写BDD风格的测试案例,这个按钮点击后会改变文本内容。 编写BDD风格的测试案例实际注解不存在 Jetpack Compose的测试lib中,但可以通过命名约定模仿它们。 此外,利用工具如 Cucumber 等可以进一步增强BDD流程的正式性和自动化程度。谢谢大家阅读 )

    37510编辑于 2025-08-03
  • 来自专栏网管叨bi叨

    使用 Go Convey 做BDD测试的入门指南

    本文介绍的所有内容在我的专栏《Go项目搭建和整洁开发实战》中都有更详细的实战案例练习,为大家展示怎么给项目的核心业务逻辑做基于行为驱动的BDD测试。 Convey 函数是可以嵌套的,这样我们就可以构造出来一条测试的行为路径,帮助我们写出BDD风格的单测。 结合我们在description参数中的描述,我们就可以建立起来类似BDD(行为驱动测试)的语义: Given【给定某些初始条件】 Given a simple passowrd 给定一个简单密码 When password complexity checking 当对它进行复杂度检查时 Then 【结果应该是】 Then the checking result should be false 结果应该是 false BDD ShouldNotHappenWithin, duration, time.Now()) 总结 本文介绍的所有内容在我的专栏《Go项目搭建和整洁开发实战》中都有更详细的实战案例练习,为大家展示怎么给项目的核心业务逻辑做基于行为驱动的BDD

    40610编辑于 2025-02-25
  • 来自专栏编程之旅

    iOS开发——TDD、BDD方法以及Kiwi单元测试框架

    TDD和BDD 在GitBook上看过一篇文章,一个不写单元测试的程序员不是一个好的攻城狮。坦白的说,在Objective-C这个领域的里,我见过的会主动写单元测试的程序员还是比较少的。 再进入讨论单元测试之前,我们来谈谈不一样测试思想 行为驱动开发(英语:Behavior-driven development,缩写BDD)是一种敏捷软件开发的技术,BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识 上面讲述了TDD和BDD的思想差别,看到这里,你们认为当前的iOS开发适合怎样的测试思想。不知道你们开发中的实际情况是如何,在现在大环境赶进度的开发下,一般我是采用BDD的测试方法。 而谈到BDD,我要给大家介绍一个iOS中非常有名并且好用的BDD框架 —— Kiwi。 Kiwi Kiwi的安装 项目主页: https://github.com/kiwi-bdd/Kiwi 使用Cocopods 安装 target :YourProjectTests do pod

    1.8K20发布于 2018-08-30
  • 来自专栏iOS122-移动混合开发研究院

    Kiwi,BDD行为测试框架--iOS攻城狮进阶必备技能

    简介 Kiwi 是一个适用于iOS开发的行为驱动测试框架,旨在提供一个足够简单易用的BDD库. 项目主页: https://github.com/kiwi-bdd/Kiwi 示例下载: https://github.com/ios122/ios122 使用Cocopods 安装 target :AmazingAppTests

    2.9K80发布于 2018-01-02
领券