测试驱动开发的艺术

出版时间:20101023  出版社:人民邮电出版社  作者:Lasse Koskela  页数:334  译者:李贝  
Tag标签:无  

前言

七年前,正值全球IT产业繁荣时期,大大小小的软件公司都发了疯似地想赶上下一波IP0,招聘市场火爆异常。我也在此时投身到繁荣的新媒体产业,开始了我的编程生涯。从此我没日没夜地鼓捣各种代码段,配置服务器,往生产系统里上传PHP脚本,似乎一切尽在掌握。一个九月的雨夜,又是加班到很晚,突然间我的心脏似乎停止了跳动:哎呀!我刚才做了什么?我是否删掉了生产数据库里的所有数据?好像是的!看来我只有卷铺盖走人了。我怎么才能把数据找回来呢?刚才还以为只是测试用的数据库呢!这种悲剧怎么能发生在我头上?然而,确实发生了。第二天我没有被炒鱿鱼,主要原因是,看来客户对我删掉的数据并不太在意。而且,看来别的人也都干过类似的蠢事——他们安慰我说:大家都可能犯错。我得到一个教训,那个该死的夜晚也标志着我开始追求一种负责任的、可靠的软件开发态度。几年以后,我换了家国际性咨询公司工作,为其他大公司开发应用和后台系统。在短短几年的职业生涯里我学到了不少东西,这得归功于我以前趴在电脑前熬夜的努力,而新工作无疑是我磨炼实战技艺的好机会。我又一次认为我已经对于软件开发行当熟门熟路了。可是我又错了,显然我比自己想象的要知道得少。我几乎每天都能学到重要的新知识。我最重大的发现改变了我对软件开发的认识,极限编程(XP)给了我全新的视角,让我知道什么才是正确的软件开发方法。在我看来,XP把我过去行之有效的披荆斩棘式的编程方式与一种系统的、训练有素的工作方法结合在一起。XP项目除了能让开发团队更接近客户之外,最打动我的就是测试驱动开发(TDD)了。我以前认为编程和单元测试是两个分离的活动,现在“编码之前先写测试”这样一个简单的理念完全颠覆了我的旧思想。TDD绝非闲庭信步那样轻松。我时刻提醒自己要先写测试,一开始能做到,可是只过了半个小时,我就忘了遵守,还没有测试就在修改代码。随着时光流逝,我越来越能够坚持测试先行的编程方法,甚至一整天都不会落入往日的陋习中。接着我会被一段代码难住,凭我的能力我无法征服它。再往后,我能理解应该怎么做,但我的手法还不够用。再后来,我不知道如何能四两拔千斤地巧妙解题,却又往往不愿意愚公移山般地用笨办法尝试。年复一年,我学会了越来越多的技巧,掌握了越来越多的工具,终于获得了现在的功力。我写此书的目的是让诸君不必像我以前那样笨拙地克服种种困难,你们有此书在手可以轻松地前行。对我而言,学会了测试先行,深刻地影响了我工作的方法和对编程的认识,正如敏捷方法改变了我对软件开发的认识。我希望你们也能学会测试先行。

内容概要

本书介绍了一种更快更好的软件开发方法——测试驱动开发。全书共分三部分:第一部分讲述了TDD和ATDD的相关知识、基本概念、方法,为测试驱动开发打下基础;第二部分将测试驱动开发用于具体的实践,重点讲解了TDD的各种技术;第三部分着重介绍了验收测试驱动开发,包括Fit框架、实现验收测试的方法等,最后讲解了引入TDD的各种技巧。    本书浓缩了作者多年的开发经验,适合各类Java开发人员学习参考。

作者简介

科斯科拉(Lasse Koskela),程序员,软件开发培训师、咨询师,任职于芬兰知名软件公司Reaktor,致力于为客户提供软件性能提升解决方案;同时也是开源软件的忠实拥护者。

书籍目录

第一部分 TDD入门 第1章 综述   1.1 挑战:用正确的方法解决正确的问题     1.1.1 糟糕的代码质量     1.1.2 不能满足客户需求   1.2 解决方案:测试驱动     1.2.1 高质量的TDD     1.2.2 用ATDD满足客户需求     1.2.3 这对我有什么好处   1.3 正确地做事:TDD     1.3.1 测试-编码-重构     1.3.2 增量式开发     1.3.3 重构以保持代码的健康     1.3.4 保证软件正常运行   1.4 做正确的事:ATDD     1.4.1 名字的含义     1.4.2 紧密协作     1.4.3 把测试作为沟通的共同语言   1.5 TDD工具     1.5.1 使用xUnit做单元测试     1.5.2 支持ATDD的测试框架     1.5.3 持续集成及构建     1.5.4 代码覆盖率   1.6 小结 第2章 TDD入门 第3章 小步重构 第4章 TDD的概念与模式第二部分 针对特定技术应用TDD 第5章 测试驱动Web组件 第6章 测试驱动数据访问 第7章 测试驱动不可预测功能 第8章 测试驱动Swing代码第三部分 基于ATDD构建产品 第9章 解析验收测试驱动开发 第10章 用Fit创建验收测试 第11章 执行验收测试的策略 第12章 TDD应用附录A JUnit 4简明教程附录B JUnit 3.8简明教程附录C EasyMock简明教程附录D 通过Ant运行测试相关资源

