1、行为驱动开发(BDD)
行为驱动开发 (BDD) 是一种开发技术,它更侧重于软件应用程序的行为。主要是它创建一个可执行规范,该规范由于相应的功能不存在而失败,然后编写可以使规范通过的最简单的代码,结果我们在系统中实现了所需的行为。实际上,这是一种团队方法,开发人员,客户,QA都参与其中。
BDD的流程:
- 编写应用程序的行为
- 编写自动化脚本
- 然后实现功能代码
- 检查行为是否成功,如果不成功,则修复它
- 组织代码(可选)
- 对其他行为重复上述步骤
2、测试驱动开发(TDD)
测试驱动开发(TDD)是一种开发技术,它更侧重于软件应用程序/产品功能的实现。主要是指编写一个失败的测试用例,因为指定的功能不存在,然后更新可以使测试用例通过的代码,结果我们在系统中实现了该功能。实际上,这是一种开发人员参与其中的开发实践。
TDD的流程:
- 添加测试用例
- 运行测试用例并观察测试失败
- 更新代码
- 再次运行测试用例
- 重构代码(可选)
- 对另一个测试用例重复这些步骤
BDD与TDD的区别:
编号 | 行为驱动开发 | 测试驱动开发 |
---|---|---|
1 | 行为驱动开发是一种开发技术,它更侧重于软件应用程序的行为。 | 测试驱动开发是一种开发技术,它更侧重于软件应用程序/产品功能的实现。 |
2 | 在BDD中,参与者是开发人员,客户,QA。 | 在TDD中,参与者是开发人员。 |
3 | 主要是它创建一个可执行规范,该规范由于相应的功能不存在而失败,然后编写可以使规范通过的最简单的代码,结果在系统中实现了所需的行为。 | 主要是指编写一个失败的测试用例,因为指定的功能不存在,然后更新可以使测试用例通过的代码,结果在系统中实现了该功能。 |
4 | 它的主要重点是系统要求。 | 它的主要重点是单元测试。 |
5 | 在BDD中,起点是一个场景。 | 在TDD中,起点是一个测试用例。 |
6 | 这是一种团队方法论。 | 这是一种发展实践。 |
7 | 这里用于编写行为/场景的语言是简单的英语。 | 这里使用的语言类似于用于功能开发的语言,如编程语言。 |
8 | 在BDD中,所有利益相关者之间都需要协作。 | 在TDD中,只有在开发人员之间才需要协作。 |
9 | 对于由用户行为驱动的项目开发来说,这是一个很好的方法。 | 对于涉及 API 和第三方工具的项目来说,这是一个很好的方法。 |
10 | 使用的一些工具是Cucumber,Dave,JBehave,Spec Flow,Concordian,BeanSpec等。 | 使用的一些工具是JBehave,JDave,Cucumber,Spec Flow,BeanSpec,FitNesse等。 |
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/295071.html