提到TDD大多数程序员的疑问:
- 为什么我要写两份程序?
- 为什么我要写程序来验证我已经知道的结果?
- 我又不是SA,可能也不懂domain,怎么产生一开始的test case?
最后的感想就变成是:
1.Unit Test,那都是说说而已
2.Unit Test?没那时间搞!
3、TDD 只不过是被拿来炒作而已,现实开发中,谁用TDD 写过一整个大系统?
4.TDD 只是先写测试程式而已,有什么特别的?
TDD 的开发顺序
-
ATDD和BDD
-
TDD
-
测试[testing]
-
重构[Refactoring]
因为每一个环节都紧紧相扣,所以有一些阶段不是这么容易区分清楚。例如Testing其实在ATDD, BDD , TDD中,都有包含在里面,这边独立的Testing,或许用Unit Testing会更加合适。
主要的大纲与精神
本系列学习顺序
预计将TDD分成四份,分别是Testing, Refactoring, TDD,最后辅以「ATDD与BDD」。设计的目标则是:working software。
一 测试
- 单元测试(单元测试)
- 整合测试(集成测试)
- 表现层测试
二 重构
- 让程序会说话( Let code can talk )
- 简单就是美(简单就是美)
- 不要过度设计(从来没有超过设计)
- 运用基本的面向对象原则(需要了解面向对象的技术和原理)
三 TDD,ATDD,BDD
- 满足使用者需求(达致与用户要求)
- 如何产生测试案例(如何获得验收测试案例)
- 如何由测试案例开始设计程序(How to start by test cases )
四、开发实例
- 用户故事
- ATDD
- BDD
- TDD
- 重构
五、总结
- 面向对象
- 单元测试
- 集成测试
- 重构
- CI与自动测试
- 敏捷/ XP(连续反馈)
最后则是用来贯穿整系列文章的总结:
程序的存在是为了,也只为了满足使用者需求,而不是写给工程师自己爽的
名词解释:TDD:测试驱动开发 ATDD:验收测试驱动开发 BDD:行为驱动开发 CI:持续集成 XP:极限编程
备注:这个系列是我毕业后时隔一年重新开始进入开发行业后对大拿们的博文摘要整理进行学习对自我的各个欠缺的方面进行充电记录博客的过程,非原创,特此感谢91 等前辈