BDD(行为驱动开发)自动化测试在软件测试领域一直在发展。随着agile思想在越来越多的项目中推广,以及非开发人员在项目的更多参与,BDD风格的自动化测试被越来越多项目组采纳并实施。

BDD(Behavior Driven Development),即行为驱动开发,是敏捷开发技术之一,通过自然语言定义系统行为,以功能使用者的角度,编写需求场景,且这些行为描述可以直接形成需求文档,同时也是测试标准。

二、为什么要使用BDD

传统模式下,从客户提出需求,到输出产品,我们会经历以下流程:

  • 客户:提出需求

  • 需求分析师:分析需求,形成开发可执行的具体 Feature、Story、Taks

  • 开发:实现需求

  • 测试:编写验证步骤,验证最终产品是否满足需求

通常,由于不同的人对需求的理解不同,最终可能导致产品与客户需求存在很大差距。

BDD是基于一种“通用语言”,可以让客户、产品经理等将需求通过同一种语言描述出来,很大程度上避免了因为理解或表达不一致带来的问题,大大提高产品的交付品质。由此BDD的优势也就体现出来了:

  • 更关注业务,以用户使用产品的角度,描述用户行为以及预期结果

  • 不同角色的人都可以参与需求定义及讨论,最终达成一致理解

  • 使用同一种语言描述需求,及测试用例,很大程度上避免了因理解差异导致实现功能与需求不一致的问题

三、常用的BDD测试框架

我们在前面提到过,BDD最终形成的文档即是需求文档,也是测试规范,那么我们如何基于这些测试规范实现自动化测试呢?目前,支持BDD自动化测试的框架有很多,且支持各种不同的语言,例如:

  • Cucumber:基于Ruby编写的自动化测试框架,支持Java和.Net等多种语言

  • Behave/Lettuce/Freshen: Python style的测试框架

  • Jbehave/ beanSpec :基于Java编写的自动化测试框架

  • SpecFlow:.Net测试框架

测试框架选型需要根据实际情况而定,例如项目组技术背景,用例覆盖范围,产品性能要求等等,接下来我们详细了解一下Cucumber。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