测试驱动开发(TDD)的思考

极限编程

 

敏捷开发是一种思想,极限编程也是一种思想,它与敏捷开发某些目标是一致的。只是实现方式不同。测试驱动开发是极限编程的一部分。

 

1、极限编程这个思路的来源

 

 

Kent Beck先生最早在其极限编程(XP)方法论中,向大家推荐“测试驱动”这一最佳实践,还专门撰写了《测试驱动开发》一书,详细说明如何实现。经过几年的迅猛发展,测试驱动开发已经成长为一门独立的软件开发技术,其名气甚至盖过了极限编程。[1]

 

 

2、为什么测试驱动开发在实践中难以开展

 

测试驱动开发,在国内很多公司难以实施。

 

因为tdd(测试驱动开发)的办法是,写代码之前先编写测试代码,测试通过后再实现这个测试代码。很多人觉得这是浪费了时间。

 

这样循环,测试推动开发的过程。

 

与开发人员的传统思维习惯相违背,因此实践起来有一定困难。

 

我觉得,下面这是最难实施的根源

为了赶进度,程序员们经常跳过一些指定的流程,很少人能全面遵循那些重量级开发方法。人的意识没有改善。不是靠行政命令来得到改善的。

时间: 2024-10-01 22:30:32

测试驱动开发(TDD)的思考的相关文章

详尽讲述用Python的Django框架测试驱动开发的教程_python

测试驱动开发(TDD)是一个迭代的开发周期,强调编写实际代码之前编写自动化测试. 这个过程很简单:     先编写测试.     查看测试失败的地方     编写足够的代码以使测试通过.     再次测试.     代码重构 .     重复以上操作. 为什么要用TDD? 使用TDD,你将学会把你的代码拆分成符合逻辑的,简单易懂的片段,这有助于确保代码的正确性. 这一点非常重要,因为做到下面这些事情是非常困难的:     在我们的脑中一次性处理所有复杂的问题.     了解何时从哪里开始着手解决

用NUnit2.1简单实现.net的测试驱动开发(TDD)

用NUnit2.1简单实现.net的测试驱动开发(TDD)下面的例子很简单,就是实现两个整数的四则运算,TDD提倡测试优先,即先写测试用例,再写运行代码,刚下了个NUnit2.1,迫不及待的试了试--1最初的测试用例using System;using NUnit.Framework;namespace netshop{ /// <summary> /// 四则运算TestCls测试用例 /// Edit by spgoal /// </summary> [TestFixture]

网络相册开发(3)——测试驱动开发(TDD)

测试驱动开发的理论已经提出好多年了,在这里关于他的原理和优势我就不多说了,我将大略的写一下我在实际中运用TDD的过程. 补一个jar: commons-pool-1.4.jar 过程 1.搭建测试用例运行环境 2.编写接口类 3.针对接口类编写测试用例 4.实现接口类,编写对应的功能代码 5.运行测试 6.如不通过,修改直至通过 7.循环完成其他功能 搭建测试用例运行环境 spring采用的依赖注射技术带来的一个主要好处就是你的代码对容器的依赖性比传统的J2EE开发小得多.配合spring提供的

在C和C++开发过程中应用测试驱动开发的理念

测试驱动开发和现在流行敏捷开发的是分不开的,测试驱动开发是敏捷开发的一个强有力工具,可以帮助我们从简单的设计开始,逐步地有保护重构设计直至完善设计过程.测试驱动开发是 Kent 提出的一种新的软件开发流程,现在已广为人知,这种开发方法依赖于极短重复的开发周期,面对开发需求,http://www.aliyun.com/zixun/aggregation/7155.html">开发人员要先开发代码测试用例,这些代码实现的测试用例定义了工程要实现的需求, 然后去开发代码快速测试通过这这些用例,这

《重构与模式(修订版)》—第1章1.4节测试驱动开发和持续重构

1.4 测试驱动开发和持续重构 重构与模式(修订版) 测试驱动开发[Beck, TDD]和持续重构,是极限编程诸多优秀实践中的两个,它们彻底改进了我开发软件的方式.我发现,这两个实践能够帮助我和公司降低过度设计和设计不足的几率,将时间用在按时地构造出高质量.功能丰富的代码上. 通过测试驱动开发(TDD)和持续重构,我们将编程变成一种对话1,从而高效地使可以工作的代码不断演变. 问:编写一个测试,向系统提问. 答:编写代码通过这个测试,回答这一提问. 提炼:通过合并概念.去芜存菁.消除歧义,提炼你

Android测试驱动开发实践

在Android应用开发中,相信很少有人在坚持先由设计人员做完整的概要设计 .详细设计,然后交给程序员进行编码实现了.通常是在有一个大体框架的情况下,就开始进行具体编码开发了.在这种情形下,开发速度可以有很大的提高,但是最终代码质量却不可避免的降低了.如何能既保持开发速度,同时又能保证开发质量呢?相信测试驱动开发是一种比较可行的开发方法学. 测试驱动开发首先通过设计测试用例,对从用户需求到方法接口进行细化,在构想这些测试用例的过程,就是站在使用者角度上来思考系统的过程,而传统方法中设计人员通常是

python测试驱动开发实例_python

本文实例讲述了python测试驱动开发的方法,分享给大家供大家参考.具体方法如下: import unittest from main import Sample class SampleTest(unittest.TestCase): def setUp(self): print "create a new Sample" self._sample = Sample("b64e5843ca7db8199c405be565fa7f57") def tearDown(

《测试驱动的嵌入式C语言开发》——第2章测试驱动开发的工具和约定

第2章 测试驱动开发的工具和约定我很少会感到无聊,不过我发现按步执行手动过程常常错误百出,冗长乏味,实在无聊.定义一个过程勉强可以,起码里面有些具有创造性的工作.但是一遍一遍地重复做却是另一码事了.相反,自动化却很有趣.你仍然需要去定义过程,但是你定义它的目的是让计算机完成笨重的那一部分工作.它是可以重复执行的.你知道这个过程一旦被自动化就能自己运行,因此它可以解放你的思想,从而使你关注于具有创造性的工作.TDD依赖于测试自动化.本章不会介绍TDD,但我们会看两个用不同的自动化测试框架实现的单元

首次尝试测试驱动开发的体会

测试驱动开发的定义 测试驱动开发(Test-driven development)是现代计算机软件开发方法的一种.利用测试来驱动软件程序的设计和实现.测试驱动开始流行于20世纪90年代.测试驱动开发是极限编程中倡导的程序开发方法,方法主要是先写测试程序,然后再编码使其通过测试.测试驱动开发的目的是取得快速反馈并使用"illustrate the main line"方法来构建程序. 测试驱动开发的比喻.开发可以从两个方面去看待:实现的功能和质量.测试驱动开发更像两顶帽子思考法的开发方式