TDD - Test Driven Development 测试驱动开发
是一种使用自动化单元测试来推动软件设计并强制依赖关系解耦的技术。使用这种做法的结果是一套全面的单元测试,可随时运行,以提供软件可以正常工作的反馈。
TDD重点是培养整个研发过程的节奏感,在编写真正实现功能的代码之前先编写测试,每次测试之后,重构完成,然后再执行相同或类似的测试。该过程根据需要重复多次,直到每个单元根据所需的规格运行。
BDD - Behavior Driven Development 行为驱动开发
BDD将TDD的一般技术和原理与领域驱动设计DDD的想法相结合。BDD是一个设计活动,你可根据预期行为逐步构建功能块。
BDD的重点是软件开发过程中使用的语言和交互。行为驱动的开发人员使用他们的母语与领域驱动设计的语言结合来描述他们的代码的目的和好处。
使用BDD的团队应该能够以用户故事的形式提供大量的“功能文档”,并增加可执行场景或示例。BDD通常有助于领域专家理解实现而不是暴露代码级别测试。它通常以GWT格式定义:Given&When&Then

