TDD全称Test Driven Development,中文为测试驱动开发,顾名思义以测试来驱动开发,他的基本思路就是通过测试来推动整个开发的进行,但不只是单纯的测试工作,而是把需求分析,设计,质量控制量化的过程。先编写单元测试用例代码,测试代码确定需要编写什么功能代码实现,并在功能代码的开发实现中去不断的重构。
TDD遵循的原则如下:
- 独立测试:不同代码的测试应该相互独立,一个类对应一个测试类,一个方法对应一个测试方法。用例也应各自独立,每个用例不能使用其他用例的结果数据,结果也不能依赖于用例执行顺序。
- 一个角色:开发过程包含多种工作,如:编写测试代码、编写产品代码、代码重构等。做不同的工作时,应专注于当前的角色,不要过多考虑其他方面的细节,也就是说在写单元测试的时候要从需求出发而不是考虑具体的实现。
- 测试案例列表:代码的功能点可能很多,并且需求可能是陆续出现的,任何阶段想添加功能时,应把相关功能点加到测试案例列表中,然后才能继续手头工作,避免疏漏。
- 测试驱动:即利用测试来驱动开发,是TDD的核心。要实现某个功能,要编写某个类或某个方法,应首先编写测试代码,明确这个类、这个方法如何使用,如何测试,然后在对其进行设计、编码。
- 断言很重要:编写单元测试时,应该首先编写判断代码功能的断言语句,然后编写必要的辅助语句。
- 可测试性:产品代码设计、开发时的应尽可能提高可测试性。每个代码单元的功能应该比较单纯,每个类、每个方法应该只做它该做的事,应多考虑使用子类、继承、重载等OO方法。
- 及时重构:对结构不合理,重复等“味道”不好的代码,在测试通过后,应及时进行重构。同时遵循OO思想
- 小步前进:软件开发是复杂性非常高的工作,小步前进是降低复杂性的好办法。
优缺点:
- 优点:作为一种编程思想,的确不错,可以站在一个高度去思考问题。
- 缺点:正因为他是站在一个高度去思考问题,因此可操作性很低,同时进度成本的开销很大,如果完全照搬那么普通的一天开发量(功能实现+单元测试)在采用TDD的思想去实现的话预估需要5天。
相关推荐
#### 五、总结 “tdd_net_with_fitnesse.pdf”不仅是一本关于如何使用FitNesse进行TDD的指南,同时也包含了作者多年的经验分享和实用建议。无论是对于初学者还是有一定经验的开发者而言,都能从中获得有价值的洞见...
此外,敏捷度量、极限编程(XP)中的测试驱动开发(TDD)和行为驱动开发(BDD)也是敏捷开发的重要组成部分,它们帮助团队保持高质量的代码和快速的反馈循环。 总的来说,敏捷开发是一种强调团队合作、快速适应变化...
总结来说,"tdd_webapp"项目是一个很好的学习平台,它让我们实践如何使用Python进行TDD,了解如何结合测试框架创建健壮的Web应用。通过这个项目,开发者可以提升编程技能,掌握TDD流程,并对Python Web开发有更深入...
### 移动无线产品知识培训知识点总结 #### 一、4/5G现网无线产品概述 本章节主要介绍了华为4/5G现网无线产品的关键组成部分及其特性,包括基带单元(BBU)、主控板(UMPT系列)以及远程射频单元(RRU)等。 #### ...
- 敏捷测试实践:持续集成、自动化测试、测试驱动开发(TDD)、结对编程等。 - 敏捷测试框架:如Scrum、XUnit、Selenium等。 通过这个培训班的PPT,你可以全面了解软件测试的基本概念、方法和流程,掌握不同类型的...
总结,VS2005高级培训讲义涵盖了C++编程的多个核心领域,从基础概念到高级技术,旨在帮助开发者在VS2005环境中提升C++编程能力,实现高效、高质量的软件开发。通过深入学习和实践,开发者可以充分利用VS2005的强大...
这份北京某培训中心的课件详细介绍了软件测试的基础知识,为初学者提供了全面的学习资源。 一、软件测试的重要性 1. 验证与确认:软件测试的主要目标是验证软件是否符合既定需求,确认其功能和性能是否满足用户...
总结起来,移动通信技术从1G到3G的演进体现了通信效率和功能的显著提升,TD-SCDMA作为3G的一部分,利用TDD技术提供了更高效的数据服务,同时也面临着技术上的挑战和解决方案。随着技术的不断发展,4G甚至5G将进一步...
XP强调编程实践和技术上的卓越,如测试驱动开发(TDD)和结对编程。 3. 用户故事与迭代开发 在敏捷开发中,用户故事是描述用户需求的简短叙述,它帮助团队理解功能的实际价值。每个迭代都会完成一组用户故事,形成...
总结来说,WiMAX技术是一个复杂的无线通信系统,其物理层协议包括了多种关键技术,如单载波、OFDM、TDD/FDD双工方式,以及精心设计的帧结构来优化无线资源的管理和数据传输效率。对于初学者来说,理解这些概念是掌握...
- **测试驱动开发(TDD)**:支持生成测试用例,促进TDD实践。 5. **Rose培训教材内容** 这份“ROSE培训教材中文简版”PPT涵盖了Rose的基础操作、UML图的绘制、模型转换为代码的过程,以及如何在实际项目中应用Rose...
#### 五、总结 本培训资料详细介绍了LTE物理层的关键组成部分和技术细节,对于理解LTE系统的运作原理及其物理层设计具有重要意义。通过学习这些内容,工程师可以更好地掌握LTE技术的核心概念,并将其应用于实际的...
《LTE初级培训》 本文将对LTE(Long Term Evolution)技术进行初级的介绍,涵盖其系统架构、帧结构以及核心概念。LTE作为一种先进的无线通信标准,是4G网络的重要组成部分,为用户提供高速数据传输和低延迟的通信...
总结,软件测试是一个涉及广泛领域和深度的专业技能,涵盖从基本的测试理论到高级的自动化测试技术。这份《软件测试技术培训资料》将是你开启测试之旅的良好起点,通过深入学习和实践,你将能够熟练掌握这些关键知识...
### 大唐TD-SCDMA系统培训教材知识点详解 #### 一、TD-SCDMA概述 **TD-SCDMA**(Time Division Synchronization Code Division Multiple Access),即时分同步码分多址接入,是中国提出的第三代移动通信标准之一,...
总结,这份“易游无限软件测试培训.ppt”资料涵盖了软件测试的核心概念、策略和实践,对提升个人或团队的测试技能具有很高的价值。无论是对软件测试感兴趣的新手,还是希望深化专业能力的从业者,都能从中受益。通过...
### LTE物理层培训知识点概述 #### 一、LTE技术概览 - **3GPP长期演进(LTE)**:3GPP(第三代合作伙伴计划)为维持其在全球宽带移动通信领域的领先地位,在2004年底启动了LTE项目,并于2008年12月正式发布了LTE...
### TD-SCDMA系统基础培训知识点汇总 #### 一、TD-SCDMA系统概述 - **定义**: TD-SCDMA(Time Division-Synchronous Code Division Multiple Access)是一种时分同步码分多址接入技术,是中国提出的第三代移动通信...
可以通过阅读相关的书籍、教程或者参加培训课程来加速这一过程。 2. **时间成本**:在项目初期,TDD可能会消耗更多的时间。但是,随着项目的推进,这种前期投资会带来长期的收益。 3. **测试覆盖范围**:确保测试...
【LTE技术概述】 LTE(Long Term Evolution)是3GPP在R8版本中提出的一...总结来说,LTE技术是4G时代的代表,通过不断的技术演进和优化,为用户提供高速、低时延的移动通信体验,同时也推动了移动通信行业的持续发展。