BDD是什么
BDD,Behavior Driven Development,行为驱动开发。
如果你不是很了解BDD,可以参考我四年前的一篇文章说起BDD,你会想到什么,其中介绍过BDD的理论和应用。
我们可以这样来概括BDD:
- BDD采用统一的领域特定语言(DSL)来描述业务场景和用户行为,让团队各个不同角色对业务需求有一致认识,从而做到更有效的沟通和更高效的协作;
- BDD的目的不是自动化测试,但是BDD可以有效指导自动化测试,基于BDD的自动化测试相当于维护了一份需求活文档,对项目需求的维护和管理非常有价值。
BDD应用框架之Cucumber
BDD的应用
BDD是为解决下面三个方面的问题而生:
- 协作:多个角色在一个团队,如何从一致理解需求开始高效协作?
- 语言:不同的角色业务、开发和测试人员分别说自己的语言,如何统一语言,更有效的沟通?
- 文档:编写和维护的成本都很高,如何低成本的维护一份有价值的文档?
Cucumber是一款支持BDD的框架,有助于帮助团队解决以上问题。
Cucumber支持用自然语言描述业务场景,需要遵循Given-When-Then的格式,这样就可以容易的对应到自动化测试的3A步骤Arrange-Act-Assert,从而实现业务场景的自动化测试。
Cucumber的理想是将可执行的需求规范、自动化测试和活文档有机的结合,如下图所示:
理想很丰满,现实很骨感。Cucumber在实际应用中的情况又如何