测试驱动开发的读书笔记(五)
什么需要测试:
*条件部分、循环部分、操作部分、多态性
*为了测试,需要的设置代码要精简,和避免重复;运行时间不宜过长;不宜很容易被打断
另外测试驱动开发的观点和常见的设计观点是相冲突的,一般提倡的是“编码为今天,设计为明天”,而测试驱动开发则是“设计为今天,编码为明天”
因此测试驱动开发认为测试更应该注重实效,他是一种让开发充满自信的编写代码的目的,也是一种对你所写代码的文档说明。因而如果我们对实现充分了解,不用测试也能拥有自信的话,那就不用编写测试。
测试开发的呆子哲学:
存在一个假定:清晰的代码是通向成功的唯一道路。认为测试驱动开发不是一种测试技术,而是一种分析技术、设计技术,更是一种组织所有开发活动的技术。
测试驱动开发的局限性:
1、GUI无法实施
2、分布式对象(如RPC何消息传送方式,无法实施)
3、开发数据库模式,无法实施
4、BNF开发出产品质量的语言编译器/解释器无法实施
5、图形方面的很难实施
个人观点:
测试驱动开发的那人,真是一个敏捷院派的代表;TDD的本意是好的,目的是为了写出clean code that works。
1、所谓的测试“驱动”,实际上是希望编写代码的人,能够根据自己心里定义的功能(以测试的形式),在编写完代码后,重构出清晰的代码。本质上是为了说明软件完成了需要的功能,而不是为了验证软件中的质量水平
2、其实他是有设计的,只不过他不把设计当做一个很长的阶段,因为他只需要考虑当前的设计,而不需要花时间考虑设计的可扩展性,也就是“设计为今天,编码为明天”。
但是国内流传的观点,往往歪曲或者根据某种需要来断章取义,强调或夸大了附加价值,而失去了本意!
相关链接:
测试驱动开发的读书笔记(一):http://www.cnblogs.com/xwj-pandababy/articles/2128880.html
测试驱动开发的读书笔记(二):http://www.cnblogs.com/xwj-pandababy/articles/2130958.html
测试驱动开发的读书笔记(三):http://www.cnblogs.com/xwj-pandababy/articles/2133841.html
测试驱动开发的读书笔记(四):http://www.cnblogs.com/xwj-pandababy/articles/2133929.html
测试驱动开发的读书笔记(五):http://www.cnblogs.com/xwj-pandababy/articles/2134644.html