tdd专题提供tdd的最新资讯内容,帮你更好的了解tdd。
              文/陈刚 at 2006年4月13日 from www.ChenGang.com.cn 一、前言 今天我把文章的名称改了一下,想把它写成关于TDD实践的一系列文章。前一篇是设计,这一篇开始是开发。 TDD我是闻名已久,在过去实际开发中也经常用junit来写单元测试,但真正的TDD却从来没有尝试过。不过单元测试写得久了,发现TDD确实有它诱人的地方,也许它真的可以带我领略
                    文/陈刚  at 2006年4月19日 from http://www.chengang.com.cn 一、前言 在前面一章中,我有这样的想法。 在这里我面临一个选择,是先写界面呢?还是先写底层API?我想,先写界面很难写测试代码,而且界面在设计时已经定下来了,基本不会变了 后来我又想,界面固然变化很少了,但界面内容需要调用的后台API却是未曾定型,所以如果
Ben Hughes在InfoQ上发表了一篇名为《Does TDD Really Ensure Quality?》的文章: http://www.infoq.com/news/2008/01/does-tdd-mean-quality   文章中引用了2005年加拿大National Research Council的调查报告《The Effectiveness of Test-first App
作为一个有理想、有追求的程序员,你成天被各种名词包围着,你对其中一个叫做敏捷的东西特别感兴趣,因为它特别强调人的作用,这听着都让做程序员的你感到舒服。为了让自己早日敏捷起来,你从众多的敏捷实践中选择了一个叫做测试驱动开发(Test Driven Development,TDD)的作为你的起始点。因为它对你周遭的环境要求是最低的:它不像结对那样,要求其他人和你一起合作;也不像采用Story那样改变你
一直有个疑问,对于遗留系统,我们该如何TDD ? 我个人比较认同TDD 是一种设计方法,不能代替真正意义上的测试。是帮助我们设计自己代码的一种方法。对于遗留系统,面对一堆需求文档,面对一陀陀已经难 以继续维护的陈旧代码,你的心是否哇凉哇凉的 ?做为一个使用Rails 的开发人员,难道你要把这些代码翻译为Ruby 代码吗 ? 答案当然是不! 很多时候,我们虽然很清楚要TDD ,但是很多时候我们是在D
(2006-08-12) 前几天看到一篇《都在说TDD开发,那到底TDD是什么?》,感觉这个作者根本就没明白什么叫TDD。 TDD还远达到如作者所说的“过份强调”的程度,甚至应该说还强调得不够。不可否认,“高质量的程序是程序员编写出来的,而不是测试出来的”,但是如果没有有效的测试手段,如何能够客观地判定一个程序是不是“高质量”的。 至 于认为TDD会导致程序员变成代码工人的说法更是无稽之谈。TDD
TDD,可能大部分人都知道,是测试驱动开发,而此处的BDD,不是指现在的新概念“行为驱动开发”,而是bug drive development。 也有快一年的TDD开发经验了,深刻体会到TDD的好处, 现在不是TDD开发的代码根本不敢提交到svn代码库。 很幸运的,我6月份从NibiruTech辞职来到现在的公司,让我体会到了传说中的bug 驱动开发。 整个项目里,上百行一个方法的代码到处都是,没
{关键字} 测试驱动开发/Test Driven Development/TDD 测试用例/TestCase/TC 设计/Design 重构/Refactoring {TDD的目标} Clean Code That Works 这句话的含义是,事实上我们只做两件事情:让代码奏效(Work)和让代码洁净(Clean),前者是把事情做对,后者是把事情做好。想想看,其实我们平时所做的所有工作,除去无用的
TDD的目标是Clean code that works。 TDD的两个原则是: 仅当测试失败时才编写新代码 重构以消除重复代码 TDD的五个关键步骤是: 添加一个小的测试 运行所有测试并且失败 做一点修改 运行所有测试并且成功 重构以消除重复
单元测试的对象是软件设计的最小单位——模块。单元测试的依据是详细设描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。  单元测试任务   单元测试任务包括:1 模块接口测试;2 模块局部数据结构测试;3 模块边界条件测试;4 模块中所有独立执行通路测试;5 模块的各条错误处理通路测试。   模块接口测试是单
    最近我在公司搞代码评审,做的过程中发现一个矛盾的问题:评审发现了问题,于是需要重构,可是重构需要有完善的单元测试做保障,而项目已接近开发结束,基本没有单元测试,结果发现的问题只能搁置,因为你很难下决心去为了完善一个东西而去冒毁坏它的风险!     这样下去,代码评审将流于形式     我意识到TDD与code review有着很紧密的联系,其实以前就听说过敏捷的十二个实践都是有内在联系的。