章节摘录

插图:·提供一个完整的业务对象,此对象所有的必填属性也是完整的业务对象;·在整个生命周期内都可以返回被请求的对象;·可以定制所返回的对象;·测试过程中可以更新对象;·如果有必要,可以在测试结束时回收对象及所有关联对象。总的来说,对象母亲模式是一个复杂的对象工厂,用于创建领域对象(domain object)的整个对象网络(object graph),还可以创建出不同状态下的实例。此外,对象母亲也可以提供方法修改某个领域对象,例如在对象间建立关联关系、移除关联关系、或者把对象设置为特征状态。除了可以消除测试代码中的重复,对象母亲模式还可以使TDD的初学者方便的获得需要的对象,这可以鼓励他们多写测试。若创建对象过于麻烦,他们也许会打消写测试的念头。不少团队在开发过程中都会定义一套人物角色(personas),若把对象母亲与这套角色结合使用,效果会更好。例如,若团队定义了爱丽丝、贝利和克拉克等人物角色,每个人都代表交易系统中的不同角色,这时对象母亲应该把这些人物作为其API接口。这种概念上的关联可以帮我们更容易的编写测试,不用翻查API,更不用深入创建方法内部弄清楚该使用哪个对象做测试。我们只需要说:“好,我需要一个购买订单,这订单由克拉克提交,吉姆审批。”虽然对象母亲是个强有力的工具,能够有效的促进测试的编写,不过构建出整套对象母亲需要不少时间。所以,我建议小步重构当前的测试代码,起先可以引入紧凑的创建方法,最后把这止匕创建方法及其提供的测试数据整个移到对象母亲中。

媒体关注与评论

“在TDD领域,这本书是当之无愧的No.1,内容简单易懂。文笔简炼精要。”  ——Ionel Condor,Cluj-Napoca公司“这本书设置的门槛并不低,但通读后,你绝对可以轻松达到要求的高度并跨越它。作者旨在传播TDD哲理。阐述TDD的实际应用。促进TDD在其他领域的应用。让更多的人分享其来之不易的经验教训。”  ——JavaLobby.org“作者见解独到,行文幽默犀利,佩服至极!”  ——Michael Feathers,Object Mentor公司咨询专家“书中的这些宝贵经验如果要我自己去摸索,估计得花上几年时间。”  ——Laurent Bossavit,2006年Gordon Pask奖得主

编辑推荐

《测试驱动开发的艺术》:图灵程序设计丛书。

图书封面

图书标签Tags

评论、评分、阅读与下载


    测试驱动开发的艺术 PDF格式下载


用户评论 (总计17条)

 
 

  •   纸张粗糙,字也不清楚,这本书不确认是否正版图书
  •   除了讲了一般的tdd规则和方法外,作者也对一些难题(数据库、多线程、UI)做了实例演示,从该书中受益良多,特别是UI一章,在项目中,我成功的应用了MVP模式进行了农场开发的tdd,使得自己对tdd更加有信心了。
  •   看了《TDD by example》、《测试驱动的面向对象开发》以及本书,这本书是三者中最实用的!解决了我使用TDD过程中的诸多疑惑和技术难点!
  •   前面几章很好,后面感觉稍差了点,整体来说是本好书
  •   作为一本刚接触DTT的来说,教材内容不错,如果喜欢尝试DTT,推荐
  •   虽然是JAVA的但必看,不亏艺术两字
  •   只是看了前面的部分,感觉有比较好的操作性。根据书的描述,后续需要多实践。
  •   极限编程 - 测试驱动开发的艺术
  •   不错的书,包装完好,无破损。
  •   发货快,书的印刷很好,包装不错。
  •   书包装不错..封皮也不错..内容更不错..挺好的..送货速度也很快.上午买的下午就到了..谢谢了
  •   书质量不错,送货也及时,昨天下雪路不好走,还是及时送到了。
  •   实实在在的实践
  •   测试驱动--开发
  •   包装完整~送货快
  •   TDD必备!
  •   好书,挺满意
 

250万本中文图书简介、评论、评分,PDF格式免费下载。 第一图书网 手机版

京ICP备13047387号-7