测试之谈TDD、BDD和ATDD

前言:做测试也快两年了,虽然期间也接触到敏捷开发,但是只是对项目组中的流程有个了解。偶然的看到TDD和BDD,是敏捷开发技术中比较高频的两个概念,但实际自己并不能说出其中的区别和联系,刚好借此机会学习了解,通过CSDN记录学习的疑问

正文:

一、概念:

TDD:Test-Driven Development(TDD)测试驱动开发,它是一种测试先于编写代码的思想用于指导软件开发。测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。

BDD:Behavior Driven Development行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作

ATDD:验收测试驱动开发(Acceptance Test Driven Development)TDD 只是开发人员的职责,通过单元测试用例来驱动功能代码的实现。在准备实施一个功能或特性之前,首先团队需要定义出期望的质量标准和验收细则,以明确而且达成共识的验收测试计划(包含一系列测试场景)来驱动开发人员的TDD实践和测试人员的测试脚本开发。面向开发人员,强调如何实现系统以及如何检验。

二、TDD和BDD联系与区别

测试之谈TDD、BDD和ATDD_第1张图片

总而言之,TDD和BDD解决的是不同层级的问题,BDD更多的是对TDD的补充,而不是像有些说法BDD是对TDD很好的回应。同时相较于现在比较完善的项目这两者都集合在开发过程中使用;可能一些小型的公司or项目,相对于没有更多的关注TDD层面,甚至可以说并未涉及到敏捷开发层面。

三、应用及问题

流程:先写BDD的场景 -> 再写单元测试 -> 写代码让单元测试通过 ->让BDD的scenario通过

可能会出现的问题:当开发时间很紧的时候,开发很容易会先写代码,再补TDD测试,再补BDD测试

2. 自动化框架稳定性问题:

  •   测试有可能会随机挂
  •   测试跑的时间过长
  •   维护成本问题
  •   测试覆盖率的要求
  •   有一些场景不是很适合BDD(比如单纯UI测试,经常变化的scenario


你可能感兴趣的:(测试之谈TDD、BDD和ATDD)