问题

测试驱动的开发(TDD)和行为驱动开发(BDD):你在您的项目中使用哪种方法?

  • 2023年5月2日
  • 3回复
  • 51的观点

Userlevel 4
徽章 + 3
  • 0.8跨声速
  • 6个回答

测试驱动的开发(TDD)和行为驱动开发(BDD)是两个流行的软件开发方法,优化测试和质量保证。188金宝搏官网登录app

TDD集中在编写代码之前编写测试

BDD集中在编写代码之前定义系统的行为。

你用哪一个?你用,还是第三个?


3回复

Userlevel 6
徽章 + 2

国际海事组织,选择TDD(测试驱动开发)和BDD(行为驱动开发)取决于各种因素,包括

  1. 您的项目的性质
  2. 团队动力,
  3. 个人喜好。让我来解释一下:
  • TDD是一种软件188金宝搏官网登录app开发实践,编写实际代码之前编写测试。这个过程通常涉及编写一个失败的测试,编写代码让测试通过,然后重构代码。TDD强调发展分解成更小的、易于管理的步骤,有助于确保代码满足指定的需求。TDD是适合于项目需求定义和重点是个别单位代码的正确性和行为(如函数、方法类)。它促进高水平的测试覆盖率,可以提高代码的质量,可维护性,以及促进重构。TDD也可以作为文档的代码应该如何使用。
  • BDD是TDD的延伸,关注系统的行为和交互从用户的视角。BDD强调合作开发人员、测试人员和业务利益相关者定义需求在一个更自然语言格式的形式(通常是“Given-When-Then”场景)。然后使用这些场景为基础编写测试和代码。BDD是有用的项目与复杂的业务逻辑或那些需要技术和非技术团队成员之间的密切合作。它有助于消除技术和业务涉众之间的差距通过提供一个共同的语言来描述系统行为。BDD鼓励一个更全面的方法来测试,确保软件从用户的角度表现如预期。188金宝搏官网登录app
  • 其他方法:还有其他的开发方法,如验收测试驱动开发(ATDD),其重点是捕获需求编写测试验收标准和基于这些标准。股票和BDD相似但通常包括一个狭义的范围。

最终的选择取决于您的项目的具体需求和上下文。考虑一些因素,比如项目复杂性、团队组成、利益相关者的参与和协作所需的水平。你可能还会发现,有助于结合元素TDD和BDD或调整它们以适合您的特定需求。

值得注意的是,无论您选择的方法,最重要的方面是要优先考虑编写测试,确保良好的测试覆盖率。测试有助于早期发现问题,在重构提供了信心,有助于您的软件的总体质量。188金宝搏官网登录app

Userlevel 1
徽章

我与Seb玫瑰。他们都是相同的。

从他的博客“介绍TDD和BDD”https://cucumber.io/blog/bdd/intro-to-bdd-and-tdd/

BDD, TDD, ATDD,规范的例子,他们都是一样的。他们在外面工作,使用示例指定系统应该如何行为,这些例子是表示在无处不在的整个团队可以理解的语言,包括非技术成员,然后,一旦自动化,你得到验证,这意味着你可以告诉当你的文档是最新的,它意味着你知道当回归爬,这意味着你可以看到有多少系统已经实现的开发团队。

Userlevel 5
徽章 + 3

两者都有。

TDD由软件开发部门生产生活,BDD整个项目团队(或3朋友:业务+开发人员+测试人员一起)为188金宝搏官网登录app了帮助理解需求和测试它们。

回复


Learn more about our cookies.<\/a>","cookiepolicy.button":"Accept cookies","cookiepolicy.button.deny":"Deny all","cookiepolicy.link":"Cookie settings","cookiepolicy.modal.title":"Cookie settings","cookiepolicy.modal.content":"We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.<\/a>","cookiepolicy.modal.level1":"Basic
Functional","cookiepolicy.modal.level2":"Normal
Functional + analytics","cookiepolicy.modal.level3":"Complete
Functional + analytics + social media + embedded videos"}}}">
Baidu