TDD简介

TDD、BDD、DDD简介 1. TDD TDD指的是Test Drive Development,很明显的意思是测试驱动开发,也就是说我们可以从测试的角度来检验整个项目。大概的流程是先针对每个功能点抽象出接口代码,然后编写单元测试代码,接下来实现接口,运行单元测试代码,循环此过程,直到整个单元测试都通过。这一点和敏捷开发有类似之处。 TDD的好处自然不用多说,它能让你减少程序逻辑方面的错误,尽可能的减少项目中的bug, 阅读详情
TDD = Test Driven Development,是从去年开始软件开发领域的一大热点,google一下英文可以找到大量的内容,不过国内这方面的讨论不多。

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

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

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

相关推荐

BCM-BCP-DRP-运维管理之故障管理——故障的分类与处理流程

ITSM Business Continuity Manage(BCM) BusinessContinuityPlan(BCP) 偏业务 DisasterRecoveryPlan(DRP) 偏IT 天塌了,考虑在天塌了的状态下做什么,怎么开展业务就是BCP; 天塌了,考虑怎么把天撑回去,就是DRP。 DRP+BCP+供应链管理+危机管理等就是BCM (业务连续性管...

mmgithub123的博客 2720

深入理解TDD(测试驱动开发):提升代码质量的利器

在日常的软件开发工作中,我们常常会遇到这样的问题:如何在繁忙的项目进度中,保证我们的代码质量?如何在不断的迭代更新中,避免引入新的错误?对此,有一种有效的开发方式能帮助我们解决这些问题,那就是测试驱动开发(Test-Driven Development,TDD)。

测试界的彭于晏的博客 4053

【rt-thread实战解析】从零到一:基于STM32与LAN8720A的以太网驱动配置全流程

本文详细解析了在RT-Thread操作系统上为STM32F407配置LAN8720A以太网驱动的全流程。从硬件连接自查、CubeMX工程创建、PHY复位函数编写,到RT-Thread工程配置、LwIP协议栈集成,最后进行实际上电测试与网络调试,手把手指导开发者避开常见陷阱,实现稳定的以太网连接。

m2n3b4v5c6的博客 524

深度解读 - TDD(测试驱动开发)

深度解读 - TDD(测试驱动开发)

bolang789的博客 1528

二叉树随机漫步

元旦快乐! 学习到中本聪bitcoin的文章的calculation部分的时候,出现了binomial random walk,不是很明白什么是random walk。发现这个文章写的很好:https://blog.youkuaiyun.com/fireguard/article/details/16111603 随机漫步,也叫随机游走,最早是物理学中做"布朗运动"的微观粒子的运动形态来形成的一个模型,布朗运...

gjq5464的博客 1737

FreeRTOS OTA实战:从Bootloader设计到安全升级的完整流程(附MQTT示例代码)

本文详细介绍了在FreeRTOS系统中实现安全OTA固件升级的完整流程。内容涵盖从Bootloader设计、存储分区规划到与MQTT协议集成的OTA Agent任务开发,并重点解析了固件签名验证、防回滚等关键安全机制,为嵌入式物联网设备提供了一套高可靠性的远程升级解决方案。

weixin_29248653的博客 159

TDD基础-工具和框架

上篇讲述了对TDD基本的认识,那如何实践TDD呢,每位战士都应该熟悉自己的武器,coder们亦如此,因此本文主要介绍想要实践TDD相关的单元测试框架、代码覆盖率工具、模拟框架、用户界面测试、行为驱动开发工具等。...

melody12ab的专栏 999

华为防火墙双ISP出口实战:如何用策略路由实现电信联通流量自动切换(附配置截图)

本文详细解析了华为防火墙在双ISP环境下的智能选路技术,通过策略路由与健康检测的深度应用,实现电信联通流量的自动切换。文章包含实战配置截图,帮助企业解决切换延迟、路径劣化等核心挑战,提升业务连续性。

backprop5master的博客 643

学习TDD:TDD的好处

TDD的全称是Test Driver Development,测试驱动开发。就是开发要以测试为驱动。编码之前,测试先行。代码都没有,我如何测试,我连要测的对象都没有啊?这好像是个问题。 TDD的哲学为我们解答了这个问题:先编写测试用例(没有代码之前这些测试用例一个也通不过),然后再写代码让这些测试用例通过。更进一层的讲就是:编写足够的测试用例使测试失败,编写足够的代码是测试成功。我们编码的目的更...

网站开发初中级代码参考-转载 567

Nexys4DDR+OV7670实现图像灰度显示系统嵌入式

通过对硬件平台的准备、Vivado工程配置、OV7670驱动程序的编写、图像灰度处理算法的设计以及系统集成与测试,我们成功实现了一个基于嵌入式系统的图像处理应用。当系统运行时,OV7670摄像头模块将采集到的图像传输到FPGA芯片中,然后通过图像灰度处理算法将彩色图像转换为黑白图像,并在显示设备上进行显示。OV7670摄像头模块的驱动程序是实现图像采集的核心。以上代码中,我们使用了Xilinx提供的XGpio和Xil_In32函数来进行OV7670摄像头数据的读取和GPIO的初始化。OV7670驱动程序。

WangWEel的博客 337

银河麒麟编译libjpeg库并配置qt环境

银河麒麟下编译libjpeg库并配置qt环境验证

小米的修行之路 1011

测试驱动开发(TDD)实践与技巧

引言 测试驱动开发,英文全称 Test-Driven Development,简称 TDD,是一种不同于传统软件开发流程的开发方法。 在《程序员的职业素养》第五章,我第一次看到有关 TDD 内容,当时Bob大叔向我展示了一种不可思议的编程开发方法,这种方法颠覆了我的认知。Bob 大叔列举了 TDD 很多好处,例如确定性、降低代码缺陷、方便代码重构、测试单元文档化,更优秀的代码设计等等。并强力安利读者们尝试 TDD,因为 TDD 是专业人士的选择。 在 Bob 大叔的洗脑下,我决定去尝试学习如何使用 TDD。

记录学习的过程 1万+

[PCIe5.0] 5.3.1.4.2 D3Cold State

主电源(Vcc)完全断开,仅保留极少量辅助电源(Vaux)用于维持基本唤醒功能设备功能完全关闭,所有寄存器状态丢失(除非有特殊存储)需要完全重新初始化才能恢复工作比D3Hot状态功耗更低,但唤醒延迟更长。

系统固件工程师 452

[摘]TDD简介

TDD简介 TDD全称Test Driven Development,是一种软件开发的流程,其由敏捷的“极限编程”引入。其开发过程是从功能需求的test case开始,先添加一个test case,然后运行所有的test case看看有没有问题,再实现test case所要测试的功能,然后再运行test case,查看是否有case失败,然后重构代码,再重复以上步骤。其理念主要是确保两...

dianfanshuai0279的博客 244

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

tdd java_Java TDD简介–第1部分

tdd java 欢迎来到测试驱动开发 (TDD)系列的介绍。 我们将在TDD上下文中讨论Java和JUnit ,但这只是工具。 本文的主要目的是使您全面了解TDD,而无论使用哪种编程语言和测试框架。 如果您在项目中不使用TDD,那么您要么是懒惰的,要么就是根本不知道TDD是如何工作的。 关于缺乏时间的借口不适用于这里。 关于这篇文章 在这篇文章中,我将解释什么是TDD以及如何在Jav...

最佳 Java 编程 554

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

tdd java_Java TDD简介–第2部分

tdd java 再次问好! 在上一篇博客文章中,我在没有紧密引用Java的情况下总体上解释了TDD理论 ,但是在这一部分中,我们开始进行TDD实践。 我们的目标是遍历TDD的所有阶段:从需求分析到测试代码的重构。 我们将在具有Java,JUnit和“ fake”需求的示例中完成所有这些工作。 需求分析 假设我们需要在一个虚构的应用程序中创建一个新功能。 以下用户故事描述了此功能: 作...

最佳 Java 编程 425

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Java TDD简介–第1部分

欢迎来到测试驱动开发 (TDD)系列的介绍。 我们将在TDD上下文中讨论Java和JUnit ,但这只是工具。 本文的主要目的是使您全面了解TDD,而无论使用哪种编程语言和测试框架。 如果您在项目中不使用TDD,那么您要么很懒,要么就是根本不知道TDD的工作方式。 关于缺乏时间的借口不适用于这里。 关于这篇文章 在这篇文章中,我将解释什么是TDD以及如何在Java中使用它。 在TDD...

最佳 Java 编程 801

测试驱动开发(TDD)简介

测试驱动开发(TDD)是一种软件工程实践,要求在应该验证的代码之前编写单元测试。 TDD源自敏捷世界,它是极限编程(XP)方法的基本实践,如今,TDD本身已被公认为是一门学科,并且还在敏捷环境之外使用。 概述和实践介绍,您将无法没有! 在过去的15年中,敏捷运动不断发展,从而导致了新的,更务实的实践,旨在为客户提供能够尽快满足其需求的计划。 对于此问题, 基于V模型的传统方法提供了“最后测试”...

编程故事的地方 1838

测试驱动开发tdd_测试驱动开发(TDD)简介

测试驱动开发tdd 测试驱动开发(TDD)是一种软件工程实践,要求在应该验证的代码之前编写单元测试。 TDD源自敏捷世界,它是极限编程(XP)方法的基本实践,如今,TDD本身已被视为一门学科,并已在敏捷环境之外使用。 如果没有概述,那么您将无法做到! 在过去的15年中,敏捷运动不断发展,从而导致了新的,更务实的实践,旨在为客户提供能够尽快满足其需求的计划。 针对此问题, 基于V模型的传统方法...

编程故事的地方 678
上一篇: Welcom to my blog.
下一篇: C# and .NET Framework books
depend
博客等级 码龄26年 0粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值