您的位置:首页 > 其它

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

2018-03-26 17:37 232 查看
这些知识之前就了解了一点,还没来得急总结,现在总结一下。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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: