# BDD介绍

### 什么是BDD

Behavior-driven development

In software engineering, behavior-driven development (BDD) is a software development process that emerged from test-driven development (TDD).Behavior-driven development combines the general techniques and principles of TDD with ideas from domain-driven design and object-oriented analysis and design to provide software development and management teams with shared tools and a shared process to collaborate on software development

[详情](https://en.wikipedia.org/wiki/Behavior-driven_development)

### BDD产生的背景

* 软件与客户需求之间出现偏差
* 开发与需求之间产生理解误差
* 开发与测试对需求产生偏差
* 测试与产品经理对需求的理解不一致

为什么软件开发过程中会出现这么多问题呢?

* 站在不同的角度看问题
* 客户的需求未真正理解并传达
* 客户不知道如何去表述需求
* 客户与软件开发者所处行业不同

### 如何解决这些问题

采用BDD工作流

首先我们需要跟客户说同一种语言(DSL),也就是站在同一个维度讨论问题。比如我们规定一些专有名词,B端表示卖家,C端表示买家之类的。

1. 客户先描述需求
2. 根据需求先写出自然语言的用例(用例即文档)
3. 实现用例
4. 运行用例
5. 用例运行失败
6. fix失败用例
7. 添加用例
8. 运行用例
9. ...
10. ...
11. ...

### BDD术语

* Feature: 用例名
* Scenaro: 测试场景
* Given: 前置条件,对应3A里的arrange
* When: 测试步骤,对应3A里的act
* Then: 断言,对应3A里的assert

最新文章

  1. 人人都是 DBA(VI)SQL Server 事务日志
  2. 高可用与负载均衡(1)之linux系统的数据链路层负载均衡
  3. BZOJ1012[JSOI2008]最大数maxnumber 题解
  4. POJ 2001:Shortest Prefixes
  5. Matrix-Tree定理
  6. Windows 7 IIS HTTP 错误 500.21 – Internal Server Error 解决方法
  7. 8、WPF体系架构和运行机制
  8. Helpers\PHPMailer
  9. WPF自定义圆形按钮样式资源文件
  10. Android高级开发专题晋升班
  11. 使用Jenkins进行持续集成ionic3项目
  12. 构建微服务开发环境1————如何安装JDK
  13. Codeforces Round#403 (Div. 1)
  14. 文本离散表示(二):新闻语料的one-hot编码
  15. Python游戏编程入门3
  16. jdk1.8.0环境变量设置
  17. Oracle 11g 的 自动内存管理
  18. Java基础(basis)-----关键字break、continue、return的区别
  19. a:hover应用精粹
  20. cocos源码分析--绘制顺序LocalZOrder、GlobalZOrder、OrderOfArrival

热门文章

  1. Ubuntu 17.04 允许使用root ssh登录
  2. Redis搭建(二):主从复制
  3. java基础之io流总结二:File类基本应用
  4. Leetcode:Merge k Sorted Lists分析和实现
  5. 在VMware中为Red Hat配置静态ip并可访问网络-Windows下的VMware
  6. 17-取石子-hdu1846(巴什博奕)
  7. mvc json 日期问题的最简单解决方法
  8. 7.内网渗透之windows认证机制
  9. 7.linux安全基线加固
  10. js实现选项卡切换