测试驱动开发——实用指南
[特价中]基本信息
- 作者: Dave Astels
- 译者: 崔凯
- 丛书名: 开发大师系列
- 出版社:中国电力出版社
- ISBN:750832482x
- 上架时间:2004-10-13
- 出版日期:2004 年9月
- 开本:16开
- 页码:478
- 版次:1-1
- 所属分类:
计算机 > 软件工程及软件方法学 > 软件质量、软件测试及维护
编辑推荐
本书荣获2004年度美国《软件开发》杂志Jolt大奖。 ★一本真正实用的描述测试驱动开发方法的指南:真实的问题,真实的解决方案,真实的代码 ★本书包含了一个完整的用Java编写并使用JUnit的软件项目 ★介绍了适用于C++, C#/.NET, VB6 ,Python等多种语言环境的测试驱动开发(TDD)框架
内容简介回到顶部↑
[b]本书荣获2004年度美国《软件开发》杂志jolt大奖。[/b]
★一本真正实用的描述测试驱动开发方法的指南:真实的问题,真实的解决方案,真实的代码
★本书包含了一个完整的用java编写并使用junit的软件项目
★介绍了适用于c++, c#/.net, vb6 ,python等多种语言环境的测试驱动开发(tdd)框架
★本书适合每一位对测试驱动开发方法感兴趣的开发人员和项目经理
测试驱动开发(tdd)是近年来“敏捷革命”中最热的话题之一,但是,市面上鲜见与此相关的有深度的作品。这本书的出版填补了这个空白,满足了众多一线程序员的需要。作者davis astels将这本书看作是kent beck的经典作品《test driven development by example》(英文影印版及中文版由中国电力出版社出版)的补充,重点阐述利用tdd开发所必要的技术和工具上,因此对实际开发更具实用性。
本书共分五部分。首先介绍了与tdd有关的基本主题,例如重构、意图导向编程(programming by intention),当然还有tdd背后的原理剖析。接着深入分析了一些工具和技术,例如junit、模拟对象(mock objects)。第三部分主要讲解如何将tdd应用到一个真实java项目,这是本书的精华所在,作者亲自带你进入tdd世界,告诉你如何将看似复杂的“测试为先”在项目开发中尽情演绎。第四部分逐一概述了xunit家族成员,如rubyunit、sunit等。附录包含极限编程和敏捷开发的入门材料,以及一些在线资源。
本书还包含了大量练习题并附有详尽的参考答案,以方便读者的学习,加深读者对本书内容的理解。
★一本真正实用的描述测试驱动开发方法的指南:真实的问题,真实的解决方案,真实的代码
★本书包含了一个完整的用java编写并使用junit的软件项目
★介绍了适用于c++, c#/.net, vb6 ,python等多种语言环境的测试驱动开发(tdd)框架
★本书适合每一位对测试驱动开发方法感兴趣的开发人员和项目经理
测试驱动开发(tdd)是近年来“敏捷革命”中最热的话题之一,但是,市面上鲜见与此相关的有深度的作品。这本书的出版填补了这个空白,满足了众多一线程序员的需要。作者davis astels将这本书看作是kent beck的经典作品《test driven development by example》(英文影印版及中文版由中国电力出版社出版)的补充,重点阐述利用tdd开发所必要的技术和工具上,因此对实际开发更具实用性。
本书共分五部分。首先介绍了与tdd有关的基本主题,例如重构、意图导向编程(programming by intention),当然还有tdd背后的原理剖析。接着深入分析了一些工具和技术,例如junit、模拟对象(mock objects)。第三部分主要讲解如何将tdd应用到一个真实java项目,这是本书的精华所在,作者亲自带你进入tdd世界,告诉你如何将看似复杂的“测试为先”在项目开发中尽情演绎。第四部分逐一概述了xunit家族成员,如rubyunit、sunit等。附录包含极限编程和敏捷开发的入门材料,以及一些在线资源。
本书还包含了大量练习题并附有详尽的参考答案,以方便读者的学习,加深读者对本书内容的理解。
目录回到顶部↑
序言
前言
i 背景知识介绍
1 测试驱动开发
什么是测试驱动开发?
让计算机来告诉你
一个简短的例子
小节
2 重构
什么是重构?
什么时候进行重构
如何重构
一些重要的重构方法
通过重构来引入模式
小节
3 意图导向的编程
名字
前言
i 背景知识介绍
1 测试驱动开发
什么是测试驱动开发?
让计算机来告诉你
一个简短的例子
小节
2 重构
什么是重构?
什么时候进行重构
如何重构
一些重要的重构方法
通过重构来引入模式
小节
3 意图导向的编程
名字
前言回到顶部↑
本书并不是一本有关测试的书籍。
这是一本可以使代码变得简单、清晰、健壮的编程方法。它可以使代码易于设计、编写、阅读、理解、扩展和维护。
这是一本有关思考、设计、沟通以及编程的书。作为一种非常好的副作用,我们最终将会得到一套详尽的(1)测试集。
本书探讨的内容是测试驱动开发(Test-Driven Development)或测试优先编程(Test-first Programming),不管你怎么称呼它,它都是在指一种先编写测试,然后再编写让测试获得通过的代码的方法。具体而言就是以尽可能小的步伐推进:编写足以失败的测试代码,编写足以让测试通过的产品代码,通过重构来整理为使测试通过而引入的混乱代码。
本书着重使用Java编程语言,通篇都使用用Java编写的例子。我们假定读者至少对Java(如果想要亲自动手尝试一下书中的例子的话,还要有一套能够工作的Java系统)有中等程度的了解。大家可以从我的Web站点[URL 54]获得范例代码以及其他一些辅助资料。
尽管我们将重点放在Java上,但是本书的第四部分还是查看了其他一些重要的针对几种流行编程语言的xUnit家族成员。我们选取第10章中的第一项任务,分别用各种语言重新予以实现,这样就各种不同的测试框架而言提供了很好的比较。
(1)究竟有多么详尽要看你对TDD掌握的有多好。
极限编程
测试驱动开发(Test-Driven Development)是由Kent Beck形式化(formalized)的一种称做极限编程(eXtreme Programming - XP)的敏捷软件开发过程(agile process)的核心部分。XP很可能是敏捷软件开发过程中最“敏捷”的部分了,它开销极底,繁缛极少,然而却是一种高度自律,非常高效的软件开发方法,对变化有着难以置信的适应能力。
也就是说,为了运用测试驱动开发方法(TDD)进行开发并从中获益,您不必采用极限编程过程(XP)。单就测试驱动开发本身而言也是值得的,你的产品代码质量一定会改善。当然如果采用极限编程过程的话,那么真正熟练地使用测试驱动开发方法对于选用这种开发过程来说才是值得的。
测试驱动开发是极限编程中一项主要的设计工具(2)。如前所述,产品开发终了所拥有的整套测试是一种非常令人愉快的副产品。因为有了那些测试,当我们在代码修改前后运行测试并且通过的话,就可以确信自己在此期间没有意外地引入使产品无法正常运行的错误。反之,如果某项测试在代码修改以后无法运行通过,那么我们就可以知道究竟是哪个地方出了问题,而能够方便的找出问题并且修正它。唯一可能造成错误的位置就是在上次测试运行通过以后修改的地方。
(2)另一项是重构。
所有这一切都意味着由于测试的存在,我们可以安全地使用极限编程的另一种方法:重构(Refactoring)。正如我们将要在第12章看到的,重构就是在不改变代码外部行为的情况下对代码的结构进行调整。我们有测试可以保证行为没有被改动。这样你就有了修改(有时这种改动是翻天覆地的)工作代码所必需的自信,而我们最终的代码也会更清晰,可扩展性更好,可维护性更强而且更易于理解。
附录A更多的谈到了有关极限编程的内容。要想更多的了解有关这方面的知识,您可以浏览一下参考文献或访问附录C中所列出的极限编程(XP)联机资源。
谁应该阅读本书?
评论交流
共有24人开贴评论 30人参与评论 22人参与打分 查看
评价等级:







