BDD是TDD的一种衍生,通过特定的BDD框架,用自然语言或类自然语言,按照编写用户故事或者用户用例的方式,以功能使用者的视角,描述并编写测试用例。
BDD源于TDD并优于测试驱动开发。
之所以说BDD优于测试驱动开发,并非空穴来风,主要原因如下:
1、更加以人为本:TDD更多关注于测试接口实现逻辑正确性,而BDD重点关注用户使用功能时的行为和结果是否与符合预期。
2、更加以人为本:TDD基本上是使用编程语言来描述测试用例,而BDD则是用自然语言来描述测试用例。
3、更加以人为本:TDD不关注客户价值,而BDD从客户价值开始书写
4、更加以人为本:TDD的需求文档和测试用例是分别存储的,而BDD的需求文档就是测试用例
5、更加以人为本:TDD要求所有被覆盖的接口都要进行良好重构,而BDD只要求对暴露给客户使用的接口甚至UI具有可测试性
6、更加以人为本:TDD更多是团队纪律或者领导推动的,而BDD是客户需求拉动的