什么是敏捷开发?
敏捷开发是一种能够响应快速变化的需求的软件开发能力。它们的具体名称、概念、过程和术语各不相同。与“非敏捷”相比,他们强调程序员团队和业务专家之间的密切协作,面对面的交流(被认为比书面文档更有效),并经常交付新的软件版本,小型和自组织的小型团队和有价值的功能编写,以及适应不断变化的需求的团队组织方法,更加关注人在软件开发中的作用。
让我首先概述一下 TDD 的几个类似版本的敏捷开发方法,比如 TDD:BDD,DDD和ATDD。在详细介绍TDD之前,先简单介绍一下这些方法:
TDD:测试驱动开发
测试驱动开发(TDD)是一种软件开发过程,它依赖于在软件完全开发之前将软件需求转化为测试用例,并通过对所有测试用例重复测试软件来跟踪所有软件开发。这与先开发软件然后创建测试用例相反。一些流行的模型很好地支持 TDD,例如 MVC 和MVP。
BDD:行为驱动开发(Behavior Driven Development)
行为驱动开发 (BDD) 也是一个敏捷的软件开发过程。它鼓励软件项目中的开发人员、质量保证测试人员和客户代表之间的协作。它鼓励团队使用对话和具体示例来正式形成对应用程序应该如何工作的共同理解。它来自测试驱动开发(TDD)。
ATDD:验收测试驱动开发
为了通过单元测试用例促进功能代码的实现,团队需要定义预期的质量标准和验收规则,并通过清晰一致的验收测试计划(包括一系列测试场景)。对于开发人员来说,它强调如何实现系统以及如何测试它。
DDD:领域驱动设计
DDD指的是领域驱动设计,即领域驱动开发。DDD其实就是建立在这个基础上的,因为它专注于服务层设计,专注于业务实现,结合分析和设计,不再保持分裂状态,以便正确全面地实现客户需求,构建业务模型可扩展性。