发表于:2010-2-2 19:04:00
TDD方法论本身不难,但用好了可真难。这本书大概是论述TDD比较全面的,关于mock和GUI的两章写的好,项目范例也说明细致细致。
作者在序言中就说明了该书不是关于XP的,但范例项目借用了XP过程,因为XP把TDD功能极致化了,能更好地说明TDD方法思想。读者若为了学习XP显然不应该先看这本书,虽然该书介绍了不少XP方面的知识。
另有一点作者也提到了多次,TDD是编程和设计过程,虽然使用了Xunit和单元测试的方法。我曾翻过一国内讲TDD的书,开篇一下子就把TDD归到测试过程方法了,失误如此明显。
初学者最好先看 The Pragmatic Programmers 出版的单元测试之道两本小书(关于JUnit和Nunit)之一,然后再看本书就感觉容易多了。
本书翻译的好!!
作者在序言中就说明了该书不是关于XP的,但范例项目借用了XP过程,因为XP把TDD功能极致化了,能更好地说明TDD方法思想。读者若为了学习XP显然不应该先看这本书,虽然该书介绍了不少XP方面的知识。
另有一点作者也提到了多次,TDD是编程和设计过程,虽然使用了Xunit和单元测试的方法。我曾翻过一国内讲TDD的书,开篇一下子就把TDD归到测试过程方法了,失误如此明显。
初学者最好先看 The Pragmatic Programmers 出版的单元测试之道两本小书(关于JUnit和Nunit)之一,然后再看本书就感觉容易多了。
本书翻译的好!!
| 我要写评论 |
| 查看所有评论交流(共24条) |


点击看大图




加载中...
