ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BDD 的简介

2022-07-18 18:35:58  阅读:189  来源: 互联网

标签:BDD Scenario 简介 从句 step 文档 测试


 

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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有