转载浅谈TDDBDD与ATDD软件开发

Posted 垄上行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转载浅谈TDDBDD与ATDD软件开发相关的知识,希望对你有一定的参考价值。

转载自(此处仅供学习):http://blog.csdn.net/zhenyu5211314/article/details/22033295

1. 首先了解一下这三个开发模式都是什么意思:

 

  • TDD:测试驱动开发(Test-Driven Development)

 

测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。TDD首先考虑使用需求(对象、功能、过程、接口等),主要是编写测试用例框架对功能的过程和接口进行设计,而测试框架可以持续进行验证。

 

  • BDD:行为驱动开发(Behavior Driven Development)

 

行为驱动开发是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。主要是从用户的需求出发,强调系统行为。BDD最初是由Dan North在2003年命名,它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。

 

  • ATDD:验收测试驱动开发(Acceptance Test Driven Development)

 

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

 

2. 软件开发过程中最常见的两个问题

需求和开发脱节:

 

  • 用户想要的功能没有开发
  • 开发的功能并非用户想要
  • 用户和开发人员所说语言不同
开发和测试脱节:
  • 开发和测试被认为割裂
  • 从开发到测试周期过长
  • 测试自动化程度低
3. 如何解决上面说的两个问题
使用BDD和ATDD可以解决需求和开发脱节的问题,首先他们都是从用户的需求出发,保证程序实现效果与用户需求一致。
这个过程可以使用基于BDD的自动化测试工具Cucumber。
 
解决开发和测试脱节主要从以下几个方面入手:
  • 开发的全过程都要贯穿测试:单元测试,集成测试和系统测试
  • 测试需要自动化
  • 所有测试通过,开发才算完成
  • 持续集成,保证每一次集成系统都能运行
4. 如何进行CI(Continuous Integration)也就是持续集成
       ● 持续提交代码 (Check-in)
                ○ 一天之中多次提交
       ● 持续构建代码 (Build)
                ○ 保证在任何时刻代码是可以继续开发的
       ● 持续部署代码 (Deploy)
                ○ 保证始终有一个可以部署的版本
       ● 持续测试代码 (Test)
                ○ 每次提交均执行单元测试
                ○ 每天一次或数次集成测试
                ○ 每天一次或数次系统测试
持续集成工具:Jenkins
 
5. 一张图比较TDD与ATDD

以上是关于转载浅谈TDDBDD与ATDD软件开发的主要内容,如果未能解决你的问题,请参考以下文章

理解单元测试TDDBDD

浅谈 PHP 与手机 APP 开发(API 接口开发)

浅谈框架模式 MVCMVP 和 MVVM

浅谈混合开发与Android,JS数据交互

ATDD和TDD的区别是啥

持续集成和验收测试驱动开发