在要求项目要尽量快地实现的时候,质量与开发进度上会出现一定的矛盾,最突出的就是单元测试代码与逻辑实现代码。TDD (测试驱动开发)必然没错,但是使用不当会造成开发效率的下降。在敏捷开发实践中,结合前辈经验与自己的经验,如下几点是要关心的:1. 为主要的、关键的逻辑组件,关键的逻辑方法进行测试驱动开发    这样对设计、设计演化很有帮助2. 逻辑类似的组件如果存在多个,优先编写其中一种逻辑组件的测试
近期,我的一些关于TDD、设计模式、同步乃至数独问题的博客好像招惹了很多TDD反对者的怨言。不乏有人态度粗鲁、具攻击性、嘲枫、轻蔑而且不成熟。嗯,万圣节就快到了。   尽管他们自圆其说,但确实也提出了一点儿合理的疑问。为了公平起见,我想在这里回答会比较合适。   TDD有科学依据吗?   确有充足的依据。   用Google简单检索了下,我就发现这篇Phil Haack的博客。在里面他回顾了一篇T
  测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码。TDD虽是敏捷方法的核心实践,但不只适用于XP(Extreme Programming),同样可以适用于其他开发方法和过程。   TDD的基本思路就是通过测试来推动整个开发的进行,但测试驱动开发并不只是单纯的测试工作,而是把需求分析,设计
tdd overview TDD stands for Test-driven development
TDD简介     TDD是Test-Driven Development的缩写,即测试驱动开发。TDD的基本思路是利用测试来推动开发的进行,并不是单纯的测试过程。TDD是极限编程的核心之一,但TDD也可以单独运用。TDD具有:明确需求、明确设计、形成文档、自信编程、提高效率、强制测试等优点。     Object Meentor公司总裁,极限编程领域资深顾问Robert C. Martin提出了
   本系列文章探讨TDD(测试驱动开发)与VTDD(可视化的TDD)。内容分为三部分:开源测试框架介绍,TDD探讨,VTDD探讨。关于开源测试框架,网上有大量相关文章,我本来不想再写,但是我尝试了CppUnit的另一种使用方式,比较简单和高效,因此分享出来,其他开源框架就不写了。     CppUnit的改进与使用(1)       这个改进后的使用方法是我为一个企业培训时所准备的,由于学员以测
4 测试过程 示例类定义如下: class CMyClass { public:     //加法函数     int Add(int a, int b);     //计算空调制冷器运行时间     int WorkTime(int* pSecond); }; 加法函数Add()是入门示例,WorkTime()是接近应用的示例,功能是计算空调制冷器运行时间,需调用桩代码取得环境温度。测试过程,使
什么是TDD     TDD是Test-Driven Development的缩写,即测试驱动开发。TDD的基本思路是利用测试来推动开发的进行,并不是单纯的测试过程。TDD是极限编程的核心之一,但TDD也可以单独运用。 TDD的优势     明确需求:在软件开发过程中,需求常常是易变且不易描述的。项目的整体需求最终会细化为代码的需求,即每个代码单元都有其具体的功能要求。整体的需求不明确,代码的需求
    假如要编写一个CMath类,其中有一个方法abs(),原形如下: class CMath { public:     int abs(int a); };     一般的编程习惯是直接写代码,然后调试,至于测试,则以后再说。TDD要求,在未编写测试代码前不能写任何产品代码。 这里使用的测试框架是CppUnit,用例代码使用本系列的一和二介绍的格式,为了减少篇幅,只列出关键代码,CppUni