深度解读TDD测试驱动开发

本文结构:

什么是TDD

为什么要TDD

怎么TDD

FAQ

学习路径

延伸阅读

什么是TDD

TDD有广义和狭义之分,常说的是狭义的TDD,也就是UTDD(UnitTestDrivenDevelopment)。广义的TDD是ATDD(AcceptanceTestDrivenDevelopment),包括BDD(BehaviorDrivenTestDevelopment)和Consumer-DrivenContractsDevelopment等。本文所说的TDD指狭义上的TDD,也就是「单元测试驱动开发」。

TDD是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD是XP(ExtremeProgramming)的核心实践。它的主要推动者是KentBeck。

TDD有三层含义:

Test-DrivenDevelopment,测试驱动开发。

Task-DrivenDevelopment,任务驱动开发,要对问题进行分析并进行任务分解。

Test-DrivenDesign,测试保护下的设计改善。TDD并不能直接提高设计能力,它只是给你更多机会和保障去改善设计。

为什么要TDD传统编码方式VSTDD编码方式

传统编码方式

需求分析,想不清楚细节,管他呢,先开始写

发现需求细节不明确,去跟业务人员确认

确认好几次终于写完所有逻辑

运行起来测试一下,靠,果然不工作,调试

调试好久终于工作了

转测试,QA测出bug,debug,打补丁

终于,代码可以工作了

一看代码烂的像坨屎,不敢动,动了还得手工测试,还得让QA测试,还得加班...

TDD编码方式

先分解任务,分离







































北京中科医院都是假的
北京中科医院都是假的



转载请注明:http://www.xxcyfilter.com/zyyq/7644.html