引言:
最近一直忙公司的事情,一直处于混乱中,没有安静下来去思考,这些内容也是闲暇的晚上开始慢慢去搞,以下三篇是BDD的内容
一.概念:
TDD:
测试驱动开发(Test-DriverDevelopment)的简称,是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析、设计和质量控制量化的过程。
ATDD:
验收测试驱动开发(AcceptanceTest Driven Development),验收测试驱动开发是一种实践。面向开发人员,强调如何实现系统以及如何通过验收测试。
BDD:
行为驱动开发(BehaviorDriven Development)的简称,建立在TDD的基础之上,也是一种敏捷软件开发技术,它鼓励软件项目中开发者、QA、非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。以下主要使用Cucumber进行操作(一提到BDD就能立马想到的工具):
二.Cucumber框架(工具)
1.Cucumber介绍:
Cucumber是一种支持行为驱动开发(BDD)的工具。Cucumber读取以纯文本编写的可执行规范的测试用例,并验证软件是否符合这些规范所述。(说白了就是提供一个我们自己能理解的语言,通过语言来编写测试用例)。Cucumber支持大多数的编程语言,如Ruby,JAVA和Python,官方地址:https://cucumber.io/
2. Cucumber的特性
1)可执行性:可以像执行java/python…代码一样运行这些规范,来验证和验收产品和应用
2)规范性:可以从产品、运营、客户的角度出发,相比验证结果,他们更关心系统功能的清晰描述以及需要系统完成什么功能(主要由产品人员进行编写,开发和测试人员严格的按照该规范进行下面的操作)
3.Cucumber支持的语言输出(它的标准是gerkin语言)
|feature|”功能”|
|background|”功能背景描述”|
|scenario|”场景”|
|scenario outline|”场景大纲”|
|examples|”范例”|
|given|”*”,”假如”,”假定”,”假设”|
|when|”*”,”当”|
|then|”*”,”那么”|
|and|”*”,”而且”,”并且”,”同时”|
|but|”*”,”但是”|
|given(code)|”假如”,”假定”,”假设”|
|when(code)|”当”|
|then(code)|”那么”|
|and(code)|”而且”,”并且”,”同时”|
|but(code)|”但是”|
解释:
|feature|”功能”| 类似于一个大的模块功能,功能(feature)下包含多个场景,比如登录模块
|background|”功能背景描述”|对功能的描述、简述以及解释该模块是做什么用的
|scenario|”场景”| 类似于一个大模块下的一个测试用例(case)
|scenario outline|” 场景大纲”| 与场景一样,唯一区别于场景是场景大纲可以做数据驱动
|examples|”例子”| 场景的例子
|given|”*”,”假如”,”假定”,”假设”|
|when|”*”,”当”|
|then|”*”,”那么”|
|and|”*”,”而且”,”并且”,”同时”|
|but|”*”,”但是”|
|given(code)|”假如”,”假定”,”假设”|
|when(code)|”当”|
|then(code)|”那么”|
|and(code)|”而且”,”并且”,”同时”|
|but(code)|”但是”|
关键字,类似于测试用例中的操作步骤,如我们先要做什么,然后做什么,最后做什么
3.如何使用cucumber
1.feature编写(就是测试用例的描述)
2.生成steps(编写代码执行步骤)
3.执行steps(执行测试用例)
4.生成测试报告
网友评论