- 浏览: 2469492 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (574)
- Book (62)
- Architecture (6)
- Java (39)
- Taobao (41)
- Distributed (4)
- Life (72)
- Database (7)
- Spring (16)
- Photography (15)
- Bicycle (41)
- Test (20)
- jBPM (8)
- Business (12)
- Movie (3)
- Ajax (15)
- Code (7)
- Eclipse (96)
- VIM (2)
- Music (6)
- Groovy (10)
- AutoHotKey (3)
- Dorado (10)
- Maven (7)
- Scrum (5)
- English (20)
- Financial (12)
- OSGi (3)
- Other (4)
- Tool (6)
- Browser (1)
- PPT (1)
- Project Management (4)
- Agile (6)
- Nosql (1)
- Search engine (6)
- Shell (2)
- Open Source (4)
- Storm (10)
- Guava (3)
- Baby (1)
- netty (1)
- Algorithm (1)
- Linux (1)
- Python (2)
最新评论
-
roy2011a:
https://github.com/ebottabi/sto ...
storm的序列化问题及与spring的结合方式 -
roy2011a:
能抗能打 写道哥们儿,你好!能共享下那个storm与sprin ...
storm的序列化问题及与spring的结合方式 -
Alick1:
兄弟,你之前是不是在深圳的正阳公司呆过啊?
storm的ack和fail -
liuleixwd:
先点个赞,写的非常好!有个问题请教下,如果我再bolt里不用e ...
storm的ack和fail -
yao-dd:
solr的facet查询
kent back写的书一向很薄, 薄但是都是干货, 在这个资讯爆炸的年代, 的确节省了大家无数的时间, 测试驱动开发是一本非常厉害的书, 作为测试驱动开发这一开发模式几乎颠覆了我们已有的开发模式, 而要掌握或者领悟这项开发技术却需要经过严格的实战, 非简单的看看书就行的. 虽然我依旧采用传统的开发模式: 先实现, 在写测试. 但是依然朝着TDD的方向继续前进. 希望有一天能完全理解TDD的精髓.
这本书包含三部分:第一部分是用一个资金实例来讲解如何实施TDD, 据说这个例子back在做TDD咨询培训的时候已经用了几十次遍了, 屡试不爽. 通过这个例子, 你会神奇的发现TDD切切实实是一种非常cool的开发方式. 第二部分是xUnit实例, 要有python基础才能看得懂, 如果你跟我一样, 可以略过了, 第三部分是测试驱动开发的模式, 老实说, 我也没有怎么看懂.难道是因为还没有找到TDD的门?算了, 以后回头再来看好了, 说不定那天开了窍, 就能豁然开朗了^_^
测试驱动开发是任何软件工程师都可以学习的一个技术的集合, 它鼓励采用简单的测试和增强自信的测试套件. 如果你是个天才, 你根本不需要学习这些浅显的规则, 如果你是个傻子, 学了也没用, 对于像我们这样介于两者之间的大多数人来说, 遵从着两条简单的规则可以使我们更加接近我们全部潜能的效率去工作.
在你写任何代码之前, 先写一个会失败的自动测试程序.
消除重复设计, 优化设计结构
有关测试驱动开发最难讲清楚的一种东西就是它把你所带到的那种思维状态.
实战
我们将建立一个计划清单, 以提醒我们需要做哪些事情, 它使我们始终保持注意力集中.
我们不是从建立对象开始, 而是从测试开始.
在编写测试的时候, 我们总是为我们的操作设想最完美的接口, 在TDD看来这个颠倒的.
我们要解决的编程问题, 已经由原来的"实现多种币种"转化为"让这个测试程序能够工作, 然后让剩下的测试也能够工作".
你也许不喜欢这个解决方案, 但是现在的目的不是活的最完美的解决方案, 而是让这个测试程序可以运行. 我们将在做出理想的产品之前做出点牺牲.
每一次的工作由以下环节组成:
- 新增一个测试
- 运行所有的测试程序并失败
- 做一些小小的改动.
- 运行所有的测试程序, 并且全部通过.
- 重构代码以消除重复设计, 优化设计结构.
测试驱动开发并非一定要采取这样一小步一小步的开发过程, 而是要培养你将软件开发化为这样一小步一小步的开发任务的能力. 我日复一日都以这样笑的步伐进行开发吗?当然不是. 但是当情况变得有些棘手时, 我很高兴我有这样的能力. 选择一个简单的例子一步一步来尝试, 来学习. 如果你可以将软件开发分成一个个粒度比较小的开发任务, 那么你自然可以将它分的大小合适.
尽快地让测试程序可以运行是压倒一切的中心任务.
尽快使测试可运行的两条策略:
伪实现:返回一个常量并逐渐用变量代替常量, 直到伪实现代码成为真实实现的代码.
显明实现:将真实的实现代码键入.
在实际开发中, 我们可以交替使用这两种方式.
在任何设计不够明了的地方, 我将用伪实现和重构, 我希望通过这些让你看到测试驱动开发是怎样帮你控制开发步伐的大小的.
如果我是在同某个不十分清楚我编写这段代码的意图的人一起编程, 或者是代码逻辑略显一丝复杂的话, 我就会为其编写单独的测试程序.
如果你手头有一个大型系统, 那么你经常改动的部分应该是绝对坚实的, 因此你才能执行的进行每日的修改.
掌握TDD
你应该测试:
- 条件部分
- 循环部分
- 操作部分
- 多态性
但只测试你编写的代码, 除非有理由不信任, 否则就不要测试其他来源的代码.
为明天编码, 为今天设计
测试驱动开发对测试的观点就是注重实效, 在测试驱动开发中, 测试从某种意义上说是一种达到目的的手段:达到充满自信地编码的目的, 如果我们队实现有充分的了解, 不用测试就拥有自信的话, 那么就没有必要编写测试了.
测试越多越好, 但是如果两个测试互为冗余, 你应该保留他们两个吗?这酒取决于下面两个标准:
第一个标准就是自信, 如果删除一个测试降低了你对整个系统功能的信心, 那么就不要删除.
第二个标准就是沟通.如果你有两个测试, 走的是同一条路, 但对读者来说讲述的是不同的情形的话, 那么就应该原封不动的保留.
也就是说, 如果你有两个 , 他们就自信和沟通而言都是冗余的, 那就删除掉其中用处最少的那个.
发表评论
-
<异类>读书笔记
2013-03-06 07:54 0成功者能够获得更多的机会,从而能变得更为成功。税收愈减免,富人 ... -
《python学习手册》学习笔记
2013-03-11 22:25 3469python格式化传参数非常赞,用数字标明位置,值得java学 ... -
<万历十五年>读书笔记
2013-03-11 22:27 1595在网上下了一个电子书, 但是貌似跟万历十五年没啥关系, 都是讨 ... -
《鸟哥的linux私房菜》读书笔记(部分)
2013-03-11 22:27 2066x86是一种微机系统硬件架构,另一种是苹果的mac的架构 l ... -
《你的灯亮了吗》读书笔记
2013-03-06 07:20 1509这是一本原本写给程序员的书 本书的四个问题: 搞清问题的来源 ... -
《小狗钱钱》读书笔记
2013-03-06 07:17 1479一本非常不错的理财学习入门书, 以童话的形式, 儿童的思维方式 ... -
《我的奋斗》读书笔记
2012-04-14 22:03 2061文字写的很幽默, 故事也基本都是一些平常人的故事,看到了一个特 ... -
《Java Performance》书评
2012-01-15 18:32 2963原文: http://java.dzone.com/rev ... -
《程序员应该知道的97件事》读书笔记
2012-01-15 18:36 2387一本关于写代码的文 ... -
《影响力》读书笔记
2011-11-05 14:47 1834从书名上很可能以为 ... -
《浪潮之巅》读书笔记
2011-11-05 14:44 1373作为一个中国人通过分析硅谷高科技公司的一系列传奇, 总结出这 ... -
《黑客与画家》读书笔记
2011-11-05 13:37 1820以前看过《rework》, 觉得是每一个小型创业公司的创业宝 ... -
《乔布斯传》读书笔记
2011-10-18 08:53 2847在ipad上看完了这本书, 写的还不错, 里面没有无聊的八 ... -
《细说Java》读书笔记
2011-10-05 15:01 1994国人写的, 感觉是一 ... -
《敏捷估计与规划》读书笔记
2011-10-05 12:08 3178这本书断断续续看了很长时间, 内容非常不错, 基本涵盖了sc ... -
《怪诞心理学》读书笔记
2011-10-05 09:44 1823既然是怪诞, 那么整本书涉及的内容并不是我们平常司空见怪的一 ... -
《番茄工作法图解》读书笔记
2011-09-28 09:02 2390番茄工作法是时间管 ... -
《Java开发超级工具集》读书笔记
2011-09-28 08:59 2099"工欲善其事必先利其器", 在平时的开发 ... -
《敏捷迭代开发管理者指南》读书笔记
2011-09-24 13:09 2217这是一本关于迭代开发 ... -
《解析极限编程》读书笔记
2011-09-24 13:03 1788不知道是kent beck的语 ...
相关推荐
读书笔记:《Java 测试驱动开发》读书笔记
读书笔记:《Java 测试驱动开发》学习笔记
读书笔记:Java测试驱动开发
测试驱动开发(Test-Driven Development,简称TDD)是一种软件开发方法,强调在编写实际代码之前先编写测试用例。这种做法有助于确保软件的质量,因为每个功能或模块都必须通过预先定义的测试才能进行下一步的开发。...
读书笔记:junit junit5 jupiter 单元测试 java单元测试 测试驱动开发
读书笔记:Java测试驱动开发中的样例代码
读书笔记:Java测试驱动开发 第7章 源码
读书笔记:Java测试驱动开发 第8章 源码
读书笔记:Java测试驱动开发 第5章 源码
读书笔记:Java测试驱动开发 第4章 源码
读书笔记:Java测试驱动开发 第9章 源码
读书笔记:Java测试驱动开发 第6章 源码
读书笔记:Java测试驱动开发 第3章 源码
读书笔记:Java测试驱动开发 第2章 源码
读书笔记:java测试驱动开发全代码TDD for java,tddjava
读书笔记:Java TDD dev demo (JAVA 测试驱动开发Demo)
读书笔记:Agile+Java+测试驱动开发的编程技术(例子+习题)
总结,"驱动二期学习笔记"是关于JZ2440处理器驱动开发和U-Boot使用的实践经验分享,对于想要深入理解嵌入式系统底层操作,特别是驱动程序开发的IT从业者来说,是非常有价值的学习材料。通过系统阅读和实践这些笔记,...
优秀的测试工程师需要不断学习、阅读原版书籍、阅读缺陷管理系统中的缺陷报告、阅读高手写的测试用例和学习产品相关的业务知识。 软件质量保证 软件质量保证(SQA)是为了确保软件开发过程和结果符合预期要求的一...
这份读书笔记虽然笼统,但涉及了VxWorks的核心特性和开发中的重要概念。对于熟悉和使用VxWorks的工程师来说,这些知识点是理解和驾驭这个操作系统的基础。通过深入学习和实践,开发者能够更好地利用VxWorks的强大...