`
walkes
  • 浏览: 27041 次
社区版块
存档分类
最新评论

TDD简介(转)

阅读更多

TDD = Test Driven Development,是从04年开始软件开发领域的一大热点,google一下英文可以找到大量的内容,不过国内这方面的讨论不多。

顾名思义,TDD是一种测试驱动的开发模式,属于XP-极限编程的核心内容之一。TDD的开发流程是:设计某一功能,编写其测试函数(注意,这时实现这个功能的代码其实还不存在),使测试失败,编写代码,使测试通过,增加新的测试,编写更多的代码来pass更多的测试。

TDD的好处主要有几个:
1、采用“进化”式的开发流程,由于新产生的任何代码必须pass已存在的所有测试,所以可以尽早发现新代码引发的潜在bug,将发现bug的时间大大缩短,提高了初期代码的质量。稍微有点经验的人都知道,bug发现得越早,越容易解决。(在修复了一个存在于系统中4年的bug以后,我对这一点体会颇深)
2、在测试的驱动下,任何新加入的代码都必须是阶段可测的,这就迫使程序员划分程序的逻辑结构,提取相对独立代码,更多的采用OOP继承来描述逻辑层次。更进一步的,促使程序员更多的采用接口,来实现mock object。
3、由于任何新代码都有配套测试代码,自然而然的,测试代码就成为了新模块的描述文档,其中包含了如何建立使用新模块以及期望达到什么样的效果。

TDD在软件工业中的应用刚刚开始,它对软件开发各个阶段的影响正在被尝试、发现、评估和讨论。而TDD的具体实现也有很多内容值得深入探索,已经有成为一项专门产业的趋势。例如我刚刚完成了一套框架,团队成员可以随时加入获新建测试项目,每当发布新的版本时,系统将自动编译所有代码以及测试代码,初始化测试数据库,自动运行所有测试程序,在WEB服务器上生成测试报告,将报告链接email给相关人员。可以预见,不久的将来一定会有专门的商业软件来实现这些功能。到那时,传统的编译可能就要改名为编译/测试了。

分享到:
评论

相关推荐

    TDD与LTE FDD技术简介和比较

    "LTE TDD与FDD技术简介和比较" LTE(Long Term Evolution)是3GPP(3rd Generation Partnership Project)定义的一种无线通信标准,旨在提高无线通信系统的数据速率、覆盖范围和系统容量。LTE技术存在两种双工方式...

    java-junit-basic:TDD 入门Java 编

    编程简介(Java + JUnit版)为什么要学习编程? “与机器竞争”( )我们处于摩尔定律的后半部分。ICT领域正在发生不可预测的演变。转到控制计算机的一侧。设计过程。从一个模糊的想法开始,使其成为一个可行的项目...

    TDLTE网络概述与基站设备简介.pptx

    【TD-LTE组网方案与基站设备简介】 TD-LTE的组网方案通常包括宏站、微站和家庭基站(eNodeB)等多种形式,以覆盖不同的地理环境和用户需求。基站设备主要包括射频单元(RRU)、基带处理单元(BBU)和传输设备,它们协同...

    玩转android.zip

    一、Kotlin简介 Kotlin是JetBrains公司推出的一种静态类型的编程语言,设计时充分考虑了Java开发者的需求,同时引入了许多现代编程语言的特性,如空安全、类型安全和表达式导向编程。Kotlin与Java无缝集成,可以在...

    tamagotchi-kata:使用Cucumber用TDD构建一个Tamagotchi

    克隆存储库后,转到项目所在的文件夹,然后执行gradle包装器: ./gradlew cucumber 代码简介 为此,使用了Kata Cucumber-JVM。 请参阅src/test/resources/com/softwarecraftmanship/tamagotchi/功能文件。 请...

    europython2018:熊猫简介,测试和测试驱动的数据分析材料

    **标题:“europython2018:熊猫简介,测试和测试驱动的数据分析材料”** 这个标题揭示了本次教程的核心内容,主要涵盖了三个方面:Pandas的介绍、数据分析的测试方法以及测试驱动开发(TDD)在数据分析中的应用。...

    CMW500-LTE射频测试简介

    在TDD模式中,一个无线帧同样包含10个子帧,但其结构根据DL和UL的配置而变化,特别子帧可能用于DL到UL的转换点。 LTE设备在发射时必须遵循一定的功率分布规则,包括最大发射功率、发射功率控制以及功率谱密度等要求...

    JAVA各种系统框架图简介

    在Java开发领域,框架是构建...文档"JAVA各种系统框架图简介.doc"可能包含了这些框架的详细图解,帮助进一步理解它们的工作原理和使用方式。在实际开发中,理解并熟练运用这些框架,可以极大地提高开发效率和软件质量。

    td-lte物理层简介

    - **FS2**:专门用于TDD(Time Division Duplexing)模式下,一个无线帧同样包含10个子帧,但其中包含特殊子帧(Special Subframe)。特殊子帧由DwPTS(Downlink Pilot Time Slot)、GP(Guard Period)和UpPTS...

    SIM7600CE-4G-HAT-Manual-CN_.pdf

    - 支持多种通信频段,包括LTE FDD/TDD、WCDMA/TD-SCDMA、CDMA2000、GSM/GPRS等。 - 提供的网络系统包括4G、3G、2.5G和2G。 - 支持的传输速率上行最高可达1.8Mbps,下行最高可达150Mbps,具体速率根据网络环境和SIM...

    零基础学python全套课后题带目录.doc

    - 测试驱动开发(TDD) ### 第 23、24 课:高级特性与最佳实践 - 装饰器与上下文管理器 - 迭代器与生成器 - 并发编程(多线程、多进程) - 性能优化与代码重构 - 设计模式简介 ### 第 25 课:云计算与容器化 - ...

    J2EE软件工程师必读书目.

    - 测试驱动开发(TDD)在企业级项目中的实践 #### 8. Java Web开发详解:XML+XSLT+Servlet+JSP深入剖析与实例应用 - **书籍简介**:本书由孙鑫编著,是一本全面介绍Java Web开发技术的著作。内容涵盖了从基础知识到...

    ZF-BLE Joint Detection for TD-SCDMA

    #### TD-SCDMA简介 TD-SCDMA是一种用于移动通信的第三代无线技术标准,它采用时分双工(TDD)方式工作,支持对称和非对称业务。TD-SCDMA的主要特点包括: - **频谱效率高**:由于采用了智能天线、联合检测等技术,...

    思维导图-华为技术有限公司c语言编程规范

    推荐使用TDD(测试驱动开发)方法,先写测试,再编写满足测试的代码。 这些规范不仅适用于华为内部开发,也是任何C语言开发者提升代码质量、降低维护成本的宝贵指南。通过遵循这些规范,开发者可以编写出更健壮、...

Global site tag (gtag.js) - Google Analytics