区分TDD和BDD
-
作为一个开发人员,你能够分的清什么是测试驱动开发(TDD - Test Driven Development) 和行为驱动开发(BDD - Behavior Driven Development)吗?
TDD是测试驱动开发(Test-Driven Development)的英文简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。
行为驱动开发(Behavior-Driven Development)(简写BDD),在软件工程中,BDD是一种敏捷软件开发的技术。行为驱动开发(BDD)是测试驱动开发的延伸,开发使用简单的,特定于领域的脚本语言。这些DSL将结构化自然语言语句转换为可执行测试。结果是与给定功能的验收标准以及用于验证该功能的测试之间的关系更密切。因此,它一般是测试驱动开发(TDD)测试的自然延伸。
与TDD相比,BDD是通过编写行为和规范来驱动软件开发。 行为和规范可能看起来与测试非常相似,但是它们之间却有着微妙但重要的区别。不过你只需要记住非常重要的一点:BDD旨在消除TDD过程中可能造成的问题。并且与TDD相比,BDD的措辞更加的严谨和细致,也就导致了BDD的描述更加繁琐。
BDD更注重功能本身而非单纯的测试用例运行结果。这也是我们经常听到的一句关于BDD本质的另外一种表达方式:BDD帮助开发人员设计(design)软件,TDD帮助开发人员测试(test)软件。BDD可能有助于防止问题,但并不能保证消除所有问题。一些由糟糕的代码结构,不好的编程实践引发的问题不可能通过BDD就可以消除的。只是如果开发者BDD测试写的很糟糕,那基本上也不可能开发出健壮的功能。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