您的位置:首页 > 其它

浅谈TDD、BDD与ATDD软件开发 (敏捷开发模式)

2017-04-05 21:41 405 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: