行为驱动开发 行为驱动开发英語Behaviordriven development缩写BDD是一种敏捷软件开发的技术它鼓励软件项目中的开发者QA和非技术人员或商业参与者之间的协作BDD最初是由Dan North在年命名它包括验收测试和客户测试驱动等的极限编程的实践作为对测试驱动开发的回应在过去数年里它得到了很大的发展 年在伦敦发表的敏捷规格BDD和极限测试交流中Dan North对BDD给出了如下定义 BDD是第二代的由外及内的基于拉pull的多方利益相关者的stakeholder多种可扩展的高自动化的敏捷方法它描述了一个交互循环可以具有带有良好定义的输出即工作中交付的结果已测试过的软件 BDD的重点是通过与利益相关者的讨论取得对预期的软件行为的清醒认识它通过用自然语言书写非程序员可读的测试用例扩展了测试驱动开发方法行为驱动开发人员使用混合了领域中统一的语言的母语语言来描述他们的代码的目的这让开发者得以把精力集中在代码应该怎么写而不是技术细节上而且也最大程度的减少了将代码编写者的技术语言与商业客户用户利益相关者项目管理者等的领域语言之间来回翻译的代价 Dan North创造了首个BDD框架JBehave之后是Ruby语言的基于故事的RBehave后来被纳入了RSpec项目他还与大卫赫利姆斯基Aslak Hellesøy及其他人开发了RSpec并一起编写了The RSpec Book Behaviour Driven Development with RSpec Cucumber and FriendsRSpec中第一个基于故事的框架后来被主要由Aslak Hellesøy开发的Cucumber 页面存档备份存于互联网档案馆取代  年参与了围绕BDD进行的首轮讨论的克里斯马茨提出了特性注入Feature Injection的想法使BDD可以覆盖分析空间并提供从初期的展望到编码和发布的整个软件生命周期过程的改造