BDD 的简介
作者:互联网
BDD通常有助于领域专家理解实现而不是暴露代码级别测试。它通常以GWT格式定义:GIVEN WHEN&THEN。
-----------描述清楚我们究竟要什么,帮助我们划清边界,发现边界间的联结关键.
GIVEN从句描述的是场景的前提条件、初始状态,通常是一种现在完成时态;
WHEN从句是采取某个动作或者是发生某个事件,一定是动词,通常是一般现在时;
THEN从句用“应该…(should be…)”来描述一种期望的结果,而不用断言(assert),后者与测试关联更紧密。
什么样的项目适合BDD?
简单的一次性项目,沟通交流成本都较低的情况下,没有必要使用BDD;
业务比较轻量,重在技术方面的项目,可以只使用TDD,或者简单的白板上的BDD,不需要在BDD工具记录需求用例文档;
业务复杂、团队成员较多的项目,沟通成本高,BDD很有必要。
BDD有什么好处?
BDD的作用是把利益关系人、交付团队等不同方面的项目相关人员集中到一起,形成共同的理解,共同的价值观以及共同的期望值。它可以帮助我们:
关注用户行为
交付最有用的功能
在团队内部维护一致的术语
探究需求实例
编写和维护需求
创建活的文档
消除协作与沟通障碍
参照:https://hongchenkezhan.blog.csdn.net/article/details/107296330
活文档会花费 QA 较多时间来记录和管理吗?
这个“活”字看大家怎么去理解,
开发们的单元测试和 swagger 文档就是典型的例子,
对于 QA 来说活文档是自动化测试代码的更改,要改其实和修改传统的测试用例一样的,花时间维护活文档带来的好处是会使活文档与产品代码保持一致性,并且及时提醒哪些文档错了需要修改,
所以花时间去管理是很有意义的。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
Gherkin是自然语言测试的简单语法。
一个完整的测试是由多个step组成的,step即最小单元,如何复用step是非常关键的问题。
多个step组成一个Scenario,即一个完整的测试case。
多个Scenario组成一个Feature,即一组相关的测试case。
关键字
Feature:该测试文件的描述
Scenario Outline :该测试文件中某一个场景的描述
Given,When,Then,And,But(steps):某一个场景的具体步骤
Example(or Scenario):某一个场景的具体入参和期望
Cucumber是可以执行它们的工具。附cucumber官网链接
cucumber本质上是使用根据正则表达式匹配自然语言,然后依次执行对应的方法,以达到测试的目的。
如果使用常规思路去写单元测试的话,应该是新建两个 @Test:
一个是传 Friday 进去,最后给断言;
一个是传 !Friday 进去,最后给断言;
该方法,代码覆盖可以实现,但是业务不清晰,我们需要去读业务代码才能知道;
如果使用BDD的话,业务代码就只有一套,我们只需要定义 入参 和 期望 即可,方便扩展,业务清晰。
————————————————
参照:https://blog.csdn.net/qq_33101675/article/details/107296767
标签:BDD,Scenario,简介,从句,step,文档,测试 来源: https://www.cnblogs.com/ww-xiaowei/p/16491553.html