提到TDD大多数程序员的疑问:

  1. 为什么我要写两份程序?
  2. 为什么我要写程序来验证我已经知道的结果?
  3. 我又不是SA,可能也不懂domain,怎么产生一开始的test case?

最后的感想就变成是:

1.Unit Test,那都是说说而已

2.Unit Test?没那时间搞!

3、TDD 只不过是被拿来炒作而已,现实开发中,谁用TDD 写过一整个大系统?

4.TDD 只是先写测试程式而已,有什么特别的?

TDD 的开发顺序

  1. ATDD和BDD

  2. TDD

  3. 测试[testing]

  4. 重构[Refactoring]

因为每一个环节都紧紧相扣,所以有一些阶段不是这么容易区分清楚。例如Testing其实在ATDD, BDD , TDD中,都有包含在里面,这边独立的Testing,或许用Unit Testing会更加合适。

主要的大纲与精神

本系列学习顺序

预计将TDD分成四份,分别是Testing, Refactoring, TDD,最后辅以「ATDD与BDD」。设计的目标则是:working software。

一 测试

  1. 单元测试(单元测试)
  2. 整合测试(集成测试)
  3. 表现层测试

二 重构

  1. 让程序会说话( Let code can talk )
  2. 简单就是美(简单就是美)
  3. 不要过度设计(从来没有超过设计)
  4. 运用基本的面向对象原则(需要了解面向对象的技术和原理)

三 TDD,ATDD,BDD

  1. 满足使用者需求(达致与用户要求)
  2. 如何产生测试案例(如何获得验收测试案例)
  3. 如何由测试案例开始设计程序(How to start by test cases )

四、开发实例

  1. 用户故事
  2. ATDD
  3. BDD
  4. TDD
  5. 重构

五、总结

  1. 面向对象
  2. 单元测试
  3. 集成测试
  4. 重构
  5. CI与自动测试
  6. 敏捷/ XP(连续反馈)

最后则是用来贯穿整系列文章的总结:

程序的存在是为了,也只为了满足使用者需求,而不是写给工程师自己爽的

名词解释:TDD:测试驱动开发  ATDD:验收测试驱动开发   BDD:行为驱动开发  CI:持续集成  XP:极限编程

备注:这个系列是我毕业后时隔一年重新开始进入开发行业后对大拿们的博文摘要整理进行学习对自我的各个欠缺的方面进行充电记录博客的过程,非原创,特此感谢91 等前辈

TDD学习笔记【一】----序言的更多相关文章

  1. TDD学习笔记【四】--- 如何隔离相依性 - 基本的可测试性

    前言 相信许多读者都听过「可测试性」,甚至被它搞的要死要活的,还觉得根本是莫名其妙,徒劳无功.今天这篇文章,主要要讲的是对象的相依性,以及对象之间直接相依,会带来什么问题.为了避免发生因相依性而导致设 ...

  2. TDD学习笔记【三】---是否需针对非public方法进行测试?

    前言 在Visual Studio 2012 中,针对Unit Test 的部分,有一个重要的变动: 原本针对「测试对象非public 的部分」,开发人员可通过Visual Studio 2010 自 ...

  3. TDD学习笔记【二】---单元测试简介

    大纲 Testing 的第一个切入点:单元测试. 本篇文章将针对单元测试进行简介,主要内容包含了5W: Why What Where Who When 而How 的部分,属于实现部分,将于下一篇文章介 ...

  4. Asp.Net Core + Dapper + Repository 模式 + TDD 学习笔记

    0x00 前言 之前一直使用的是 EF ,做了一个简单的小项目后发现 EF 的表现并不是很好,就比如联表查询,因为现在的 EF Core 也没有啥好用的分析工具,所以也不知道该怎么写 Linq 生成出 ...

  5. TDD学习笔记【五】一隔绝相依性的方式与特性

    前言 在上一篇文章中,提到了如何通过 IoC 的设计,以及 Stub Object 的方式,来独立测试目标对象. 这一篇文章,则要说明有哪些设计对象的方式,可以让测试或需求变更时,更容易转换. 并说明 ...

  6. TDD学习笔记【六】一Unit Test - Stub, Mock, Fake 简介

    这篇文章简介一下,如何通过 mock framework,来辅助我们更便利地模拟目标对象的依赖对象,而不必手工敲堆只为了这次测试而存在的辅助类型. 而模拟目标对象的部分,常见的有 stub objec ...

  7. Algorithms学习笔记-Chapter0序言

    0.开篇 <Algorithms>源自Berkeley和UCSD课程讲义,由   Sanjoy Dasgupta / Christos H. Papadimitriou / Umesh V ...

  8. STL学习笔记序言

    笔者作为计算机科学与技术专业的学生,学习并使用C++已经有3年了.在接触STL之前的编程习惯是,所有程序的功能包括数据结构.算法等都是亲自实现,效率极其缓慢.后来从使用STL的vector开始慢慢的感 ...

  9. STM32学习笔记——序言

    写AVR已经两年了.如果初中时候玩Arduino也算的话,就是6年. 两年以来,我用AVR单片机完成了两个大项目: AVR单片机教程,一时兴起写的,效果不好: MEDS,参赛用的课题,半完成,比赛都结 ...

随机推荐

  1. 检测到有潜在危险的 Request.Form 值

    这种问题是因为你提交的Form中有HTML字符串,例如你在TextBox中输入了html标签,或者在页面中使用了HtmlEditor组件等,解决办法是禁用validateRequest. 如果你是.n ...

  2. js常用字符串处理方法

    JS自带函数concat将两个或多个字符的文本组合起来,返回一个新的字符串.var a = "hello";var b = ",world";var c = a ...

  3. 第4天--linux内核学习

    驱动使用方式1.编译到内核中 * make uImage进入到系统后mknod /dev/led c 500 0 创建设备节点 2.编译为模块 M make module进入到系统后 mknod /d ...

  4. Web 常用功能测试方法

    功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能.常用的测试方法如下: 1. 页面链接检查:每一个链接是否都有对应的页面,并且页面之间切换正确. 2. 相 ...

  5. hdu 4481 Time travel(高斯求期望)(转)

    (转)http://blog.csdn.net/u013081425/article/details/39240021 http://acm.hdu.edu.cn/showproblem.php?pi ...

  6. 初识java泛型

    1 协变数组类型(covariant array type) 数组的协变性: if A IS-A B then A[] IS-A B[] 也就是说,java中的数组兼容,一个类型的数组兼容他的子类类型 ...

  7. .ashx中使用Session

    在一般处理程序中给session赋值是报错:未将对象引用设置到对象的实例.

  8. Android Studio插件:PlantUML

    标记语言式的UML图编写工具,插件全名:PlantUML integration. 注意这个还要安装另一个软件:http://www.graphviz.org 并在PlantUML的设置中指定其路径. ...

  9. No.25

    每天三件事必做: 1.背单词: 2.跑步: 3.读书.

  10. Noip2016 总结&反思

    一直在期盼的联赛,真正来临时,却远不像我想象的样子. 有些事,真的不敢再想. 算法可以离线,时光却不能倒流.dfs可以回溯,现实却没有如果. 有些事,注定只能成为缺憾,抱恨终生. 不得不说今年Noip ...